2006-02-10 John (J5) Palmieri <johnp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2
3         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
4         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
5
6 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
7
8         * bus/connection.c (bus_connections_expect_reply): Make
9         pending reply limit not common to all connections (Bug #5416)
10         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
11
12 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
13
14         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
15
16 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
17
18         * gcj/Makefile.am: point to correct jar command (Bug #4529)
19         patch from Doug Goldstein <cardoe at gentoo.org>
20
21 2006-02-09  Joe Shaw  <joeshaw@novell.com>
22
23         * mono/Arguments.cs: Fix a magic number in the mono bindings
24         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
25
26 2006-01-27  Robert McQueen  <robot101@debian.org>
27
28         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
29         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
30         when generating the client-side methods, instead of overloading
31         CSymbol which broke everything horribly. My apologies.
32
33 2006-01-27  Robert McQueen  <robot101@debian.org>
34
35         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
36         by me and Rob Taylor to add a simple_free function to D-Bus map
37         and collection types, which allows those types which can be freed
38         with a GDestroyNotify (such as GHashTables and GArrays, but not
39         GPtrArrays) to be stored as the values in hashtables.
40
41         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
42         Patch by Rob Taylor to add nested dicts to the glib tests to check
43         the above code works, and appears not to leak when called repeatedly.
44
45 2006-01-27  Robert McQueen  <robot101@debian.org>
46
47         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
48         to free a D-Bus allocated string with dbus_free () instead of
49         g_free ().
50
51 2006-01-27  Iain Holmes  <iain@openedhand.com>
52
53         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
54         method from being called multiple times.
55
56 2006-01-19  Robert McQueen  <robot101@debian.org>
57
58         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
59         <rob.taylor@collabora.co.uk> to add support for generating bindings
60         to arrays that are represented as GPtrArrays rather than GArrays (ie
61         size-variable things, such as strings, objects, structs, etc).
62
63 2006-01-05  Robert McQueen  <robot101@debian.org>
64
65         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
66         <ricardo.kekki@movial.fi> to make it possible to inherit from
67         DBusGProxy, by splitting the DBusGProxy struct into a public part and
68         a private part, and moving the setting of the DBusGProxyManager into a
69         connection property, allowing proper GObject construction.
70
71 2006-01-05  Robert McQueen  <robot101@debian.org>
72
73         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
74         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
75         annotations when generating glib client bindings.
76
77 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
78
79         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
80
81         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
82
83 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
84
85         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
86
87 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
88
89         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
90
91 2005-12-19  Ross Burton  <ross@openedhand.com>
92
93         * doc/dbus-tutorial.xml:
94         Document the Glib client-side bindings, and list all possible annotations.
95
96 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
97
98         * dbus/bus.c (dbus_bus_release_name): Add documentation
99
100 2005-12-06  Robert McQueen  <robot101@debian.org>
101
102         * python/service.py: s/sucessful/successful/ so we're allocating to
103         and reading from the same variable. Oops.
104
105 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
106
107         * Released 0.60
108
109 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
110
111         * test/qt/Makefile.am: build from srcdir
112
113         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
114         Note - this code is wrong and needs to be fixed by the Qt binding
115         developers.  The flags should be treated as bitfields and not enums.
116
117         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
118
119 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
120
121         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
122           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
123           in production code
124
125 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
126
127         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
128         method for getting messages off the bus in the absence of a
129         mainloop.  This method is much like 
130         dbus_connection_read_write_dispatch except it does not dispatch
131         the messages to a registered filter function.  Instead it
132         allows a developer to process messages by directly popping
133         them off the bus.
134
135 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
136
137         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
138         the parser to continue instead of returning error
139         (bus_desktop_file_load): Do not free parser data when
140         parse_section_start or parse_key_value fails because it was 
141         already freed by parser_free (patch from Carlos Garcia Campos  
142         <carlosgc at gnome.org>)
143
144 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
145
146         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
147         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
148         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
149         test/test-segfault.c, test/test-utils.c,
150         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
151         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
152         Various cleanup of dead code and compiler warnings (patch from
153         Kjartan Maraas <kmaraas at gnome.org>) 
154
155 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
156
157         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
158         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
159
160 2005-11-27  Robert McQueen  <robot101@debian.org>
161
162         * python/dbus_bindings.pyx: Repair my previous commit which reverted
163         part of the preceding one. Oops. Merge patch by Johan Hedberg
164         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
165         on big-endian platforms.
166
167         * test/python/test-client.py: Add some 16-bit integers to the test
168         values.
169
170 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
171
172         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
173         method return message for property getters
174
175 2005-11-27  Robert McQueen  <robot101@debian.org>
176
177         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
178         with type v of an instance of dbus.Variant(foo, type='x') caused
179         it to be boxed twice before sending over the bus.
180
181         * python/dbus_bindings.pyx, python/service.py,
182         test/python/test-client.py: Update the constants for the new
183         request_name flags, and update comments/test cases now that queueing
184         is the default action.
185
186 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
187
188         * configure.in:
189         - Change version to 0.60 for impending release
190         - upped the sonames because of ABI and API breakage
191
192 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
193
194         * configure.in: Add test/name-test/Makefile to the generated
195         Makefile list
196
197         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
198         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
199         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
200         not to queue an ower if it can't be the primary owner
201
202         * bus/bus.h: Add new internal BusOwner struct
203
204         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
205         to bus_registry_ensure and don't set the prohibit_replacement flag
206         since they are now set per BusOwner and not per name.
207         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
208         that returns the list of connections in a name's connection queue
209         
210         * bus/services.c (struct BusService): remove prohibit_replacement field
211         (struct BusOwner): new struct for keeping track of queued connections
212         and their associated flags for the queue
213         (struct BusRegistry): add a BusOwner memory pool
214         (bus_registry_new): initialize the BusOwner memory pool
215         (bus_registry_unref): free the BusOwner memory pool
216         (_bus_service_find_owner_link): new internal method for
217         searching the queue for a specific connection
218         (bus_owner_set_flags): new method for adding setting the flags on a
219         bus owner
220         (bus_owner_new): new method that creates a BusOwner object from the
221         pool and sets its flags
222         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
223         (bus_registry_ensure): Add the flags parameter
224         (bus_registry_acquire_service): Switch from using raw connections to
225         using the BusOwner struct
226         Add new state machine for dealing with the new set of flags
227         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
228         cancel_ownership, free_ownership_cancel_data, 
229         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
230         restore_ownership, free_ownership_restore_data, 
231         add_restore_ownership_to_transaction): Switch to using BusOwner 
232         instead of raw connections
233         (bus_service_add_owner): Add flags parameter
234         Switch to using BusOwner instead of raw connections
235         Add state machine for dealing with the new set of flags
236         (bus_service_swap_owner): Swaps the first and second owners in the
237         queue.  Used to make sure proper signals are sent when a service looses 
238         or gains primary ownership.  We never insert an owner at the top of the
239         queue.  Instead we insert it in the second position and then swap.
240         (bus_service_remove_owner): Remove the owner from the queue sending
241         out the NameLost and NameOwnerChanged signals if the we were the 
242         primary owner
243         (bus_service_get_primary_owners_connection): New method that extracts
244         the connection from the primary owner
245         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
246         connection
247         (bus_service_get_allow_replacement): Changed from the old 
248         bus_service_get_prohibit_replacement method.  Checks the flags of the 
249         primary owner and returns if it can be replaced or not
250         (bus_service_set_prohibit_replacement): removed
251         (bus_service_has_owner): returns TRUE if and owner with
252         the specified connection exists in the queue
253         
254         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
255         method that only compiles if tests are enabled.  Allows us to get the 
256         unique name of a connection so we can check it against the queue when
257         doing regression tests
258
259         * bus/activation.c (bus_activation_send_pending_auto_activate),
260         bus/dispatch.c (bus_dispatch),  
261         bus/driver.c (bus_driver_handle_get_service_owner, 
262         bus_driver_handle_get_connection_unix_user, 
263         bus_driver_handle_get_connection_unix_process_id,
264         bus_driver_handle_get_connection_selinux_security_context),
265         bus/signals.c (connection_is_primary_owner): 
266         use bus_service_get_primary_owners_connection instead of
267         bus_service_get_primary_owner
268
269         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
270         _dbus_listen_unix_socket): Calculate the length of the socket
271         path and use that instead of using a fixed length which was
272         causing socket names to contain many trailing Nul bytes.
273
274         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
275         (dbus_g_method_get_sender): New method for extracting the sender 
276         from a DBusGMethodInvocation
277         (dbus_g_method_return_get_reply): changed name to 
278         dbus_g_method_get_reply
279         (dbus_g_method_return_send_reply): changed name to
280         dbus_g_method_send reply
281
282         * doc/dbus-specification.xml: New docs that describe how the new
283         queueing system works and talks about the changes to the how
284         we specify socket names
285
286         * glib/examples/example-service.c, 
287         glib/examples/example-signal-emitter.c,
288         glib/examples/statemachine/statemachine-server.c:
289         Changed the RequestName flags to the new system
290
291         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
292         regression test suite for testing various states of the new
293         queueing system
294         
295 2005-11-15  Robert McQueen  <robot101@debian.org>
296
297         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
298         Taylor to add two methods, dbus_g_method_return_get_reply and
299         dbus_g_method_return_send_reply, to allow you to get the reply
300         message from a DBusGMethodInvocation, append arbitrary stuff to it,
301         and send it. The GLib bindings can't marshal a return value of
302         something like a(s) if the array is empty - ultimately they should be
303         made to heed the signature of the out arguments as the Python bindings
304         now can, but this is a workable interim solution which might have
305         other applications.
306
307 2005-11-15  Robert McQueen  <robot101@debian.org>
308
309         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
310         method to org.freedesktop.DBus to release a bus name or give up
311         waiting in the queue for it.
312
313         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
314         dbus_bus_release_name method to send the ReleaseName method calls.
315         Add constants for the return values to dbus/dbus-shared.h.
316
317         * doc/dbus-specification.xml: Document the new ReleaseName method
318         in the specification.
319
320         * python/dbus_bindings.pyx: Add a low-level python binding for the
321         release name method.
322
323         * python/exceptions.py, python/service.py: Make freeing BusName
324         objects release the name. Add a NameExistsException, and fix a
325         bug with creating UnknownMethodException.
326
327         * test/python/test-client.py: Add tests for freeing BusName
328         objects causing names to be released.
329
330 2005-11-14  Robert McQueen  <robot101@debian.org>
331
332         * python/service.py: Include the traceback in the error reply when we
333         send an exception over the bus. _BEST_ _PATCH_ _EVER_
334
335 2005-11-14  David Zeuthen  <davidz@redhat.com>
336
337         Patch from Timo Hoenig <thoenig@suse.de>.
338
339         * bus/bus.c: I've recently investigated why the automatic reload
340         of configuration files does not work as expected.
341
342         Currently, reloading configuration files does only work when
343         running dbus-daemon with --nodaemon.  If we are running as daemon
344         we're hitting a dnotify bug once we fork the process.
345
346         We're initializing the dnotify fds before calling fork().  Once
347         the child process forked it does still have the fds (and they
348         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
349         getting SIGIO as changes are made to the configuration files.
350
351         The attached patch moves the initialization of the dnotify fds to
352         process_config_postinit().  This is safe for all current code
353         paths and solves the dnotify disfunction.  If we're running
354         dbus-daemon as daemon the fds for dnotify are now being
355         initialized after fork() for the child process.
356
357         * configure.in: The current configure.in check for dnotify probes
358         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
359         match for 'xlinux', too. Additionally I have adapted the configure
360         option's style to match with the others.
361
362 2005-11-14  Robert McQueen  <robot101@debian.org>
363
364         * python/decorators.py, python/service.py: Add a new argument to the
365         dbus.service.method decorator called sender_keyword, which if set,
366         specifies the name of an argument which will be provided the bus
367         name of the method caller.
368
369         * test/python/test-client.py, test/python/test-service.py: Add a
370         method and test to check the sender_keyword functionality.
371
372 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
373
374         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
375         empty reply so blocking calls don't block forever (Patch from Sjoerd 
376         Simons <sjoerd at luon.net>)
377
378         * AUTHORS: Add Robert McQueen for his work on the Python
379         Bindings and other parts of D-Bus
380
381 2005-11-07  Robert McQueen  <robot101@debian.org>
382
383         * python/decorators.py: Change emit_signal function to use the
384         signature annotation of the signal when marhsalling the arguments from
385         the service. Fix a bug where the code checking signature length
386         against argument length referenced the wrong variable.
387
388         * python/introspect_parser.py: Avoid adding the type signature of
389         signal arguments to any methods which occur after them in the
390         introspection data (!) by making the parser a little more careful
391         about its current state.
392
393         * python/service.py: Remove debug prints from last commit (again :D).
394
395         * test/python/test-client.py, test/python/test-service.py: Add test
396         signals with signature decorators to test the strict marshalling code
397         gives errors at the right time. Could do with checking the signals
398         actually get emitted too, given that the test does nothing with
399         signals at the moment...
400
401 2005-11-07  Robert McQueen  <robot101@debian.org>
402
403         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
404         instances to stop madness of creating new instances representing
405         the same bus connection all the time, rendering any tracking of
406         match rules and bus names quite meaningless. Caught a bug where
407         the private argument to SessionBus() and friends was being passed
408         in as use_default_mainloop by mistake. Still some problems with
409         multiple dbus_binding.Connection instances representing the same
410         low-level connection (eg when you use both SessionBus() and
411         StarterBus() in same process), but it's a lot better now than it
412         was.
413
414         * python/dbus_bindings.pyx: Add constants with the return values
415         for bus_request_name().
416
417         * python/service.py: Store bus name instances in a per-dbus.Bus cache
418         and retrieve the same instances for the same name, so deletion can be
419         done with refcounting. Also now throws some kind of error if you
420         don't actually get the name you requested, unlike previously...
421
422         * test/python/test-client.py: Add tests for instance caching of buses
423         and bus name objects.
424
425 2005-11-04  Robert McQueen  <robot101@debian.org>
426
427         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
428         marshalling of boolean values. Add some booleans to the values in
429         the test client.
430
431         * python/decorators.py, python/service.py: Add an 'async_callbacks'
432         argument to the dbus.service.method decorator, which allows you to
433         name arguments to take two callback functions for replying with
434         return values or an exception.
435
436         * test/python/test-client.py, test/python/test-service.py: Add test
437         case using asynchronous method reply functions, both return values and
438         errors, and from within both the function itself and from a mainloop
439         callback.
440
441         * python/decorators.py, python/service.py: Perform checking that the
442         number of method/signal arguments matches the number of types in the
443         signature at class loading time, not when you first introspect the
444         class.
445
446         * python/service.py: Remove debug print left by the last commit.
447
448 2005-11-03  Robert McQueen  <robot101@debian.org>
449
450         * python/service.py: Heavy refactoring of method invocation, with
451         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
452         in favour of a new _message_cb that uses seperate functions for
453         looking up the method to call, marshalling the return values, and
454         sending exceptions as errors, and is easier to follow as a
455         consequence.  Fixes some corner cases about returning things that
456         don't match your declared out_signature, allows exceptions to define
457         _dbus_error_name and have it be sent over the bus as the error name,
458         and paves the way for cool stuff like heeding the message no reply
459         flag, asynchronous method implementations, informing the method of the
460         sender, and including backtraces in the error messages.
461
462         * test/python/test-client.py: Catch and print exceptions thrown in the
463         async callback tests, rather than passing them to the low-level
464         bindings to be ignored in a noisy and frustrating manner.
465
466 2005-11-03  Robert McQueen  <robot101@debian.org>
467
468         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
469         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
470         tweak others to be consistent.
471
472         * test/python/test-client.py: Tweak output of testInheritance.
473
474 2005-10-29  Robert McQueen  <robot101@debian.org>
475
476         * python/service.py: Major changes to allow multiple inheritance
477         from classes that define D-Bus interfaces:
478         
479          1. Create a new Interface class which is the parent class of
480             Object, and make the ObjectType metaclass into InterfaceType.
481         
482          2. Patch written with Rob Taylor to replace use of method_vtable
483             with code that walks the class's __MRO__ (method resolution order)
484             to behave like Python does when invoking methods and allow
485             overriding as you'd expect. Code is quite tricky because
486             we have to find two methods, the one to invoke which has the
487             right name and isn't decorated with the /wrong/ interface,
488             and the one to pick up the signatures from which is decorated
489             with the right interface.
490         
491             The same caveats apply as to normal multiple inheritance -
492             this has undefined behaviour if you try and inherit from two
493             classes that define a method with the same name but are
494             decorated with different interfaces. You should decorate
495             your overriding method with the interface you want.
496         
497          3. Replace grungy introspection XML generation code in the metaclass
498             with dictionaries that cope correctly with multiple inheritance
499             and the overriding of methods. This also uses the signature
500             decorations to provide correct introspection data, including
501             the debut appearance of the types of your return values. :D
502
503         * test/python/test-client.py, test/python/test-service.py: Add a test
504         case to try invoking an method that overrides one inherited from a
505         D-Bus interface class.
506
507 2005-10-29  Robert McQueen  <robot101@debian.org>
508
509         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
510         Add checking for the end of struct character when marshalling a
511         struct in MessageIter.append_strict.
512
513         * python/examples/example-service.py,
514         python/examples/gconf-proxy-service.py,
515         python/examples/gconf-proxy-service2.py: Update to use gobject
516         mainloop directly rather than appearing to depend on gtk.
517
518         * python/test/test-client.py, python/test/test-server.py: Remove
519         obsolete and broken test scripts for old bindings. We have up to date
520         and working tests in test/python/.
521
522 2005-10-29  Robert McQueen  <robot101@debian.org>
523
524         * python/decorators.py: Add optional arguments to the method and
525         signal decorators to allow you to specify the signature of arguments
526         and return values. Preserve the doc strings of signal functions in the
527         decorated version, for pydoc and friends.
528
529         * python/dbus_bindings.pyx, python/proxies.py: Replace the
530         parse_signature_block function with an iterable dbus.Signature()
531         type. Fix a bug in MessageIter.append_strict where you could append
532         anything by claiming it was a string.
533
534         * python/service.py: Use the out_signature decoration on methods to
535         marshal return values, meaning you no longer require dbus.Array()
536         or dbus.Dictionary() to indicate the type when returning empty
537         arrays or dictionaries. Fix a bug where exceptions which are defined
538         in __main__ are not turned into error replies.
539
540         * test/python/test-client.py, test/python/test-service.py: Add test
541         for correct marshalling of return values according to out_signature.
542         Fix a bug in the async call test where the error_handler is missing a
543         self argument.
544
545 2005-10-29  Robert McQueen  <robot101@debian.org>
546
547         * glib/Makefile.am, glib/examples/Makefile.am,
548         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
549         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
550
551         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
552
553         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
554         from Ubuntu by Daniel Silverstone to allow specifying match rules on
555         the command line.
556
557 2005-10-27  Ross Burton  <ross@openedhand.com>
558
559         * dbus/dbus-marshal-header.c:
560         Remove dead code.
561
562         * glib/dbus-gobject.c:
563         Stop compiler warning.
564
565 2005-10-25  Ross Burton  <ross@openedhand.com>
566
567         * dbus/dbus-auth.c:
568         * dbus/dbus-server-unix.c:
569         * dbus/dbus-transport-unix.c:
570         * glib/dbus-gmain.c:
571         * glib/dbus-gobject.c:
572         Add some const keywords.
573
574 2005-10-25  Ross Burton  <ross@openedhand.com>
575
576         * doc/dbus-specification.xml:
577         Document the NoReply annotation.
578
579         * glib/dbus-binding-tool-glib.h:
580         * glib/dbus-binding-tool-glib.c:
581         Respect the NoReply annotation.
582
583 2005-10-24  Robert McQueen <robot101@debian.org>
584
585         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
586         derive from unicode instead of str, and encode/decode UTF-8 when
587         marshalling/unmarshalling bus messages
588
589         * python/introspect_parser.py: encode introspection data as UTF-8
590         before passing the buffer into libxml2
591
592         * test/python/test-client.py: add unicode test strings
593
594         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
595         ignore generated python test files
596
597 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
598
599         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
600         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
601         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
602
603         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
604         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
605         when constructing struct signatures
606
607         * python/_dbus.py (Bus): handle private connections using the
608         private keyword in the constructor. defaults to private=False
609         (Bus::close): new method to close a connection to the bus
610
611         * python/dbus_bindings.pyx (Connection::close): renamed method
612         was previously called disconnect
613         (bus_get): now supports getting a private connection
614
615         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
616         keyword is set to True.  if it is, execute the method without waiting
617         for a reply
618         (ProxyObject::_introspect_execute_queue): new method for executing
619         all the pending methods that were waiting for the introspect to
620         finish.  this is called when introspect either succeeds or fails
621         (ProxyObject::_introspect_error_handler): call queued methods
622
623 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
624
625         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
626         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
627
628         * python/service.py (Object::_message_cb): handle exceptions correctly
629         by sending them over the wire to the calling app.  This makes sure
630         the client returns immediately instead of waiting the 15 seconds to
631         timeout.
632
633         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
634         Add a test to benchmark how long it takes to introspect a service and 
635         call a method which returns a large element (pretty fast)
636
637         * test/python/test-service.py (TestObject::GetComplexArray): new test 
638         method which pushes a lot of data
639
640 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
641
642         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
643         reclaim memory outside of the loop and use del istead of just setting
644         the key to None
645
646 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
647
648         * python/service.py (ObjectType::_reflect_on_signal): Always close
649         signal tag even when there are no arguments
650
651 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
652
653         * configure.in: Set mono, mono-docs and Qt3 to default
654         to no instead of auto when building.  These bindings do not
655         have full time maintainers and will not be supported for the
656         1.0 release.
657
658 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
659
660         patches from Michael Krivoruchko <misha at sun.com>: 
661         
662         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
663         _dbus_connection_message_sent, 
664         _dbus_connection_send_preallocated_unlocked_no_update, 
665         _dbus_connection_pop_message_link_unlocked): handle the case when path 
666         is NULL when calling _dbus_verbose
667
668         * configure.in: check for functions getpeerucred and getpeereid
669
670         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
671         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
672         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
673         Patch was only tested on Solaris 10 x86 so it might be issues
674         with other platforms (i.e. BSDs and MacOSX)
675         
676
677 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
678
679         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
680         instead of marshal basic so we can handle recursive types in a variant
681
682         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
683         in variants
684
685         * test/glib/test-service-glib.c, test-service-glib.xml
686         (my_object_echo_variant [EchoVariant], 
687         my_object_process_variant_of_array_of_ints123
688         [ProcessVariantOfArrayOfInts123]): 
689         Add two test methods
690
691         * python/introspect_parser.py: New module for parsing introspect
692         data.
693
694         * python/dbus_bindings.pyx:
695         (various places): when throwing errors fix to use errormsg instead 
696         of message local variable because Pyrex can get confused with other 
697         message variables (initial patch by Robert McQueen 
698         <robert.mcqueen at collabora.co.uk>)
699         (MessageIter::parse_signature_block): new method for getting the next
700         block in a signiture.
701         (MessageIter::append_strict): new method for appending values strictly
702         using the passed in signature instead of guessing at the type
703         (MessageItter:: append_dict, append_struct, append_array): use 
704         signatures to marshal children if the signature is available
705         
706         * python/exceptions.py (IntrospectionParserException): new exception
707
708         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
709         introspected signatures if available, else we fall back to the
710         old way of doing things.
711         (ProxyObject::_introspect_reply_handler ): parse introspection data
712         
713         * python/service.py (ObjectType::_reflect_on_method): Properly
714         terminate <method> if there are no args in the reflection data
715
716         * test/python/test-client.py: add tests for talking with the GLib
717         test server.  This gives us better coverage for introspection since
718         python to python will always generate arguments as variants.  It also
719         allows us to test the robustness of the GLib bindings and interlanguage
720         communications.
721
722         
723 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
724
725         * bus/driver.c (bus_driver_handle_introspect): Add signals
726         to the introspect data. (patch from Daniel P. Berrange 
727         <dan at berrange.com>)
728
729         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
730         
731         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
732         _dbus_connection_run_builtin_filters): Changed these to
733         be unlock_no_update functions and call 
734         _dbus_connection_send_unlocked_no_update instead of
735         dbus_connection_send to avoid locking errors.
736         
737         * doc/TODO: Removed the make Ping test TODO
738         
739 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
740
741         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
742         We now copy the message from a DBusError and then free 
743         the error object befor throwing the error
744
745         * glib/dbus-glib-tool.c: removed extra comma at the end of the
746         DBusBindingOutputMode enum which was causing a warning.
747         #include <time.h> so using time_t is explicitly defined
748
749 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
750
751         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
752         - dbus/dbus-bus.c
753         (internal_bus_get): new method that take over the heavy lifting
754         of dbus_bus_get and adds the ability to get a private connection
755         to the bus
756         (dbus_bus_get): wrapper to internal_bus_get that provides the same
757         interface as in previous versions
758         (dbus_bus_get_private): new method that is a wrapper to 
759         internal_bus_get to get a private connection to the bus
760
761         - dbus/dbus-bus.h
762         (dbus_bus_get_private): add as a public libdbus interface
763
764         - dbus-1.pc.in: output system_bus_default_address and 
765         sysconfdir variables so apps can use them when compiling
766
767 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
768         * dbus/qt: New Qt bindings
769
770 2005-09-12  Waldo Bastian  <bastian@kde.org>
771
772         * dbus/dbus-marshal-validate.c,
773         doc/dbus-specification.xml, test/Makefile.am,
774         test/test-names.c: allow hyphens in bus names.
775
776 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
777
778         * test/data/auth/fallback.auth-script: we don't
779         retry the EXTERNAL method when we know its going
780         to fail anymore.
781
782 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
783
784         * dbus/dbus-connection-internal.h: rename
785         (add|remove|toggle)_(watch|timeout) to unlocked()
786         
787         * dbus/dbus-connection.c: ditto.
788         
789         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
790         Update some callers for the renaming.
791
792 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
793
794         * dbus/dbus-auth.c: (record_mechanisms): don't
795         retry the first auth mechanism because we know
796         we're just going to get rejected again.
797         
798         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
799         Fix thinko ... and what a nasty little bugger to
800         track down you were ...
801
802         * dbus/dbus-connection.c:
803         (_dbus_connection_add_watch),
804         (_dbus_connection_remove_watch): add note about
805         these needing the connection to be locked.
806         (_dbus_connection_get_dispatch_status_unlocked):
807         set status to DATA_REMAINS when we queue the
808         disconnected message.
809         
810         * bus/dispatch.c:
811         (bus_dispatch): fix warning.
812         (check_existent_service_no_auto_start):
813         Expect ChildSignaled error too.
814         (check_existent_hello_from_self): fix another
815         couple of warnings.
816         
817 2005-09-08  Joe Shaw  <joeshaw@novell.com>
818
819         Patches from James Willcox <snorp@snorp.net>
820
821         * mono/Makefile.am: Add Int16.cs and UInt16.cs
822
823         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
824         support array "out" parameters.
825
826         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
827         for 16-bit int support.
828
829 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
830
831         * Released 0.50
832
833         * Patch from Steve Grubb:
834         - bus/activation.c (bus_activation_service_reload_test): clean up
835         some indentation
836         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
837         - dbus/dbus-message-factory.c (generate_special): fix a couple of
838         buffer overflows in the test suite.  This is non critical because
839         it can not be exploited and this code is only run when doing a 
840         make check.
841
842         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
843         - configure.in: Don't check and link against kdecore, only qt headers
844         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
845         - gcj/org/freedesktop/dbus/Makefile.am:
846         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
847         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
848         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
849         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
850         - tools/Makefile.am: Add platform extentions to binaries 
851         (i.e. .exe on windows)
852
853         * configure.in: 
854         - Make it so if no suitable version of python is found we only 
855         disable building python instead of exiting the configure script
856         - Require version 2.4 of glib for glib bindings
857         - Up version to 0.50
858
859         * python/__init__.py: Sync version with libdbus to (0,50,0)
860         
861 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
862
863         * dbus/dbus-object-tree.c (find_subtree_recurse):
864         a couple of optimizations (bug #710):
865         - do a binary search in the tree
866         - insert a new child at the right place directly, no need for
867           qsort anymore
868         - do the "double alloc" thing when allocating children
869
870 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
871
872         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
873
874         * python/dbus_bindings.pyx: Memory management foo
875         (global): remove hacky _user_data_references global list
876         (GIL_safe_cunregister_function_handler): userdata now stuffed into
877         tuples. Unref user_data
878         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
879         (Connection::__del__): Remove and replace with __dealloc__ method
880         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
881         to keep tuple from being deallocated instead of the global var hack
882         (Connection::register_object_path): Stuff user_data into a tuple.
883         Use Py_INCREF to keep tuple from being deallocated instead of the 
884         global var hack
885         (Connection::register_fallback): Stuff user_data into a tuple.
886         Use Py_INCREF to keep tuple from being deallocated instead of the 
887         global var hack
888         (GIL_safe_pending_call_notification): Don't unref the message
889         because it gets unreffed when going out of scope.  Py_XDECREF
890         the user_data
891         (PendingCall::__del__): Remove and replace with __dealloc__ method
892         (PendingCall::set_notify): ref the pending call because we will
893         need it to stick around for when the notify callback gets called
894         (Message::__del__): Remove and replace with __dealloc__ method
895
896         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
897         gthreads_init to match up with the dbus call
898
899         * python/glib.py (init_threads): Changed to threads_init to match
900         up with gobject.threads_init().  init_threads is kept for backwards
901         compat but will most likely be deprecated in the future
902
903         * test/python/test-client.py: 
904         - revamp to use Python's unittest functionality
905         - add async call tests
906         - setup threads in glib and dbus so we make sure locks are working
907         
908 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
909
910         * python/dbus_bindings.pyx 
911         (_pending_call_notification, cunregister_function_handler, 
912         cmessage_function_handler): All callback functions have been rearranged 
913         to workaround a bug in Pyrex when working with the GIL which is Python's 
914         global lock when dealing with threads.  They have been split into
915         a wrapper function (which assumes the name of the old function) and
916         a _GIL_safe_<function name> function which contains the functionality
917         of the old function.  This ensures that Pyrex does not write code
918         the lock is released.
919         
920
921 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
922
923         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
924         GIL global lock when calling back into Python
925
926 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
927
928         * Release 0.36.2
929
930         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
931
932         * bus/policy.c (bus_policy_allow_user): change default "user is
933         allowed" to be "user has same uid as the bus itself"; any
934         allow/deny rules will override.
935
936         * bus/session.conf.in: don't allow all users, since now by default
937         the user that ran the bus can connect.
938
939 2005-08-26  Colin Walters  <walters@verbum.org>
940
941         * tools/dbus-print-message.c (print_message): Flush stdout
942         after printing a message, so that redirecting to a file, then
943         hitting Ctrl-C works.
944
945 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
946
947         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
948         (EmptyMessage): new class that subclasses Message.  This is a workaround
949         to a Pyrex bug that fails to call __del__ when the Message object goes out
950         of scope.  For some reason subclassing Message fixes this bug
951         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
952         - s/Message(_create=0)/EmptyMessage everywhere else
953         
954         * test/python/test-{server|client}.py: add the python/.libs directory
955         to the lookup path so dbus_bindings and dbus_glib_bindings don't
956         get picked up from the system
957
958 2005-08-25  Colin Walters  <walters@verbum.org>
959
960         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
961         to Ryan Lortie for the suggestion.
962
963 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
964
965         * test/python: Add python regression test
966
967         * configure.in: Add test/python/Makefile
968
969         * test/Makefile.am: Add the python directory to SUBDIRS
970
971 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
972
973         * Release 0.36.1
974
975         * python/_dbus.py: 
976         (Interface::connect_to_signal): propigate keywords for match on args
977         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
978
979         * python/proxies.py (ProxyObject::connect_to_signal):
980         propigate keywords for match on args
981
982         * Makefile.am: point everything to pyexecdir since python borks
983         on multilib
984
985 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
986
987         * Release 0.36
988
989 2005-08-23  Colin Walters  <walters@verbum.org>
990
991         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
992
993 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
994
995         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
996         to fix some wranings. We now use dbus_bindings.DBusConnection instead
997         of defining DBusConnection ourselves.
998
999 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1000
1001         * python/dbus.pth: New path file to fix up problems when installing
1002         c libraries to lib64 and python files to lib.
1003
1004         * python/Makefile.am: install dbus.pth in the correct spot
1005
1006 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1007         * ChangeLog: clean up my last entry a bit
1008
1009         * doc/introspect.xsl: New stylesheet for converting introspection data
1010         into browser renderable xhtml. Contributed by Lennart Poettering.
1011
1012         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1013         Poettering.
1014
1015         * doc/dbus-tutorial.xml: 
1016         - Add Colin Walter to the Authors section for authoring the GLib
1017         section
1018         - Add descriptions of the new signature and type functionality
1019         in the Python complex type mapping section
1020         - Add a sidenote on the new args matching functionality in 
1021         the Python bindings
1022         - Fixed up some of the examples to use the gobject.MainLoop
1023         instead of gtk.main
1024         
1025         * python/_dbus.py:
1026         (Bus::_create_args_dict): New. Converts a hash of arg matches
1027         to a more useable format
1028         (Bus::add_signal_receiver): add a **keywords parameter for catching
1029         arg match parameters
1030         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1031         arg match parameters
1032         
1033         * python/matchrules.py:
1034         (MatchTree::exec_matches): Check for arg matches
1035         (SignalMatchRule::add_args_match): New method
1036         (SignalMatchRule::execute): Added args_list parameter as an optimization
1037         so we don't have to marshal the args more than once
1038         (SignalMatchRule::match_args_from_list): New method that checks to see
1039         if the rule's arg matches match an argument list.  Only arguments
1040         set in the rule are checked.
1041         (SignalMatchRule::match_args_from_rule): New method that checks to see
1042         if the rule's arg matches match another rule's.  All args have to match
1043         in order for this method to return true.  If either rule has more args
1044         then it is not a match.
1045         (SignalMatchRule::is_match): Add args match
1046         (SignalMatchRule::repr): Add args to the final output if they exist
1047
1048 2005-08-17  Ross Burton  <ross@burtonini.com>
1049
1050         * glib/dbus-gproxy.c:
1051         (dbus_g_proxy_call_no_reply): unref the message once sent.
1052         (dbus_g_proxy_call): protect against NULL proxy.
1053
1054 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1055
1056         * python/__init__.py: Version updated (0, 43, 0)
1057         
1058         * python/dbus_bindings.pyx: 
1059         - Fixed type objects to have self passed into __init__
1060         - Added the Variant type
1061         - Add the ability to specify types or signatures for Array, Variant 
1062         and Dictionary
1063         (Connection::send_with_reply_handlers): return a PendingCall object
1064         (_pending_call_notification): handle the case when an error is returned 
1065         without an error message in the body
1066         (MessageIter::get_boolean): return True or False instead of an integer
1067         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1068         and add checks for objects with embeded signatures or types (Array, 
1069         Variant and Dictionary)
1070         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1071         (MessageIter::append_dict): handle embeded types or signatures
1072         (MessageIter::append_array): handle embeded types or signatures
1073         (MessageIter::append_variant): new method
1074         
1075         * python/proxies.py:
1076         (DeferedMethod): New. Dummy executable object used when queuing calls 
1077         blocking on introspection data
1078         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1079         or shorter timeouts for method calls
1080         (ProxyObject): Add first pass at an introspection state machine
1081         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1082         introspection. 
1083         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1084         the usual mechanisms for sending messages.  This is to avoid a deadlock
1085         where the Intospect call would be queued waiting for the Introspect 
1086         call to finish ;-)
1087         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1088         when introspection returns with no error
1089         (ProxyObject::_introspect_error_handler): New.  This method is called 
1090         when introspection encounters an error
1091         (ProxyObject::__getattr__): Code to handle different introspection 
1092         states.  Queue async calls or block blocking calls if we are 
1093         introspecting.  Pass through as normal if we are not or are done with 
1094         introspecting.
1095         
1096         * python/service.py: Import signal and method from decorators.py
1097
1098         * python/types.py: Add Variant type
1099
1100 2005-08-16  Colin Walters  <walters@verbum.org>
1101
1102         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1103         DBusError message is NULL.
1104
1105 2005-08-09  Havoc Pennington  <hp@redhat.com>
1106
1107         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1108         malloc'd copy of the name parameter
1109
1110 2005-08-09  Havoc Pennington  <hp@redhat.com>
1111
1112         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1113         warning if the reply serial is set to 0
1114
1115 2005-08-04  Colin Walters  <walters@verbum.org>
1116
1117         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1118         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1119         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1120         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1121         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1122         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1123         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1124         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1125         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1126         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1127         
1128         Prefix name with _ to ensure they're not exported.  All callers
1129         updated.
1130
1131         * glib/dbus-gvalue.c (typecode_to_gtype)
1132         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1133         (signature_iter_to_g_type_dict)
1134         (signature_iter_to_g_type_array)
1135         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1136         (dbus_gtypes_from_arg_signature):
1137         Move to dbus-gsignature.c.
1138
1139         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1140         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1141         (dbus_binding_tool_output_glib_client): Ditto.
1142
1143         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1144         and dbus-gsignature.h
1145
1146         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1147         unused variable.
1148
1149 2005-08-03  Colin Walters  <walters@verbum.org>
1150
1151         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1152         catch any incompatible changes accidentally made.
1153
1154 2005-08-03  Havoc Pennington  <hp@redhat.com>
1155
1156         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1157         typo, from Julien Puydt
1158
1159         * bus/connection.c (bus_connection_disconnected): we were always
1160         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1161
1162 2005-08-01  Colin Walters  <walters@verbum.org>
1163
1164         Patch from Joe Markus Clarke:   
1165         
1166         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1167         use-after-free.
1168
1169 2005-08-01  Colin Walters  <walters@verbum.org>
1170         
1171         Patch from Joe Markus Clarke:   
1172         
1173         * tools/dbus-send.c (main): 
1174         
1175         Don't use C99 style initializers (bug #3933).
1176         
1177 2005-08-01  Colin Walters  <walters@verbum.org>
1178
1179         Patch from Joe Markus Clarke:   
1180
1181         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1182         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1183         * glib/dbus-gobject.c (write_interface):
1184
1185         Don't use C99 style initializers (bug #3933).
1186
1187 2005-07-31  Havoc Pennington  <hp@redhat.com>
1188
1189         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1190         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1191
1192 2005-07-30  Havoc Pennington  <hp@redhat.com>
1193
1194         * fix a bunch of Doxygen warnings and mistakes
1195
1196 2005-07-30  Havoc Pennington  <hp@redhat.com>
1197
1198         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1199         DBUS_BUILD_TESTS since it's now used in production code
1200
1201 2005-07-29  Havoc Pennington  <hp@redhat.com>
1202
1203         * test/glib/test-profile.c (write_junk): initialize the junk
1204         buffer so valgrind doesn't have a breakdown
1205
1206 2005-07-29  Havoc Pennington  <hp@redhat.com>
1207
1208         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1209         (match_rule_matches): remove unused arg
1210         (test_matching): add tests for match_rule_matches()
1211
1212         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1213         do arg0='foo' arg5='bar' in the match rules
1214         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1215
1216         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1217
1218 2005-07-29  Ross Burton  <ross@openedhand.com>
1219
1220         * dbus/dbus-connection.c:
1221         Don't create a DBusCondVar which is never used.
1222
1223 2005-07-27  Ross Burton  <ross@openedhand.com>
1224
1225         * dbus/dbus-message.c:
1226         Reduce the size of the maximum cached message to 10K.
1227
1228 2005-07-25  Ross Burton  <ross@openedhand.com>
1229
1230         * glib/dbus-gproxy.c:
1231         Remove matches when all proxies are unregistered.
1232
1233 2005-07-24  Colin Walters  <walters@verbum.org>
1234
1235         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1236         typedata; recursive arrays won't have it.
1237
1238         * test/glib/test-dbus-glib.c:
1239         * test/glib/test-service-glib.c:
1240         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1241         
1242 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1243
1244         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1245         proxies.py, service.py: Cleanup of code after running it through the
1246         pyflakes code checker mostly dealing with undefined names.  
1247         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1248
1249 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1250
1251         * NEWS: Update to 0.35.2
1252
1253 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1254
1255         * python/_dbus.py: Remove import of the dbus.services
1256         module as it no longer exists (patch from Dimitur Kirov)
1257
1258         * python/service.py (Object::__init__): Fixed typo
1259         s/name/bus_name (patch from Dimitur Kirov)
1260
1261         * python/examples/example-signal-emitter.py: import dbus.glib
1262         to get the main loop and use glib mainloop instead of gtk so
1263         X doesn't have to be running.
1264
1265         * python/examples/example-signal-recipient.py: import dbus.glib
1266         to get the main loop and use glib mainloop instead of gtk so
1267         X doesn't have to be running. Import the decorators module
1268         directly.
1269
1270         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1271         didn't pick up on but are needed to build
1272
1273         * configure.in: upped version to 0.35.2
1274
1275         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1276         added Colin Walters' SELinux API rename patch from head 
1277         s/unix sercurity context/selinux security context/
1278
1279 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1280
1281         * python/Makefile.am: dbus_binding.pxd.in should be included 
1282         in EXTRA_DIST not dbus_binding.pxd
1283         fix up $(srcdir) hopefully for the last time
1284
1285         * NEWS: Update to 0.35.1
1286
1287 2005-07-16  Colin Walters  <walters@verbum.org>
1288
1289         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1290         from bus_driver_handle_get_connection_unix_security_context.  Update for
1291         error usage.
1292         (message_handlers): Update for renames.
1293
1294         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1295         _dbus_string_init failure correctly.
1296         (bus_selinux_append_context): Convert SID to context.  Append it
1297         as a byte array.
1298         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1299         hasn't been called.
1300
1301         * bus/selinux.h: Update prototype.
1302
1303         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1304         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1305
1306 2005-07-15  Colin Walters  <walters@verbum.org>
1307
1308         * doc/TODO: Add note about convenience wrappers.
1309
1310 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1311
1312         * NEWS: Update to 0.35
1313
1314 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1315
1316         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1317         so distcheck doesn't fail
1318
1319         * glib/examples/Makefile.am: Add example-service.xml and 
1320         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1321
1322         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1323         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1324
1325         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1326         compiler looks in the right places during distcheck
1327
1328 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1329
1330         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1331         to fail
1332
1333 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1334
1335         * python/examples/example-service.py,
1336         python/examples/example-signal-emitter.py: Fixed up examples
1337         for API changes
1338
1339 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1340
1341         * python/__init__.py: Upped to version (0,42,0) because of
1342         the API change
1343
1344 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1345
1346         * ChangeLog: fix date in last entry
1347
1348         * configure.in, bus/system.conf.in: add the ability to configure 
1349         the system bus user at compiletime with the --with-dbus-user flag
1350         (patch from Kristof Vansant)
1351
1352 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1353
1354         * bus/dispatch.c, test/test-service.c: Add testcase
1355         for sending messages to oneself (TODO item).
1356
1357         * python/service.py (class Object): Swap ordering of bus_name 
1358         and object_path parameters to better support inheritance.
1359
1360         * doc/dbus-tutorial.xml: change Python docs to reflect change
1361         in parameter ordering and fix the inheritance section.
1362
1363         * doc/TODO: remove sending message to oneself TODO item
1364
1365 2005-07-15  Ross Burton  <ross@openedhand.com>
1366
1367         * glib/dbus-gproxy.c:
1368         Fix a leak when calling methods via the proxy.
1369
1370 2005-07-15  Colin Walters  <walters@verbum.org>
1371
1372         * bus/selinux.c (bus_selinux_append_context): Wrap in
1373         HAVE_SELINUX.
1374
1375 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1376
1377         * python/_dbus.py (Bus::remove_signal_receiver):
1378         don't add a callback to the match if none has been passed in
1379         
1380         * python/matchrules.py (SignalMatchTree::remove): if the rule
1381         being matched does not have a callback treat it as a wildcard
1382         fix matching logic
1383
1384         * doc/dbus-tutorial.xml: Add Python tutorial
1385
1386 2005-07-14  Colin Walters  <walters@verbum.org>
1387
1388         * bus/driver.c
1389         (bus_driver_handle_get_connection_unix_security_context): New function.
1390         (message_handlers): Add.
1391
1392         * bus/selinux.c (bus_selinux_append_context): New function; appends
1393         security context to message.
1394
1395         * bus/selinux.h: Prototype.
1396
1397         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1398
1399 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1400
1401         * bus/activation.c: clean up all tabs to be 8 spaces 
1402         (bus_activation_activate_service): make sure we clean up
1403         if activation fails
1404
1405         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1406         (check_shell_fail_service_auto_start): New function
1407         tests to make sure we get fail properly when trying to auto start a service
1408         with a faulty command line
1409         (check_shell_service_success_auto_start): New function tests to make sure
1410         auto started services get the arguments on the command line
1411
1412         * test/test-shell-service.c: Added service for testing auto-starting with 
1413         command line arguments
1414
1415         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1416         test/data/valid-service-files/debug-shell-echo-success.service.in:
1417         Added service files for testing auto-starting with command line arguments
1418
1419         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1420
1421 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1422
1423         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1424         
1425         * dbus/Makefile.am: added new files to build.
1426
1427         * bus/activation.c (bus_activation_activate_service): support
1428         activation commands with parameters.
1429
1430         * test/shell-test.c: added test program for the shell parsing
1431         code.
1432
1433 2005-07-13  David Zeuthen  <davidz@redhat.com>
1434
1435         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1436         64 bit signed and unsigned parameters
1437
1438 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1439
1440         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1441
1442         * python/service.py (class Name): renamed BusName to make it clearer
1443         what the object is for (a name on the bus)
1444
1445         * python/examples/example-service.py,
1446         python/examples/example-signal-emitter.py: change the Name object to
1447         BusName
1448
1449 2005-07-12  Colin Walters  <walters@verbum.org>
1450
1451         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1452
1453         * tools/dbus-launch.c: Include sys/select.h.
1454
1455 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1456         * python/dbus_bindings.pyx.in: removed
1457
1458         * python/dbus_bindings.pyx: Added.
1459         - Fixed some memleaks (patch from 
1460         Sean Meiners <sean.meiners@linspireinc.com>)
1461         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1462         own pxd file (Pyrex definition)
1463         - Broke out glib dependancies into its own pyx module
1464         
1465         * python/dbus_bindings.pdx: Added.
1466         - Defines C class Connection for exporting to other modules
1467
1468         * python/dbus_glib_bindings.pyx: Added.
1469         - New module to handle lowlevel dbus-glib mainloop integration
1470
1471         * python/glib.py: Added.
1472         - Registers the glib mainloop when you import this module
1473
1474         * python/services.py: Removed (renamed to service.py)
1475         
1476         * python/service.py: Added.
1477         - (class Server): renamed Name
1478
1479         * python/__init__.py: Bump ro version (0,41,0)
1480         -don't import the decorators or service module
1481         by default.  These now reside in the dbus.service namespace
1482
1483         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1484         setup function on creation 
1485
1486         * python/examples/example-service.py,
1487         python/examples/example-signal-emitter.py: update examples
1488
1489         * python/examples/gconf-proxy-service.py,
1490         python/examples/gconf-proxy-service2.py: TODO fix these up
1491
1492         * doc/TODO: Addition
1493         - Added a Python Bindings 1.0 section
1494         - added "Add match on args or match on details to match rules"
1495
1496
1497 2005-07-12  Colin Walters  <walters@verbum.org>
1498
1499         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1500         (statemachine-glue.h): 
1501         * glib/examples/Makefile.am (example-service-glue.h) 
1502         (example-signal-emitter-glue.h): 
1503         * glib/Makefile.am (dbus-glib-error-switch.h): 
1504         Add libtool --mode=execute so we use the built library instead
1505         of any installed one.
1506
1507 2005-07-11  Colin Walters  <walters@verbum.org>
1508
1509         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1510         (dbus_g_value_types_init): Remove assertion.
1511         (dbus_g_value_get_g_type, dbus_g_value_open)
1512         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1513         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1514         functions related to DBusGValue.  Now we marshal/demarshal
1515         structures as GValueArray.
1516         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1517         structures.
1518         (signature_iter_to_g_type_array): Don't call
1519         signature_iter_to_g_type_struct.
1520         (signature_iter_to_g_type_struct): Delete.
1521         (dbus_gvalue_to_signature): Delete.
1522         (dbus_gvalue_to_signature): New function with same name as other
1523         one; we can convert structures to signatures.
1524         (demarshal_valuearray): New function.
1525         (get_type_demarshaller): Use it.
1526         (demarshal_recurse): Delete.
1527         (marshal_proxy): New function.
1528         (marshal_map): Warn if we can't determine signature from type.
1529         (marshal_collection_ptrarray): Ditto.
1530         (marshal_collection_array): Ditto.
1531         (get_type_marshaller): Use marshal_valuearray.
1532         (marshal_recurse): Delete.
1533         (_dbus_gvalue_test): Add some tests.
1534
1535         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1536         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1537         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1538         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1539         (dbus_g_value_free): Remove prototypes.
1540
1541         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1542         G_TYPE_VALUE_ARRAY.
1543
1544         * glib/examples/example-service.c:
1545         * glib/examples/example-client.c: Implement GetTuple.
1546
1547         * test/glib/test-dbus-glib.c:
1548         * test/glib/test-service-glib.c:
1549         * test/glib/test-service-glib.xml: Add structure tests.
1550
1551 2005-07-10  Colin Walters  <walters@verbum.org>
1552
1553         * doc/TODO: Knock off some GLib items with this patch.
1554
1555         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1556         (_dbus_gvalue_signals_error): New functions.
1557
1558         * glib/dbus-gvalue-utils.h: Prototype them.
1559
1560         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1561         and change to not output const/retval flags for input args.  All
1562         callers updated.
1563         (invoke_object_method): Refactor to handle return values.  Add
1564         some more comments in various places.  Remove debug g_print.
1565
1566         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1567
1568         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1569         Handle G_TYPE_NONE.
1570         (compute_gsignature): New function; refactored from code from
1571         compute_marshaller and compute_marshaller_name.  Enhance to
1572         handle return values and async ops more cleanly.  Update for
1573         async ops returning NONE instead of BOOLEAN.
1574         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1575         and output appropriate string.
1576         (generate_glue): Handle return value annotation.  Also don't dump
1577         constness flag for input arguments.
1578
1579         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1580         files shared between installed library and utilities.
1581         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1582         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1583         binding tool can access gtype utility functions.
1584
1585         * test/glib/test-service-glib.c: 
1586         * test/glib/test-service-glib.xml: 
1587         * test/glib/test-dbus-glib.c: Add some tests for return values.
1588
1589 2005-07-09  Colin Walters  <walters@verbum.org>
1590
1591         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1592         argument if available, not method.
1593
1594         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1595         (invoke_object_method): First, remove some redundant
1596         GValues (object_value, error_value) in favor of working on
1597         array directly.  Second, rework constness to be less buggy.
1598         Now we iterate directly over the argument metadata instead
1599         of parallel iterating over output signature and metadata.
1600
1601         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1602
1603         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1604         annotation on input args.
1605         
1606 2005-07-09  Colin Walters  <walters@verbum.org>
1607
1608         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1609         Define.
1610
1611         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1612         annotation.
1613
1614         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1615         (method_dir_signature_from_object_info): Handle arg_iterate change.
1616         (write_interface): Ditto.
1617         (lookup_object_info): Don't barf if format_version is > 0.
1618         (invoke_object_method): Handle arg constness.
1619
1620         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1621         (arg_info_new): Create.
1622         (arg_info_unref): Destroy.
1623         (arg_info_get_annotations, arg_info_get_annotation) 
1624         (arg_info_add_annotation): New functions.
1625
1626         * glib/dbus-gidl.h: Prototype them.
1627
1628         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1629         args, disallow them in properties.
1630         (parse_annotation): Handle arg annotations.
1631
1632         * test/glib/test-service-glib.xml: 
1633         * test/glib/test-service-glib.c: Update to make some methods
1634         const.
1635
1636 2005-07-08  Colin Walters  <walters@verbum.org>
1637
1638         * test/glib/test-service-glib.xml: 
1639         * test/glib/test-service-glib.c:
1640         * test/glib/test-dbus-glib.c: Test a{sv}.
1641
1642         * glib/examples/statemachine/statemachine.c:
1643         * glib/examples/statemachine/statemachine-server.c:
1644         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1645         add progress bar, etc.
1646
1647         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1648         needed anymore due to generic array/map marshalling.
1649         (dbus_g_value_types_init): Don't register basic arrays or the
1650         string/string hash.
1651         (dbus_gtype_from_signature_iter): Don't try to recurse into
1652         variants.
1653         (dbus_gtype_to_signature): Check collection/map before type
1654         metadata.
1655         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1656         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1657         generic map creation/append functions instead of hash table
1658         specifically.
1659         (get_type_demarshaller): Handle maps.
1660         (demarshal_collection): Dispatch on collection type to either
1661         demarshal_collection_ptrarray or demarshal_collection_array.
1662         (get_type_marshaller): Handle maps.
1663         (marshal_collection): Dispatch collection type to either
1664         marshal_collection_ptrarray or marshal_collection_array.
1665         (_dbus_gvalue_test): New test.
1666
1667         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1668         (hash_free_from_gtype): Use it to free GValues.
1669         (hashtable_append): New function.
1670         (ptrarray_append): Fix prototype.
1671         (slist_append): Ditto.
1672         (_dbus_gvalue_utils_test): Extend tests.
1673
1674         * glib/dbus-gtype-specialized.c
1675         (dbus_g_type_specialized_init_append): Renamed from
1676         dbus_g_type_specialized_collection_init_append.  Remove const from
1677         value, since we steal it.
1678         (dbus_g_type_specialized_map_append): New function.
1679
1680         * glib/dbus-gtype-specialized.h: Update prototypes.
1681         Add DBusGTypeSpecializedMapAppendFunc.
1682
1683         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1684         _dbus_gvalue_test.
1685         
1686         * glib/dbus-gtest.h: Prototype it.
1687
1688 2005-07-08  Ross Burton  <ross@openedhand.com>
1689
1690         * dbus/dbus-glib.h:
1691         Add DBysGAsyncData for the async bindings.
1692
1693         * glib/dbus-binding-tool-glib.c:
1694         Re-enable the async bindings.
1695
1696         * test/glib/test-dbus-glib.c:
1697         Add a test for the generated async bindings.
1698
1699 2005-07-08  Colin Walters  <walters@verbum.org>
1700
1701         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1702         connection concept.
1703         
1704 2005-07-08  Colin Walters  <walters@verbum.org>
1705         
1706         * tools/Makefile.am: Kill of print-introspect in favor of using
1707         dbus-send --print-reply=literal.
1708
1709         * test/glib/test-service-glib.xml: 
1710         * test/glib/test-service-glib.c (my_object_get_objs): New test
1711         for "ao".
1712
1713         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1714         (main): Test GetObjs.
1715
1716         * glib/examples/statemachine/Makefile.am:
1717         * glib/examples/statemachine/sm-marshal.list:
1718         * glib/examples/statemachine/statemachine-client.c:
1719         * glib/examples/statemachine/statemachine-server.c:
1720         * glib/examples/statemachine/statemachine-server.xml:
1721         * glib/examples/statemachine/statemachine.c:
1722         * glib/examples/statemachine/statemachine.h:
1723         * glib/examples/statemachine/statemachine.xml:
1724
1725         New example.
1726
1727         * glib/examples/example-service.c (main): Move invocation
1728         of dbus_g_object_type_install_info earlier, to emphasize it
1729         should only be done once.
1730
1731         * glib/examples/example-signal-emitter.c (main): Ditto.
1732
1733         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1734
1735         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1736         (dbus_gvalue_marshal): Update prototypes.
1737
1738         * glib/dbus-gvalue.c: Update all marshalling functions to take
1739         const GValue instead of GValue.
1740         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1741         types.
1742         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1743         change.
1744         (dbus_gtype_to_signature): Handle generic collecitons and maps.
1745         Return a newly-allocated string.
1746         (demarshal_proxy, demarshal_object_path, demarshal_object)
1747         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1748         we get the wrong types from message.
1749         (get_type_demarshaller): New function, extracted from
1750         dbus_gvalue_demarshal.
1751         (demarshal_collection): New function, demarshals generic
1752         collection.
1753         (dbus_gvalue_demarshal): Just invoke result of
1754         get_type_demarshaller.  Throw error if we don't have one.
1755         (marshal_garray_basic): Abort on OOM.
1756         (get_type_marshaller): New function, extracted from
1757         dbus_gvalue_marshal.
1758         (collection_marshal_iterator, marshal_collection): New functions;
1759         implements generic marshalling for an iteratable specialized
1760         collection.
1761         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1762
1763         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1764         G_TYPE_STRING.
1765         (ptrarray_value_from_gvalue): Ditto.
1766         (ptrarray_append, ptrarray_free): New functions.
1767         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
1768         (slist_append, slist_end_append, slist_free): New functions.
1769         (dbus_g_type_specialized_builtins_init): Add append fuctions
1770         for GPtrArray and GSList.  Register GSList.
1771         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1772
1773         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1774         New.
1775         (dbus_g_type_specialized_collection_init_append)
1776         (dbus_g_type_specialized_collection_append)
1777         (dbus_g_type_specialized_collection_end_append): Prototype.
1778         (DBusGTypeSpecializedCollectionVtable): Add append_func and
1779         end_append_func.
1780
1781         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
1782         (dbus_g_type_specialized_collection_append) 
1783         (dbus_g_type_specialized_collection_end_append): New functions.
1784         (dbus_g_type_map_value_iterate): Take const GValue.
1785         (dbus_g_type_collection_value_iterate): Ditto.
1786
1787         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1788         _dbus_gvalue_utils_test.
1789         
1790         * glib/dbus-gtest.h: Prototype it.
1791
1792         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1793         using uninitialized owner_list.
1794         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1795         public API.
1796         (dbus_g_proxy_end_call_internal): Update to use error set
1797         from dbus_gvalue_demarshal instead of setting it here.
1798         (dbus_g_proxy_begin_call): Move return_if_fail here.
1799
1800         * glib/dbus-gobject.c (write_interface): Update for
1801         dbus_gtype_to_signature returning new string.
1802
1803         * configure.in: Add glib/examples/statemachine.
1804
1805 2005-07-08  Joe Shaw  <joeshaw@novell.com>
1806
1807         * configure.in: Add a configure option, --with-console-auth-dir
1808         
1809         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1810         new setting.  Patch from Kay Sievers.
1811
1812 2005-07-06  Colin Walters  <walters@verbum.org>
1813
1814         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1815         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1816         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1817         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1818         Delete in favor of dbus_g_proxy_begin_call and
1819         dbus_g_proxy_cancel_call.
1820         (DBusGProxyCall, DBusGProxyCallNotify): New.
1821         (dbus_g_proxy_begin_call): Change prototype to take callback, user
1822         data, and destroy function.  This replaces
1823         dbus_g_pending_call_set_notify.
1824         (dbus_g_proxy_cancel_call): Prototype.
1825         (DBusGAsyncData): Delete, shouldn't be needed anymore.
1826
1827         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1828         pending_calls map.
1829         (struct _DBusGProxyManager): Add bus_proxy member, which is an
1830         internal proxy for calls to the bus. Remove
1831         pending_nameowner_calls, now the internal proxy keeps track.
1832         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1833         pending_nameowner_calls.
1834         (got_name_owner_cb): Update prototype, and use
1835         dbus_g_proxy_end_call.
1836         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1837         (dbus_g_proxy_manager_register): Delete directly libdbus code in
1838         favor of using internal proxy.
1839         (dbus_g_proxy_manager_unregister): Update to use
1840         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1841         (dbus_g_proxy_init): Initialize pending calls map.
1842         (dbus_g_proxy_constructor): New.
1843         (dbus_g_proxy_class_init): Add get/set property functions,
1844         constructor, and add NAME, PATH, and INTERFACE properties.
1845         (cancel_pending_call): New function.
1846         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1847         cancel them.
1848         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1849         (GPendingNotifyClosure): New structure.
1850         (d_pending_call_notify, d_pending_call_free): Moved here from
1851         dbus-glib.c.
1852         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1853         ordering.
1854         (manager_begin_bus_call): New internal function for talking to
1855         internal bus proxy.
1856         (dbus_g_proxy_new): Construct object using GObjet properties.
1857         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1858         Create closure of same, and insert call into map of pending calls.
1859         (dbus_g_proxy_end_call_internal): Take call id instead of pending
1860         call.  Look up pending call in current set.  Remove it when we've
1861         completed.
1862         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1863         (dbus_g_proxy_begin_call): Change API to take callback, user data,
1864         and destroy function directly.
1865         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1866         (dbus_g_proxy_call): Invoke with NULL callback.
1867         (dbus_g_proxy_cancel_call): New function, replaces
1868         dbus_g_pending_call_cancel.
1869
1870         * glib/dbus-gparser.c (validate_signature): Fix call to
1871         dbus_set_g_error.
1872
1873         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1874         New quark for attaching metadata to GType.
1875         (info_hash): Delete.
1876         (lookup_object_info): Look up using quark.
1877         (dbus_g_object_type_install_info): Check that a type is classed,
1878         not that it's an object.  Also just install type data using quark
1879         instead of using global hash.
1880
1881         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
1882         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1883         (GPendingNotifyClosure): Delete.
1884         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1885         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1886
1887         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1888         client method generation until we can fix it...
1889         
1890         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1891         (load_from_service_thread_func): Ditto.
1892
1893         * tools/dbus-names-model.c (struct NamesModel): Hold
1894         DBusGProxyCall.
1895         (have_names_notify): Update prototype, use
1896         dbus_g_proxy_cancel_call.
1897         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1898
1899         * tools/dbus-monitor.c (filter_func): Update for print_message
1900         API change.
1901
1902         * test/glib/test-dbus-glib.c: Add more tests for async
1903         invocations.  Update many begin_call/end_call pairs to just use
1904         dbus_g_proxy_call.
1905
1906         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
1907         allows us to dump print-introspect.c.
1908
1909         * tools/dbus-print-message.h (print_message): Add literal argument
1910         to print_message which is intended to allow printing arguments without
1911         metadata like "string=".
1912
1913         * tools/dbus-print-message.c (print_iter): Add literal argument.
1914         (print_message): Allow printing string messages literally.
1915
1916 2005-07-05  Colin Walters  <walters@verbum.org>
1917
1918         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1919         Remove value refcount leak, original patch from Jorn Baayen
1920         <jorn@openedhand.com>.  Also remove useless extra value in favor
1921         of prepending to value array directly.
1922
1923 2005-07-02  Colin Walters  <walters@verbum.org>
1924
1925         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1926
1927 2005-07-01  Colin Walters  <walters@verbum.org>
1928
1929         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1930         
1931         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1932         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1933         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1934         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1935
1936 2005-06-30  Colin Walters  <walters@verbum.org>
1937
1938         * test/glib/test-dbus-glib.c:
1939         * test/glib/test-service-glib.c:
1940         * test/glib/test-service-glib.xml: Update tests for new error
1941         setting bits, also add async tests (patch from Ross Burton).
1942
1943         * test/glib/Makefile.am (test_service_glib_LDADD): Add
1944         DBUS_GLIB_THREADS_LIBS.
1945
1946         * glib/dbus-gproxy.c (get_name_owner)
1947         (dbus_g_pending_call_end_valist): Ditto.
1948
1949         * glib/dbus-gobject.c (error_metadata): New mapping from GError
1950         domain (GQuark) to DBusGErrorInfo.  
1951         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
1952         quark in error_metadata.  Take message interface as default
1953         error message interface.
1954         (gerror_to_dbus_error_message): Pass message interface.
1955         (dbus_set_g_error): Resurrected.
1956         (dbus_g_error_info_free): New function.
1957         (dbus_g_object_type_install_info): Use g_type_class_ref instead
1958         of _peek to actually create the object class if it hasn't been
1959         created yet.
1960         (dbus_g_error_domain_register): New function.
1961
1962         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
1963
1964         * glib/dbus-gparser.c (validate_signature): Ditto.
1965
1966         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
1967         (dbus_g_error_domain_register): Prototype.
1968
1969         * glib/dbus-glib.c (dbus_g_error_set): Delete.
1970         Update tests.
1971
1972 2005-06-29  Colin Walters  <walters@verbum.org>
1973
1974         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
1975         DBUS_TYPE_G_OBJECT_PATH.
1976
1977         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
1978         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
1979         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
1980         (dbus_g_object_path_get_g_type): New function.
1981         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
1982         to DBUS_TYPE_G_OBJECT_PATH by default.
1983         (demarshal_proxy): Remove unused name variable.
1984         (demarshal_object_path, marshal_object_path): New functions.
1985         (demarshal_proxy_array, marshal_proxy_array): Delete.
1986         
1987         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
1988         DBUS_TYPE_G_OBJECT_PATH to char *.
1989         (dbus_g_type_get_lookup_function): Map builtin
1990         DBUS_TYPE_G_OBJECT_PATH.
1991
1992         * test/glib/test-dbus-glib.c
1993         * test/glib/test-service-glib.c (my_object_objpath): 
1994         Adapt tests to new object path marshalling.
1995
1996 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
1997
1998         * configure.in: force check for Python >= 2.4
1999
2000 2005-06-29  Colin Walters  <walters@verbum.org>
2001         
2002         Patch from Ross Burton <ross@openedhand.com>
2003         
2004         * glib/dbus-gobject.c (invoke_object_method): Unset object
2005         value in all cases, not only in async case.
2006
2007 2005-06-29  Colin Walters  <walters@verbum.org>
2008
2009         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2010         name_call for keeping track of any outgoing GetNameOwner call.
2011         Also add for_owner and associated.
2012         (struct _DBusGProxyManager): Add owner_names, which is hash table
2013         that maps a base name to a list of names it owns (that we're
2014         interested in).  Add pending_nameowner_calls which is a list of
2015         all outstanding GetNameOwner; avoids us having to iterate over
2016         every proxy.  Add unassociated_proxies which keeps track of name
2017         proxies with no associated name owner.
2018         (dbus_g_proxy_manager_unref): Destroy owner_names.
2019         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2020         name refcounts.
2021         (find_name_in_info, name_owner_foreach)
2022         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2023         (dbus_g_proxy_manager_monitor_name_owner)
2024         (dbus_g_proxy_manager_unmonitor_name_owner)
2025         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2026         New functions; they manipulate the owner_names mapping.
2027         (got_name_owner_cb): New function.
2028         (get_name_owner): New function, extracted from
2029         dbus_g_proxy_new_for_name_owner.
2030         (dbus_g_proxy_manager_register): For now we need to keep track of
2031         all NameOwnerChanged.  Also if the proxy is for a name, if we
2032         don't already know the name owner, queue a new GetNameOwner
2033         request and add it to our list of unassociated proxies.  Otherwise
2034         inc the refcount.
2035         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2036         cancel any pending GetNameOwner call, etc.
2037         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2038         the owner_names mapping to look up the current names for the
2039         signal source, and dispatch to any proxies for that name.
2040         (dbus_g_proxy_new): Initialize new members.
2041         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2042         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2043         (dbus_g_pending_call_end_valist): New function, extracted from
2044         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2045         but want to use the GLib infrastructure.  Also note how many
2046         arguments in reply were over.
2047         (dbus_g_pending_call_end): New function, just call
2048         dbus_g_pending_call_end_valist.
2049         (dbus_g_proxy_end_call_internal): Just call
2050         dbus_g_pending_call_end_valist.
2051
2052         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2053         of builtin marshaller for STRING_STRING_STRING.
2054
2055         * test/glib/test-dbus-glib.c: 
2056         * test/glib/test-service-glib.c:
2057         * test/glib/test-service-glib.xml:
2058         Extend tests to cover name proxies, destruction of owner proxies,
2059         etc.
2060         
2061         * glib/examples/example-signal-recipient.c
2062         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2063         
2064         * tools/dbus-send.c (main): Print D-BUS error name in addition
2065         to message.
2066
2067 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2068
2069         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2070         cmessage_function_handler): Patch from 
2071         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2072         by using the Py_GILState_Ensure/Release to synchronize with the
2073         python runtime.
2074         
2075 2005-06-28  Ray Strode  <rstrode@redhat.com>
2076
2077         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2078         babysitter helper process on last unref, bug #2813.
2079
2080 2005-06-27  Colin Walters  <walters@verbum.org>
2081
2082         * test/glib/test-dbus-glib.c: 
2083         * test/glib/test-service-glib.c:
2084         * test/glib/test-service-glib.xml:
2085         Test hash table signal emitting.
2086
2087         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2088         types to their fundamental basis types, since this is what
2089         marshallers operate on.  Also add an entry for VOID__BOXED.
2090         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2091
2092 2005-06-26  Havoc Pennington  <hp@redhat.com>
2093
2094         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2095         from Don Park
2096
2097 2005-06-26  Colin Walters  <walters@verbum.org>
2098
2099         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2100         (dbus_g_error_set): New public function from its ashes; used by
2101         both service-side method implementation and GLib bindings
2102         internals.
2103         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2104         (_dbus_glib_test): Add some tests.
2105
2106         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2107
2108         * test/glib/test-service-glib.c (my_object_throw_error): Use
2109         dbus_g_error_set.
2110
2111         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2112         errors thrown by dbus_g_error_set.
2113
2114         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2115
2116         * glib/dbus-gparser.c (validate_signature): Ditto.
2117
2118         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2119         (dbus_g_proxy_end_call_internal): Ditto.
2120
2121         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2122         converts DBUS_ERROR_x to DBUS_GERROR_x.
2123         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2124
2125         * doc/TODO: Remove error TODO.
2126
2127         * doc/dbus-tutorial.xml: Update with documentation about error
2128         handling.
2129
2130         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2131         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2132         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2133
2134 2005-06-22  Colin Walters  <walters@verbum.org>
2135         
2136         Patch from Ross Burton <ross@openedhand.com>
2137
2138         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2139
2140 2005-06-20  Colin Walters  <walters@verbum.org>
2141
2142         * configure.in: Add glib/examples.
2143
2144         * glib/Makefile.am: Add examples/
2145
2146         * glib/examples/.cvsignore
2147         * glib/examples/Makefile.am
2148         * glib/examples/example-client.c
2149         * glib/examples/example-service.c
2150         * glib/examples/example-service.xml
2151         * glib/examples/example-signal-emitter.c
2152         * glib/examples/example-signal-emitter.xml
2153         * glib/examples/example-signal-recipient.c:
2154         New files; GLib binding examples, ported from
2155         python/examples.
2156
2157 2005-06-20  Colin Walters  <walters@verbum.org>
2158
2159         * dbus/dbus-glib.h: 
2160         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2161         dbus_g_proxy_call.
2162
2163         * glib/dbus-binding-tool-glib.c: 
2164         * doc/dbus-tutorial.xml: 
2165         * test/glib/test-dbus-glib.c: Update for rename.
2166         
2167 2005-06-20  Colin Walters  <walters@verbum.org>
2168
2169         Patch suggested by Ross Burton <ross@openedhand.com>
2170
2171         * glib/dbus-gobject.c (export_signals): Free signal name.
2172         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2173         memory leak.  Add a bit of documentation.
2174         (dbus_g_method_return_error): Free context, and note we do
2175         so.
2176
2177 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2178
2179         * dbus/dbus-glib.h:
2180         * glib/dbus-gobject.c:
2181         * glib/dbus-gproxy.c:
2182         * glib/dbus-gvalue.c: Predeclare structs as 
2183         typedef struct _Something Something instead of 
2184         typedef struct Something Something, so we can 
2185         redeclare the prototypes. Other GNOME libraries 
2186         do this already.
2187
2188 2005-06-17  Colin Walters  <walters@verbum.org>
2189
2190         * tools/dbus-names-model.c (have_names_notify): Fix call
2191         to dbus_g_proxy_end_call.
2192         
2193 2005-06-17  Colin Walters  <walters@verbum.org>
2194
2195         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2196         spew warnings if we get malformed remote signals.
2197
2198         * glib/dbus-gobject.c (propsig_iterate): New function.
2199         (lookup_object_info): New function, extracted from
2200         lookup_object_and_method.
2201         (introspect_properties, introspect_signals): Delete; these
2202         are merged into write_interface.
2203         (write_interface): Write out signals and properties here;
2204         dump the org.gtk.object stuff and use the interface given
2205         in the introspection data blob.  Also fix up property XML.
2206         (lookup_values): New function.
2207         (introspect_interfaces): Gather a mapping from interface to a
2208         list of its methods, signals, and properties, then write out
2209         each interface.
2210         (lookup_object_and_method): Use lookup_object_info.
2211         (struct DBusGSignalClosure): Add interface.
2212         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2213         we can just use the constant data.
2214         (dbus_g_signal_closure_finalize): Don't free signal name.
2215         (signal_emitter_marshaller): Use interface from signal closure.
2216         (export_signals): Only export signals mentioned in introspection
2217         blob.
2218         (dbus_g_connection_register_g_object): Warn if we have no
2219         introspection data for an object.
2220         (funcsig_equal): Remove unused variable.
2221         (dbus_g_object_register_marshaller): Take varargs instead of
2222         list.
2223         (dbus_g_object_register_marshaller_array): New function,
2224         extracted from old dbus_g_object_register_marshaller.
2225
2226         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2227         signals and property data.
2228         (write_quoted_string): New function, extracted from generate_glue.
2229         (generate_glue): Write signals and properties to introspection
2230         blob.
2231
2232         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2233         exported_signals and exported_properties.
2234         (dbus_g_object_register_marshaller): Update prototype.
2235         (dbus_g_object_register_marshaller_array): Prototype.
2236         
2237         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2238
2239         * test/glib/test-service-glib.c: Add new test signals and method
2240         to emit them.
2241
2242         * test/glib/test-service-glib.xml: Add some test signals.
2243
2244         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2245         and my-object-marshal.h
2246         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2247         my-object-marshal.c.
2248         (my-object-marshal.c, my-object-marshal.h): Implement.
2249
2250         * test/glib/.cvsignore: Update.
2251
2252         * doc/TODO: Remove two GLib TODO items fixed by this
2253         patch.
2254
2255 2005-06-16  Colin Walters  <walters@verbum.org>
2256
2257         * doc/TODO: Update for GLib bindings.
2258         
2259 2005-06-16  Colin Walters  <walters@verbum.org>
2260
2261         * glib/dbus-binding-tool-glib.c:
2262         * glib/dbus-gobject.c:
2263         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2264         from Ross Burton, for his GLib bindings work.
2265
2266 2005-06-16  Colin Walters  <walters@verbum.org>
2267
2268         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2269         to iterate instead of walking to G_TYPE_INVALID.
2270
2271         Patch based on a patch from Ryan Gammon.
2272
2273 2005-06-16  Colin Walters  <walters@verbum.org>
2274
2275         * bus/bus.c (bus_context_new): Set parser to NULL
2276         after we unref it (Patch from Chris Boscolo, #2174).
2277         
2278 2005-06-16  Colin Walters  <walters@verbum.org>
2279
2280         * python/dbus_bindings.pyx.in: Import size_t,
2281         __int64_t, __uint64_t, and __signed.
2282
2283         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2284         Define cmsg struct, output it.
2285         (_dbus_read_credentials_unix_socket):
2286         Use cmsg struct.
2287         
2288         Patch from Joe Markus Clarke for FreeBSD support.
2289         
2290 2005-06-16  Colin Walters  <walters@verbum.org>
2291
2292         * tools/dbus-send.c (append_array): Use strtok.
2293         (append_dict): New function.
2294         (type_from_name): New function, extracted from main.
2295         (main): Handle sending dicts.
2296
2297         * tools/dbus-print-message.c (print_iter): Print dict
2298         entries.
2299         
2300 2005-06-16  Colin Walters  <walters@verbum.org>
2301
2302         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2303         values as the empty string (#2948).
2304         
2305 2005-06-16  Colin Walters  <walters@verbum.org>
2306
2307         * dbus/Makefile.am:
2308         * mono/doc/Makefile.am:
2309         * test/glib/Makefile.am:
2310
2311         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2312
2313 2005-06-16  Colin Walters  <walters@verbum.org>
2314
2315         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2316         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2317
2318         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2319         Increment pointer after swapping fixed array.  Add assertion
2320         for array length.
2321                 
2322 2005-06-15  Colin Walters  <walters@verbum.org>
2323
2324         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2325         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2326         
2327 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2328
2329         * NEWS: Update to 0.34
2330
2331 2005-06-15  David Zeuthen  <davidz@redhat.com>
2332
2333         * configure.in (LT_CURRENT): Revert back to 1 as the library
2334         hasn't changed and we've certainly not committed to protocol
2335         stability yet.  All this does is to break ABI. See commit note
2336         from hp@redhat.com 2005-05-05 for details.
2337         
2338 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2339
2340         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2341         (_dbus_connection_run_builtin_filters): New method
2342         (dbus_connection_dispatch): Run the builtin filters which in turn
2343         runs the peer filter which handles Ping messages.
2344
2345         * doc/TODO: 
2346          - Ping isn't handled: This patch fixes it
2347          
2348          - Add a test case for the Ping message: added TODO item
2349
2350 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2351
2352         * dbus/dbus-message.c:
2353         (dbus_message_has_path): New method
2354         (dbus_message_has_interface): New method
2355         (dbus_message_has_member): New method
2356
2357         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2358         New method
2359
2360         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2361         the keyring directory is private to the user
2362
2363         * doc/TODO:
2364          - The convenience functions in dbus-bus.h should perhaps have
2365          the signatures that they would have if they were autogenerated
2366          stubs. e.g. the acquire service function. We should also evaluate
2367          which of these functions to include, in light of the fact that
2368          GLib/Qt native stubs will probably also exist.: Punted
2369
2370          - add dbus_message_has_path(), maybe has_member/interface:
2371          fixed in this patch
2372
2373          - in dbus-keyring.c, enforce that the keyring dir is not
2374          world readable/writable: Fixed in this patch
2375
2376 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2377
2378         * dbus/dbus-marshal-validate.h: Added a new validation
2379         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2380         out of memory errors when validating signitures
2381
2382         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2383         in places where we previously used DBUS_VALID and a FALSE return 
2384         value to indicate OOM
2385         
2386         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2387         Use a stack to track the number of elements inside containers.  The 
2388         stack values are then used to validate that dict entries have only two
2389         elements within them.
2390         (validate_body_helper): check the reason for failure when validating
2391         varients
2392         
2393         * dbus/dbus-message.c (load_message): use 
2394         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2395         DBUS_VALID and a FALSE return value to indicate OOM
2396
2397         * doc/TODO: remove "- validate dict entry number of fields" as this
2398         patch fixes it
2399
2400 2005-06-14  David Zeuthen  <davidz@redhat.com>
2401
2402         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2403         watches (if applicable) and add new watches
2404
2405         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2406         (main): Setup SIGIO signal handler if using D_NOTIFY
2407
2408         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2409
2410         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2411         (merge_included): Also merge conf_dirs list
2412         (bus_config_parser_unref): Clear conf_dirs list
2413         (include_dir): Add directory to conf_dirs list
2414         (bus_config_parser_get_conf_dirs): New function
2415
2416         * bus/dir-watch.[ch]: New files
2417
2418         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2419
2420         * configure.in: Add checks for D_NOTIFY on Linux
2421
2422 2005-06-14  Colin Walters  <walters@verbum.org>
2423
2424         * glib/dbus-binding-tool-glib.c:
2425         * glib/dbus-gobject.c:
2426         * glib/dbus-gvalue.c: Fix indentation and brace style.
2427         
2428 2005-06-14  Ross Burton <ross@openedhand.com>.
2429
2430         * glib/dbus-glib.h: Make DBusGMethodInvocation
2431         a private structure.  Rearrange prototypes a bit.
2432         
2433         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2434         documentation for first_arg_type.
2435         
2436         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2437         here, add documentation.  Move dbus_g_method_return
2438         and dbus_g_method_return_error into public API
2439         section.
2440
2441 2005-06-14  Colin Walters  <walters@verbum.org>
2442
2443         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2444         Add missing return statements, noticed by Ross Burton.
2445         
2446 2005-06-13  Ross Burton <ross@openedhand.com>.
2447
2448         * glib/dbus-gobject.c: Handle errors on message
2449         demarshalling by sending error message back.
2450         * glib/dbus-gvalue.c: Initialize return variables.
2451
2452 2005-06-13  Colin Walters  <walters@verbum.org>
2453
2454         * glib/Makefile.am: Fix thinko in last patch.
2455
2456 2005-06-13  Colin Walters  <walters@verbum.org>
2457
2458         * glib/Makefile.am: Move dbus-gtype-specialized.c
2459         and dbus-gtype-specialized.h into a _HEADERS variable,
2460         install them.
2461
2462 2005-06-12  Colin Walters  <walters@verbum.org>
2463
2464         Async signals and various bugfixes and testing by
2465         Ross Burton <ross@openedhand.com>.
2466
2467         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2468         (dbus_gvalue_genmarshal_name_from_type)
2469         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2470         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2471         (dbus_g_value_types_init, dbus_gtype_from_signature)
2472         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2473         (dbus_gtypes_from_arg_signature): New function prototypes.
2474         (dbus_gvalue_demarshal): Take context and error arguments.
2475         (dbus_gvalue_demarshal_variant): New function.
2476         (dbus_gvalue_demarshal_message): New function.
2477         (dbus_gvalue_store): Delete.
2478
2479         * glib/dbus-gvalue.c:
2480
2481         File has been almost entirely rewritten; now we special-case
2482         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2483         hash tables correctly, etc.  Full support for recursive values
2484         is not yet complete.
2485
2486         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2487         argument of signal to G_TYPE_POINTER since we now pass a
2488         structure.
2489         (lookup_g_marshaller): Delete in favor of
2490         _dbus_gobject_lookup_marshaller.
2491         (marshal_dbus_message_to_g_marshaller): Use
2492         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2493         to handle remote signal callbacks.
2494         (dbus_g_proxy_new_from_proxy): New function; creates a new
2495         DBusGProxy by copying an existing one.
2496         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2497         (dbus_g_proxy_get_path): New functions.
2498         (dbus_g_proxy_marshal_args_to_message): New function;
2499         factored out of existing code.
2500         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2501         from a varargs array.
2502         (dbus_g_proxy_begin_call_internal): New function.
2503         (dbus_g_proxy_end_call_internal): New function.
2504         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2505         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2506         after collecting args into value array.
2507         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2508         invoke dbus_g_proxy_end_call_internal.
2509         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2510         end_call_internal.
2511         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2512         types.
2513         (array_free_all): New function.
2514         (dbus_g_proxy_add_signal): Take GTypes.
2515
2516         * glib/dbus-gobject.h:
2517         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2518         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2519         Prototype.
2520
2521         * glib/dbus-gobject.c: Add a global marshal_table hash which
2522         stores mappings from type signatures to marshallers.  Change lots
2523         of invocations of dbus_gtype_to_dbus_type to
2524         dbus_gtype_to_signature.
2525         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2526         (introspect_signals): Fix test for query.return_type.
2527         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2528         (invoke_object_method): Many changes.  Handle asynchronous
2529         invocations.  Convert arguments with
2530         dbus_gvalue_demarshal_message.  Handle errors.  Use
2531         DBusSignatureIter instead of strlen on args. Handle all arguments
2532         generically.  Special-case variants.
2533         (dbus_g_method_return, dbus_g_method_return_error): New function.
2534         (DBusGSignalClosure): New structure, closes over signal
2535         information.
2536         (dbus_g_signal_closure_new): New function.
2537         (dbus_g_signal_closure_finalize): New function.
2538         (signal_emitter_marshaller): New function; is special marshaller
2539         which emits signals on bus.
2540         (export_signals): New function; introspects object signals and
2541         connects to them.
2542         (dbus_g_object_type_install_info): Take GType instead of
2543         GObjectClass.
2544         (dbus_g_connection_register_g_object): Invoke export_signals.
2545         (dbus_g_connection_lookup_g_object): New function.
2546         (DBusGFuncSignature) New structure; used for mapping type
2547         signatures to marshallers.
2548         (funcsig_hash): New function; hashes DBusGFuncSignature.
2549         (funcsig_equal): New function; compares DBusGFuncSignature.
2550         (_dbus_gobject_lookup_marshaller): New function.
2551         (dbus_g_object_register_marshaller): New function; used to
2552         register a marshaller at runtime for a particular signature.
2553
2554         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2555
2556         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2557         which notes a server method implementation should be
2558         asynchronous.
2559
2560         * glib/dbus-binding-tool-glib.c
2561         (dbus_binding_tool_output_glib_server): Call
2562         dbus_g_value_types_init.
2563         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2564         variants specially.
2565         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2566         of a lookup function.
2567         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2568         (write_untyped_out_args): New method; write output arguments.
2569         (write_formal_declarations_for_direction): Function for
2570         writing prototypes.
2571         (write_formal_parameters_for_direction): Function for
2572         writing implementations.
2573         (write_typed_args_for_direction): Function for writing
2574         arguments prefixed with GTypes.
2575         (write_async_method_client): Write out async version
2576         of method.
2577
2578         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2579         (dbus_g_type_get_marshal_name): Move mapping from GType
2580         to marshal name into here.
2581         (dbus_g_type_get_c_name): Move into here.
2582         (compute_marshaller): Convert signature to type with
2583         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2584         (compute_marshaller_name): Ditto.
2585         (compute_marshaller): Handle async signal annotations.
2586         (gather_marshallers): Return if we don't have a known
2587         prefix.
2588         (generate_glue): Collect introspection blob here, and
2589         write all of the blob at the end.  This allows an object
2590         with multiple interfaces to work.
2591         Mark async methods in introspection blob.
2592
2593         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2594         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2595         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2596
2597         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2598         avoids people accidentally using DBUS_TYPE_* which should
2599         not be necessary anymore.
2600         Do include dbus-gtype-specialized.h, which are utilities
2601         for GLib container types.
2602         Add various #defines for types such as
2603         DBUS_TYPE_G_BOOLEAN_ARRAY.
2604         (DBusGValueIterator, DBusGValue): Define, not fully used
2605         yet.
2606         (dbus_g_value_get_g_type): Type for recursive value.
2607         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2608         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2609         (dbus_g_value_free): Prototypes.
2610         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2611         (dbus_g_proxy_set_interface): Prototype.
2612         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2613         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2614         types.
2615         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2616         Accessors.
2617         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2618         doing async invocations.
2619         (dbus_g_method_return, dbus_g_method_return_error):
2620         Prototypes.
2621         * doc/dbus-tutorial.xml: Update GLib section.
2622         
2623         * tools/dbus-viewer.c (load_child_nodes): Update
2624         for new invocation type of dbus_g_proxy_end_call.
2625         (load_from_service_thread_func): Ditto.
2626
2627         * tools/print-introspect.c (main): Ditto.
2628
2629         * tools/dbus-names-model.c (have_names_notify)
2630         (names_model_reload, names_model_set_connection)
2631         Use GTypes.
2632
2633         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2634         needed since Python bindings use GLib bindings.
2635
2636         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2637         Add --prefix argument.
2638
2639         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2640         unneeded --ignore-unsupported arg.
2641         
2642         * test/glib/test-service-glib.c: 
2643         * test/glib/test-service-glib.xml:
2644         * test/glib/test-dbus-glib.c: Add many more tests.
2645
2646 2005-06-06  David Zeuthen  <davidz@redhat.com>
2647
2648         * doc/TODO: Add item about need to remove deprecated functions.
2649
2650         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2651
2652         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2653         to repair the ABI which was broken with the last commit.
2654
2655 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2656
2657         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2658         (dbus_connection_disconnect): renamed to dbus_connection_close 
2659         for API symmetry with dbus_connection_open
2660         (_dbus_connection_open_internal): 
2661         s/dbus_connection_disconnect/dbus_connection_close
2662
2663         * dbus/dbus-bus.c (dbus_bus_get):
2664         s/dbus_connection_disconnect/dbus_connection_close
2665
2666         * bus/connection.c (bus_connections_unref, 
2667         bus_connections_setup_connection, bus_connections_expire_incomplete):
2668         s/dbus_connection_disconnect/dbus_connection_close
2669
2670         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2671         kill_client_connection_unchecked, check_hello_connection):
2672         s/dbus_connection_disconnect/dbus_connection_close
2673
2674         * bus/bus.c (new_connection_callback):
2675         s/dbus_connection_disconnect/dbus_connection_close
2676
2677         * tools/dbus-send.c (main):
2678         s/dbus_connection_disconnect/dbus_connection_close
2679
2680         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2681         s/dbus_connection_disconnect/dbus_connection_close
2682         
2683         * test/test-service.c (path_message_func, filter_func):
2684         s/dbus_connection_disconnect/dbus_connection_close
2685         
2686         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2687         
2688 2005-05-25  Colin Walters  <walters@verbum.org>
2689
2690         * dbus/dbus-protocol.h: Move various bus service #defines such
2691           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2692           dbus/dbus-shared.h.
2693         * dbus/dbus-shared.h: Various defines moved here.
2694         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2695
2696 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
2697
2698         * python/__init__.py: Python bindings deserve a minor version
2699         update.  Upped to (0, 40, 2)
2700
2701 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
2702
2703         * python/decorators.py: add explicitly_pass_message decorator
2704         for passing in the dbus message as keyword for edge case signal
2705         handling
2706
2707         * python/matchrules.py (SignalMatchRule.__repr__): fix output
2708         to conform with what dbus expects for match rules
2709         (SignalMatchRule.execute): add the dbus message as a keyword
2710         if the signal handler has requested it
2711
2712         * python/examples/example/signal-recipient.py: added some more
2713         examples on how to hook up to signals
2714
2715 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
2716
2717         * python/decorators.py: import dbus_bindings
2718
2719         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
2720         SignalMatchNode): new classes that implement wildcard signal
2721         callback matching using a tree lookup. Heavily modified from a
2722         patch sent by Celso Pinto (fd.o bug #3241)
2723
2724         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2725         use new match classes to handle signals.
2726
2727 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
2728         
2729         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2730
2731 2005-05-18  Havoc Pennington  <hp@redhat.com>
2732
2733         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2734         gettext. Not really worth requiring yet perhaps, but any
2735         production quality 1.0 would require it so we should go ahead and
2736         get things set up. We do have a couple token calls to
2737         bindtextdomain in the code already.
2738
2739 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
2740
2741         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2742         when using recursive g_main_loops
2743
2744         * python/_dbus.py (class Bus): add the ProxyObjectClass
2745         alias for ProxyObject to make it easier for the Twisted 
2746         networking framework to integrate dbus.
2747
2748         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2749         alias for ProxyMethod to make it easier for the Twisted 
2750         networking framework to integrate dbus. 
2751
2752 2005-05-11  Ross Burton  <ross@openedhand.com>
2753
2754         * glib/dbus-glib-tool.c: Add --prefix argument.
2755         * glib/dbus-binding-tool-glib.h: Add prefix argument.
2756         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2757         Add prefix argument.
2758         (generate_glue): Pass prefix argument down.
2759         (dbus_binding_tool_output_glib_server): Pass prefix to
2760         glib-genmarshal.
2761         
2762 2005-05-11  Colin Walters  <walters@verbum.org>
2763
2764         * tools/dbus-send.c (append_array): New function.
2765         (append_arg): Broken out from main.
2766         (main): Add cheesy hack to send arrays and variants.
2767         (usage): Update.
2768         * tools/dbus-print-message.c (print_iter): Broken out
2769         from main.
2770
2771 2005-05-11  Colin Walters  <walters@verbum.org>
2772
2773         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2774         New function, returns signature string for signature iter.
2775         * dbus/dbus-signature.h: Prototype it.
2776         * dbus/dbus-message.c (dbus_message_iter_get_signature):
2777         New function, returns signature string for message iter.
2778         (dbus_message_iter_get_array_len): New function, returns
2779         length of array.
2780         (dbus_message_iter_get_fixed_array): Fix assertion; this
2781         function should be used when the iter is pointing to the
2782         contents of an array
2783         * dbus/dbus-message.h: Prototypes.
2784         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2785         New function; returns length of an array.
2786         * dbus/dbus-marshal-recursive.h: Prototype it.
2787         
2788 2005-05-11  Colin Walters  <walters@verbum.org>
2789
2790         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2791         compilation error.
2792         
2793 2005-05-08  Havoc Pennington  <hp@redhat.com>
2794
2795         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2796         daemon's pid, not the parent's pid, to the file descriptor.
2797         Reported by Taj Morton.
2798
2799 2005-05-05  Havoc Pennington  <hp@redhat.com>
2800
2801         * configure.in (LT_*): add notes on how the libtool versioning
2802         works to save thinking. Increment soname to indicate protocol
2803         breakage (though really the library interface hasn't changed I
2804         guess)
2805
2806         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2807         verify the GUID received from server matches what we were
2808         expecting, if we had an expectation
2809
2810         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2811         (_dbus_auth_get_guid_from_server): new function
2812         (send_begin): parse the OK args
2813
2814         * doc/dbus-specification.xml: add GUID to the auth protocol
2815
2816 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
2817
2818         * Fix my name in previous changelog ;)
2819
2820         * python/proxies.py (ProxyObject.__getattr__): add further patch
2821         from Anthony Baxter to throw an AttributeError when python 
2822         __special__ functions are called instead of marshling them over 
2823         the bus (Bug#1685 comment 3).
2824
2825 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
2826
2827         * python/Makefile.am: changed to use pyexecdir for the binding
2828         shared libraries (Bug#2494)
2829
2830         * python/exceptions.py: bring exceptions over from the bindings
2831         so they can be used in applications (Bug#2036)
2832         Make all exceptions derive from DBusException
2833
2834         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2835         of classes so that print obj doesn't throw an exception (Bug #1685)
2836
2837 2005-05-03  Ross Burton  <ross@openedhand.com>
2838
2839         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2840         Return if we get an error during registration.  Set up a
2841         weak reference on object to unregister if object is destroyed.
2842         (unregister_gobject): New function.
2843         
2844 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
2845
2846         * python/dbus_bindings.pyx.in: 
2847         - added new type classes for hinting to the marashaler what type 
2848         to send over the wire
2849         - added int16 and uint16 marshalers
2850         - Fixed a bug in the type constants that caused int32 to go out
2851         as uint16 over the wire
2852         * python/dbus.py: split up into different files and renamed _dbus.py
2853         * python/__init__.py, python/_util.py, python/decorators.py, 
2854         python/exceptions.py, python/proxies.py, python/services.py,
2855         python/types.py: new files split off from dbus.py
2856         * python/Makefile.am: Add new files, remove dbus.py and 
2857         install all python files to <python module dir>/dbus
2858         * python/examples/*: Added #!/usr/bin/env python to the top of
2859         every example.  Patch provided by Tatavarty Kalyan
2860
2861 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2862
2863         * NEWS: Update to 0.33
2864
2865 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2866
2867         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2868         method for doing async calls
2869         (_pending_call_notification): New C function for handling pendning call
2870         callbacks
2871         (set_notify): New method for setting pending call notification
2872         
2873         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2874         Async capabilities added to remote method calls
2875         (Sender): class removed
2876         (RemoteService): class removed
2877         (ObjectTree): class removed for now
2878         (RemoteObject): Renamed to ProxyObject
2879         (RemoteMethod): Renamed to ProxyMethod
2880         (method): Decorator added for decorating python methods as dbus methods
2881         (signal): Decorator added for decorating python methods as signal emitters
2882         (ObjectType): Metaclass added for generating introspection data and the
2883         method callback vtable
2884         (Interface): Wrapper class added to wrap objects in a dbus interface
2885         (Object): Uses ObjectType as its metaclass and exports Introspect
2886         of the org.freedesktop.DBus.Introspectable interface
2887         (ValidationException, UnknownMethodException): new exceptions
2888
2889         * python/examples/*: Modified to fit with the new bindings
2890
2891 2005-04-23  Havoc Pennington  <hp@redhat.com>
2892
2893         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2894         reported by Tony Houghton
2895
2896         * test/test-service.c (main): test
2897         dbus_connection_get_object_path_data()
2898
2899         * dbus/dbus-object-tree.c (find_handler): be sure we always init
2900         the exact_match
2901         (_dbus_object_tree_get_user_data_unlocked): new function used by
2902         dbus_connection_get_object_path_data()
2903         (do_register): add assertion test for get_user_data_unlocked
2904         (object_tree_test_iteration): more tests
2905
2906         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2907         new function from Dan Reed to let you get the user data from 
2908         dbus_connection_register_object_path()
2909
2910 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
2911
2912         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2913         in numerous places that did not account for the NULL terminator
2914         (signature_from_seed): changed the manual string copy loop to 
2915         just use strcpy instead
2916         make check should now pass
2917
2918 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
2919
2920         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2921         so that it allows messages that are not signals to pass in 
2922         NULL as the interface.
2923
2924 2005-04-18  David Zeuthen  <davidz@redhat.com>
2925
2926         * glib/dbus-gmain.c (io_handler_destroy_source): 
2927         (timeout_handler_destroy_source, connection_setup_free): 
2928         Also unref the source to avoid memory leaks.
2929
2930 2005-04-13  David Zeuthen  <davidz@redhat.com>
2931
2932         * bus/config-parser.c (bus_config_parser_new): Bump this to a
2933         more reasonable, yet still totally arbitrary, value :-). 
2934
2935 2005-04-13  David Zeuthen  <davidz@redhat.com>
2936
2937         * doc/TODO: Added an "important for 1.0" item about selinux
2938         allow/deny messages
2939
2940 2005-04-13  David Zeuthen  <davidz@redhat.com>
2941
2942         * bus/selinux.c: Add c-file-style to top of file
2943         (log_audit_callback): Don't free the data here anymore
2944         (bus_selinux_check): Don't take spid and tpid since appending
2945         that to auxdata may OOM.
2946         (bus_selinux_allows_acquire_service): Handle OOM and signal back
2947         to the caller if we are OOM by taking an error object.
2948         (bus_selinux_allows_send): -do-
2949
2950         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
2951         and bus_selinux_allows_send
2952
2953         * bus/bus.c (bus_context_check_security_policy): Pass error and
2954         pass on OOM thrown by bus_selinux_allows_send()
2955
2956         * bus/services.c (bus_registry_acquire_service): Pass error and
2957         pass on OOM thrown by bus_selinux_allows_acquire_service()
2958
2959 2005-04-13  Havoc Pennington  <hp@redhat.com>
2960
2961         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
2962         message at a time to avoid monopolizing the main loop, bug 
2963         #2953 from Benjamin Otte
2964
2965 2005-04-09  Havoc Pennington  <hp@redhat.com>
2966
2967         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
2968         possible overlap, fix from Daniel Reed
2969         (fixup_alignment): fix signedness warnings
2970         (_dbus_string_append_unichar): ditto
2971
2972 2005-04-09  Havoc Pennington  <hp@redhat.com>
2973
2974         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
2975
2976         * glib/dbus-glib-tool.c (main): fix warning
2977
2978         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
2979
2980         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
2981         add a new function that can be used in simple applications that
2982         don't have a main loop and are willing to block
2983
2984 2005-04-05  David Zeuthen  <davidz@redhat.com>
2985
2986         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
2987
2988         * glib/dbus-gmain.c:
2989         (io_handler_destroy_source): Remove from list of IO handlers
2990         of the ConnectionSetup object
2991         (timeout_handler_destroy_source): -do- for timeout handlers
2992         (io_handler_source_finalized): Don't remove from list since
2993         we now do that in io_handler_destroy_source(). Renamed from
2994         io_handler_source_destroyed
2995         (timeout_handler_source_destroyed): -do- for timeout handlers
2996         (connection_setup_free): It is now safe to iterate over all
2997         IO and timeout handlers as the _destroy_source removes them
2998         from the list synchronously
2999
3000 2005-03-30  Havoc Pennington  <hp@redhat.com>
3001
3002         * configure.in: change check to gtk 2.4
3003
3004         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3005         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3006         to 2.4
3007
3008 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3009
3010         * News: Update 0.32
3011
3012         * HACKING: Fixed realease instructions.  configure.in should be updated to
3013           the next release by the person who made the last release.
3014
3015 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3016
3017         * python/lvalue_cast_post_process.py - removed.  Patch has been
3018           submitted to Pyrex maintainers that fixes gcc4.0 errors
3019
3020         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3021
3022 2005-03-24  Daniel Reed  <n@ml.org>
3023
3024         * tools/Makefile.am: Make print-introspect and
3025         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3026
3027 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3028
3029         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3030
3031         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3032           had in Red Hat packages for a while but for some reason never 
3033           got merged upstream
3034           (_dbus_is_a_number): New checks if a string
3035           can be converted to a number and does the conversion if it can
3036           (_dbus_user_database_lookup): Add check to see if the given username
3037           is a udi.  This allows udi's to be used instead of usernames in the
3038           config file.
3039           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3040           is a gdi.  This allows gdi's to be used instead of groupnames in the
3041           config file.
3042
3043 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3044
3045         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3046           code so that it compiles with gcc4.0
3047
3048         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3049           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3050           results back to dbus_binding.c
3051
3052 2005-03-20  Colin Walters  <walters@verbum.org>
3053
3054         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3055
3056         * configure.in: Require GTK+ 2.6.
3057         
3058 2005-03-20  Colin Walters  <walters@verbum.org>
3059
3060         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3061
3062 2005-03-17  Tom Parker  <palfrey@tevp.net>
3063
3064         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3065         print DBUS_UID_UNSET; instead print passed username.  Also
3066         be sure to actually use gid looked up in cache.
3067         
3068         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3069         for DBUS_GID_UNSET and groupname.
3070
3071 2005-03-17  Colin Walters  <walters@verbum.org>
3072
3073         * bus/print-introspect.c: Move to tools/.
3074         * bus/run-with-tmp-session-bus.sh: Ditto.
3075         
3076         * glib/Makefile.am (dbus-glib-bindings.h): Move
3077         generation to tools/Makefile.am.
3078
3079         * test/glib/run-test.sh: Update to handle move
3080         of run-with-tmp-session-bus.sh.
3081
3082         * test/glib/test-service-glib.c: Update to handle
3083         move of dbus-glib-bindings.h.
3084
3085         * tools/print-introspect.c: Moved here
3086         from bus/, and ported to GLib bindings.
3087
3088         * tools/run-with-tmp-session-bus.sh: Moved here
3089         from bus/.
3090
3091         * tools/Makefile.am: Generate dbus-glib-bindings.h
3092         and dbus-bus-introspect.xml here.
3093
3094         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3095         Update.
3096
3097 2005-03-17  Colin Walters  <walters@verbum.org>
3098
3099         * bus/driver.c (write_args_for_direction): Use
3100         _dbus_string_get_const_data to retrieve string;
3101         _dbus_string_get_const_data_len doesn't actually return
3102         a NULL-terminated substring.
3103
3104         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3105         (main): Change to use org_freedesktop_DBus_request_name
3106         instead of using g_proxy_begin_call/end_call.
3107
3108 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3109
3110         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3111         generating the finalizer.  Fixes from Ben Maurer.
3112
3113 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3114
3115         * mono/BusDriver.cs: Update method names: ListServices
3116         becomes ListNames; GetOwner becomes GetNameOwner.
3117
3118         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3119         onto the eval stack when removing the delegate.
3120
3121 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3122
3123         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3124         LT_CURRENT.  Set it to the autoconf variable.
3125                                                                                 
3126         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3127         classes that disconnects the signal handler delegate from the
3128         service object.  Fixes a big leak of proxy objects on the
3129         client side of things.  Patch from Ben Maurer
3130         <bmaurer@ximian.com>
3131
3132 2005-03-12  Colin Walters  <walters@verbum.org>
3133
3134         * bus/driver.c (write_args_for_direction): New function,
3135         parses a type signature into arguments and outputs to
3136         XML.
3137         (bus_driver_handle_introspect): Use it instead of
3138         hardcoding XML for certain signatures.
3139         
3140         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3141         dependency on dbus-daemon.
3142
3143         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3144         argument, pass it to dbus_binding_tool_output_glib_client.
3145
3146         * glib/dbus-binding-tool-glib.c
3147         (generate_client_glue): Protect against multiple inclusion.
3148         (dbus_binding_tool_output_glib_client): Add
3149         G_BEGIN_DECLS/G_END_DECLS.
3150
3151         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3152         Change to just take iface prefix directly.
3153         (write_formal_parameters): Clarify error message.
3154         (check_supported_parameters): New function; checks to see type
3155         signatures of method parameters are supported.
3156         (generate_client_glue): Handle ignore_unsupported flag.
3157         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3158         parameter.
3159
3160         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3161         --ignore-unsupported by default until glib bindings
3162         support arrays.
3163
3164 2005-03-11  Colin Walters  <walters@verbum.org>
3165
3166         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3167         install it.
3168
3169         * bus/print-introspect.c: New file; prints introspection
3170         data for a given name and object path.
3171
3172         * bus/run-with-tmp-session-bus.sh: New file, refactored
3173         from test/glib/run-test.sh.  Creates a temporary session
3174         bus and runs another program.
3175
3176         * test/glib/run-test.sh: Refactor to invoke
3177         run-with-tmp-session-bus.sh.
3178
3179         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3180         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3181         macros instead of hardcoding.
3182
3183         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3184
3185 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3186
3187         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3188         this unref; it doesn't match up evenly in some codepaths.
3189         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3190         this evenly matches with the ref near the top of this function.
3191
3192 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3193
3194         * dbus/dbus-object-tree.c
3195         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3196         and we try to unregister a path that's not registered, still go
3197         through the process of unlocking and don't just return.
3198
3199 2005-03-09  Colin Walters  <walters@verbum.org>
3200
3201         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3202         to this are generated for client-side wrappers.  Invokes a
3203         D-BUS method and returns reply values.  
3204
3205         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3206         function; writes signature string for argument direction.
3207         (write_args_for_direction): Change to pass input values directly
3208         instead of via address, and fix indentation.
3209         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3210         make generated wrappers inlineable.
3211
3212         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3213         note about using dbus_type_is_fixed.
3214
3215         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3216         dbus/dbus-signature.c as dbus_type_is_fixed.
3217
3218         All callers updated.
3219
3220         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3221         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3222
3223         * dbus/dbus-signature.h: Prototype.
3224
3225         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3226         error printf code.
3227
3228         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3229         appropriate instead of just freeing it.
3230         (main): Free returned strings using g_free.
3231
3232         * test/glib/Makefile.am (test-service-glib-glue.h)
3233         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3234
3235         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3236         simply maps a simple D-BUS type to GType.
3237         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3238         GType.
3239         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3240         initialize the value with it.
3241         (dbus_gvalue_binding_type_from_type): Unused, delete.
3242         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3243         various types instead of unmarshalling to value data directly.
3244         Remove can_convert boolean.
3245         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3246         returning directly instead of using can_convert boolean.
3247         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3248         Stores a GValue in a pointer to a value of its corresponding C
3249         type.
3250
3251         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3252         add dbus_gvalue_store.
3253
3254 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3255
3256         Fix a bunch of lifecycle and memory management problems
3257         in the mono bindings.
3258
3259         * mono/Arguments.cs (Arguments): Implement IDisposable
3260
3261         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3262         strictly a static class.
3263
3264         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3265         delegates into this file.
3266         (Connection): Implement IDisposable.
3267         (Dispose): Disconnect the connection and set the raw connection
3268         pointer to IntPtr.Zero.
3269         (~Connection): Call Dispose().
3270         (RegisterObjectPath): Added.  Manages the registration of object
3271         paths so we can cleanly disconnect them at dispose/finalize time.
3272         (UnregisterObjectPath): Ditto.
3273         (set_RawConnection): Unregister all of the object paths when
3274         changing the underlying DBusConnection.  Add them back onto the
3275         new connection, if any.
3276
3277         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3278         more unmanaged resources anymore, so it's not necessary.  Move all
3279         the DBusObjectPathVTable stuff out of here.
3280         (Handler): Save references to our delegates so that they don't get
3281         finalized.  Call Connection.RegisterObjectPath() instead of
3282         dbus_connection_register_object_path() directly.
3283         (Message_Called): Dispose the message after we're finished with
3284         it.
3285
3286         * mono/Message.cs (Message): Implement IDisposable.
3287         (Dispose): Dispose the Arguments, and set the RawMessage to
3288         IntPtr.Zero.
3289         (SendWithReplyAndBlock): We own the ref to the reply that comes
3290         back from dbus_connection_send_with_reply_and_block() so add a
3291         comment about that and unref it after we've constructed a managed
3292         MethodReturn class around it.  Fixes a big, big leak.
3293
3294         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3295         method.
3296         (BuildSignalHandler): After we've sent the Signal message, dispose
3297         of it.
3298         (BuildMethod): Dispose of the method call and reply messages after
3299         we've sent the message and extracted the data we want from the
3300         reply.
3301
3302         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3303         anymore.
3304         (Service_FilterCalled): Dispose of the message after we're
3305         finished with it.
3306
3307 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3308
3309         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3310         After we attach our pending call to the connection, unref
3311         it.  Fixes a leak.
3312  
3313         * mono/Connection.cs (set_RawConnection): Disconnect our
3314         filter and match callbacks from the old connection and
3315         reconnect them to the new connection, if any.
3316
3317         * mono/DBusType/Array.cs: "Code" is a static member, so
3318         don't use "this" to refer to it.  Fix for stricter checking
3319         in Mono 1.1.4.
3320  
3321         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3322         object path that we pass into unmanaged code.
3323  
3324         * mono/DBusType/String.cs (Append): Don't leak the string
3325         that we pass into unmanged code.
3326
3327 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3328         * NEWS: Update for 0.31
3329
3330         * configure.in: Release 0.31
3331         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3332
3333         * qt/Makefile.am: fixed build
3334
3335         * dbus/Makefile.am: soname bump for libdbus
3336
3337         * glib/Makefile.am: soname bump for libdbus-glib
3338
3339 2005-03-05  Havoc Pennington  <hp@redhat.com>
3340
3341         * dbus/dbus-sysdeps.c:
3342         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3343         value
3344         (_dbus_generate_random_bytes_buffer): fix return value
3345
3346         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3347         checks actually work, from Tom Parker <fdo@tevp.net>
3348
3349 2005-03-01  Colin Walters  <walters@verbum.org>
3350
3351         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3352         functions copied from dbus-glib-tool.c.
3353         (main): Convert lots of error code to use them.
3354         Also add some testing for introspection bits.
3355
3356 2005-03-01  Colin Walters  <walters@verbum.org>
3357         
3358         * doc/TODO: Remove introspection signature TODO.
3359
3360 2005-02-27  Colin Walters  <walters@verbum.org>
3361
3362         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3363         Change return value to const char * instead of int so we can do
3364         full signatures.
3365         (struct PropertyInfo, struct ArgInfo): Store char *.
3366         (property_info_new, arg_info_new): Update parameters, strdup.
3367         (property_info_unref, arg_info_unref): Free.
3368
3369         * glib/dbus-gidl.h: Update prototypes.
3370
3371         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3372         (validate_signature): New function, just validates signature and
3373         sets GError.
3374         (parse_property, parse_arg): Invoke validate_signature.  Store
3375         signature instead of just type code.
3376
3377         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3378         function to return a primary type for a signature, dropping
3379         information about types in container types.
3380         (dbus_gvalue_genmarshal_name_from_type)
3381         (dbus_gvalue_binding_type_from_type)
3382         (dbus_gvalue_ctype_from_type): Update to take full signature
3383          instead of type code.
3384         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3385
3386         * glib/dbus-gvalue.h: Update prototypes for above.
3387
3388         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3389         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3390         (introspect_properties, introspect_signals, write_interface):
3391         Update to handle signatures, and remove usage of
3392         _dbus_gutils_type_to_string.
3393         (handle_introspect): Print out type codes instead of e.g. "string"
3394         in hardcoded introspection XML; also use x_AS_STRING constants
3395         instead of hardcoding in string.
3396
3397         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3398         to string.  Remove usage of _dbus_gutils_type_to_string.
3399
3400         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3401
3402         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3403         deletion.
3404         
3405         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3406         (compute_marshaller_name, generate_glue): Handle signature change
3407         to string.
3408         (write_formal_parameters, write_args_for_direction): Ditto, and
3409         remove FIXME.
3410
3411         * tools/dbus-tree-view.c (type_to_string): Delete.
3412         (info_set_func_text): Update to print full signatures.
3413
3414         * test/glib/test-service-glib.xml: Change types to new
3415         introspection format.
3416
3417 2005-02-26  Havoc Pennington  <hp@redhat.com>
3418
3419         * doc/TODO: remove the "guid" item
3420
3421         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3422         (with_bus_thread_func): use open_private
3423
3424         * dbus/dbus-connection.c (dbus_connection_open_private): new
3425         function that works like the old dbus_connection_open()
3426         (dbus_connection_open): now returns an existing connection if
3427         possible
3428
3429         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3430         through the GUID to the transport
3431
3432         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3433         GUID in hex-encoded form.
3434
3435         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3436         pass GUID argument in to the transport
3437
3438         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3439         guid argument
3440
3441         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3442
3443         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3444
3445 2005-02-25  Havoc Pennington  <hp@redhat.com>
3446
3447         * doc/dbus-specification.xml: document the GUID thing
3448
3449         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3450         globally unique ID for the server, and put a "guid=hexencoded"
3451         field in the address
3452
3453         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3454
3455         * dbus/dbus-message.c: ditto
3456
3457         * dbus/dbus-dataslot.c: ditto
3458
3459         * dbus/dbus-list.c: ditto
3460
3461         * dbus/dbus-internals.h: wait, just include
3462         dbus-threads-internal.h here
3463         
3464         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3465         use in main library
3466
3467         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3468
3469 2005-02-24  Colin Walters  <walters@verbum.org>
3470
3471         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3472
3473 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3474
3475         * glib/Makefile.am: added dbus-gobject.h to sources list
3476         so distcheck doesn't fail
3477         
3478 2005-02-24  Havoc Pennington  <hp@redhat.com>
3479
3480         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3481         you must disconnect before unref, since locking and other things
3482         are screwed up otherwise. Fix assorted other locking stuff.
3483
3484         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3485         fix compilation
3486
3487         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3488         into a private header and don't export from the library
3489
3490         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3491
3492 2005-02-24  Colin Walters  <walters@verbum.org>
3493         
3494         * dbus/dbus-signature.c: New file; implements various functions
3495         related to type signatures.  Includes an interator for parsing,
3496         validation functions.
3497         (dbus_type_is_basic): Moved here from
3498         dbus-marshal-basic.c:_dbus_type_is_basic.
3499         (dbus_type_is_container): Moved here from
3500         dbus-marshal-basic.c:_dbus_type_is_container.
3501
3502         All callers of _dbus_type_is_container and _dbus_type_is_basic
3503         updated, and include dbus-signature.h.
3504
3505         * dbus/dbus-signature.h: New file; prototypes for the above.
3506
3507         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3508         dbus-signature.h.
3509
3510         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3511         function factored out of _dbus_first_type_in_signature.
3512         (_dbus_first_type_in_signature_c_str): New function; returns first
3513         type code for a type signature character.
3514
3515         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3516         handle function moves.
3517
3518         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3519
3520         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3521         function; skips to next complete type in type signature.
3522         Implemented using previous skip_one_complete_type.  Now
3523         skip_one_complete_type just delegates to
3524         _dbus_type_signature_next.
3525
3526         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3527         to dbus-signature.c
3528         (_dbus_type_is_container): Ditto.
3529
3530         * doc/dbus-specification.xml: Update introspection sample to
3531         use real type signatures.
3532
3533         * dbus/dbus-test.h: Prototype signature test.
3534
3535         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3536         signature tests.
3537
3538         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3539
3540 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3541
3542         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3543         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3544
3545 2005-02-21  Colin Walters  <walters@verbum.org>
3546
3547         * dbus/dbus-test-main.c (main): Take optional specific test
3548         argument.
3549
3550         * dbus/dbus-test.c (run_test): New function, runs a test function
3551         with no data directory.
3552         (run_data_test): Like above, but takes data directory.
3553         (dbus_internal_do_not_use_run_tests): Take
3554         specific test argument.  Replace lots of cut n' paste code
3555         with run_test and run_data_test.
3556
3557         * dbus/dbus-test.h: Update prototype for
3558         dbus_internal_do_not_use_run_tests.
3559
3560 2005-02-20  Havoc Pennington  <hp@redhat.com>
3561
3562         Fix bugs reported by Daniel P. Berrange
3563         
3564         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3565         (protected_change_watch): new function
3566         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3567         (_dbus_server_add_watch): change to work like the
3568         dbus-connection.c equivalents; like those, probably kind of
3569         busted, but should at least mostly work for now
3570         (dbus_server_disconnect): drop the lock if we were already
3571         disconnected, patch from Daniel P. Berrange
3572
3573         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3574         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3575         same stuff
3576
3577         * doc/TODO: todo about unscrewing this mess
3578
3579 2005-02-19  Colin Walters  <walters@verbum.org>
3580
3581         * glib/dbus-binding-tool-glib.c
3582         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3583
3584         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3585         as errno.h and sys/stat.h.
3586         (lose): New function, prints error with
3587         newline and exits.
3588         (lose_gerror): Similar, but takes GError for message.
3589         (main): Add --output argument to specify output file to write to,
3590         instead of always printing to stdout.  In this mode, determine
3591         timestamps on source files to see whether any are newer than the
3592         target file.  If not, exit.  Also convert a number of error
3593         messages to use lose (since it's shorter), and switch to using
3594         g_io_channel_shutdown.
3595
3596 2005-02-19  Havoc Pennington  <hp@redhat.com>
3597
3598         * glib/dbus-gobject.c
3599         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3600
3601         * glib/dbus-glib.c: fix doxygen warnings
3602
3603         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3604         is found on an <arg>
3605
3606 2005-02-17  Colin Walters  <walters@verbum.org>
3607
3608         * glib/dbus-gobject.h: Don't export
3609         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3610         
3611         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3612         (invoke_object_method): Handle it.
3613
3614         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3615         Handle rename.
3616         
3617 2005-02-17  Colin Walters  <walters@verbum.org>
3618
3619         * bus/.cvsignore, doc/.cvsignore
3620         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3621         Update.
3622
3623 2005-02-17  Colin Walters  <walters@verbum.org>
3624         
3625         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3626         Rename to DBUS_SERVICE_DBUS.
3627         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3628         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3629         Change the value from "org.freedesktop.Local"
3630         to "org.freedesktop.DBus.Local".
3631         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3632         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3633         DBUS_INTERFACE_INTROSPECTABLE.
3634         Change the value from "org.freedesktop.Introspectable"
3635         to "org.freedesktop.DBus.Introspectable".
3636         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3637         DBUS_INTERFACE_PROPERTIES.
3638         Change the value from "org.freedesktop.Properties"
3639         to "org.freedesktop.DBus.Properties".
3640         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3641         DBUS_INTERFACE_PEER.
3642         Change the value from "org.freedesktop.Peer"
3643         to "org.freedesktop.DBus.Peer".
3644         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3645         DBUS_INTERFACE_LOCAL.
3646         Change the value from "org.freedesktop.Local"
3647         to "org.freedesktop.DBus.Local".
3648
3649         All other users of those constants have been changed.
3650
3651         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3652
3653         * glib/dbus-gobject.c (handle_introspect): Use constants.
3654
3655         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3656
3657 2005-02-17  Colin Walters  <walters@verbum.org>
3658
3659         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3660         (parse_node, parse_interface, parse_method, parse_signal)
3661         (parse_property, parse_annotation): Lose if we're currently in an
3662         annotation.
3663         (parse_annotation): New function.
3664         (parser_start_element, parser_end_element): Handle annotation.
3665         (parse_method, parse_interface): Remove support for c_name attribute,
3666         switch to annotations.
3667
3668         * glib/dbus-gidl.h (interface_info_get_binding_names)
3669         (method_info_get_binding_names)
3670         (interface_info_get_binding_name, method_info_get_binding_name)
3671         (interface_info_set_binding_name, method_info_set_binding_name):
3672         Remove.
3673         (interface_info_get_annotations, method_info_get_annotations)
3674         (interface_info_get_annotation, method_info_get_annotation)
3675         (interface_info_add_annotation, method_info_add_annotation):
3676         Prototype.
3677
3678         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3679         for "bindings".
3680         (struct MethodInfo): Ditto.
3681         Straightfoward conversion of binding methods into annotation methods
3682         as prototyped.
3683
3684         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3685
3686         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3687
3688         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3689         Use new annotation API.
3690
3691         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3692         annotation element.
3693         
3694         * doc/dbus-specification.xml: Discuss introspection annotations,
3695         include list of well-known annotations.
3696
3697         * test/glib/test-service-glib.xml: Make validate against new DTD.
3698
3699 2005-02-17  Colin Walters  <walters@verbum.org>
3700
3701         This patch is based on initial work from
3702         Paul Kuliniewicz <kuliniew@purdue.edu>.
3703
3704         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3705         initialization of GValue from dbus type to here.
3706         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3707         for the "glib-genmarshal" program from a DBus type.
3708         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3709         into the C name for it we use in the glib bindings.
3710         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3711         glib C type (not GValue).
3712         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3713
3714         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3715         from dbus-gobject.c.
3716
3717         * glib/dbus-gutils.h: Prototype it.
3718
3719         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3720         (marshal_dbus_message_to_g_marshaller): Use new shared function
3721         dbus_glib_marshal_dbus_message_to_gvalue_array.
3722
3723         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3724         Will be changed once we have annotations.
3725
3726         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3727         GStaticRWLock.  Callers updated.
3728         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
3729         (string_table_next): New function for iterating over zero-terminated
3730         string value array.
3731         (string_table_lookup): New function; retrieves specific entry in
3732         array.
3733         (get_method_data): New function; look up method data in object data chunk.
3734         (object_error_domain_prefix_from_object_info)
3735         (object_error_code_from_object_info): New functions, but not implemented yet.
3736         (method_interface_from_object_info): New function; retrieve interface name.
3737         (method_name_from_object_info): New function; retrieve method name.
3738         (method_arg_info_from_object_info): New function; retrieve argument data.
3739         (arg_iterate): New function; iterates over serialized argument data.
3740         (method_dir_signature_from_object_info): New function; returns a
3741         GString holding type signature for arguments for just one
3742         direction (input or output).
3743         (method_input_signature_from_object_info)
3744         (method_output_signature_from_object_info): New functions.
3745         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3746         converts dbus message arguments into a GValue array.  Used for both
3747         signal handling and method invocation.
3748         (struct DBusGlibWriteIterfaceData): New utility structure.
3749         (write_interface): New function; generate introspection XML for
3750         an interface.
3751         (introspect_interfaces): New function; gathers all interface->methods,
3752         generates introspection XML for them.
3753         (handle_introspect): Invoke introspect_interfaces.
3754         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3755         (lookup_object_and_method): New function; examines an incoming message
3756         and attempts to match it up (via interface, method name, and argument
3757         signature) with a known object and method.
3758         (gerror_domaincode_to_dbus_error_name): New function; converts a
3759         GError domain and code into a DBus error name.  Needs GError data
3760         added to object introspection to work well.
3761         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3762         GError.
3763         (invoke_object_method): New function to invoke an object method
3764         looked up via lookup_object_and_method.  Parses the incoming
3765         message, turns it into a GValue array, then invokes the marshaller
3766         specified in the DBusGMethodInfo.  Creates a new message with
3767         either return values or error message as appropriate.
3768         (gobject_message_function): Invoke lookup_object_and_method and
3769         invoke_object_method.
3770
3771         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3772         (enum DBusBindingOutputMode): New enum for binding output modes.
3773         (pretty_print): Print binding names.
3774         (dbus_binding_tool_error_quark): GError bits.
3775         (version): Fix typo.
3776         (main): Create GIOChannel for output.  Parse new --mode argument,
3777         possible values are "pretty-print", "glib-server", "glib-client".
3778         Use mode to invoke appropriate function.
3779         
3780         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3781
3782         * glib/dbus-glib-tool.h: New header, just includes GError bits
3783         for now.
3784
3785         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3786         maps binding style to name.
3787         (struct MethodInfo): Ditto.
3788         (get_hash_keys, get_hash_key): Utility function, returns keys for
3789         a GHashTable.
3790         (interface_info_new, method_info_new): Initialize bindings.
3791         (interface_info_unref, method_info_unref): Destroy bindings.
3792         (method_info_get_binding_names, method_info_get_binding_name)
3793         (interface_info_get_binding_names, interface_info_get_binding_name):
3794         Functions for retrieving binding names.
3795         (method_info_set_binding_name, interface_info_set_binding_name):
3796         Functions for setting binding names.
3797
3798         * glib/dbus-binding-tool-glib.h: New file, has prototypes
3799         for glib binding generation.
3800
3801         * glib/dbus-binding-tool-glib.c: New file, implements server-side
3802         and client-side glib glue generation.
3803
3804         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3805         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3806         dbus-glib-tool.h.
3807
3808         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3809         of using GClosureMarshal directly.
3810         (struct DBusGObjectInfo): Add n_infos member.
3811
3812         * test/glib/test-service-glib.xml: New file; contains introspection data
3813         for MyTestObject used in test-service-glib.c.
3814
3815         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3816         (my_object_do_nothing, my_object_increment, my_object_throw_error)
3817         (my_object_uppercase, my_object_many_args): New test methods.
3818         (main): Use dbus_g_object_class_install_info to include generated object
3819         info.
3820
3821         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3822         as well as client-side bindings.
3823
3824         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3825         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3826         using both the dbus_gproxy stuff directly as well as the generated bindings.
3827
3828 2005-02-15  Havoc Pennington  <hp@redhat.com>
3829
3830         * dbus/dbus-connection.c (dbus_connection_dispatch): always
3831         complete a pending call, don't run filters first.
3832
3833         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3834         dbus_pending_call_steal_reply
3835
3836         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3837         _dbus_connection_block_pending_call
3838         (dbus_pending_call_get_reply): change to steal_reply and return a
3839         ref
3840
3841         * dbus/dbus-connection.c
3842         (dbus_connection_send_with_reply_and_block): port to work in terms
3843         of DBusPendingCall
3844         (_dbus_connection_block_pending_call): replace block_for_reply
3845         with this
3846
3847 2005-02-14  Havoc Pennington  <hp@redhat.com>
3848
3849         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3850         properly handle looking up group information by name; fix 
3851         from j@bootlab.org
3852
3853 2005-02-13  Havoc Pennington  <hp@redhat.com>
3854
3855         * dbus/dbus-connection.c (dbus_connection_return_message) 
3856         (dbus_connection_borrow_message): hold dispatch lock while message
3857         is outstanding
3858         (_dbus_connection_block_for_reply): hold dispatch lock while we
3859         block for the reply, so nobody steals our reply
3860         (dbus_connection_pop_message): hold the dispatch lock while we
3861         pluck the message
3862
3863 2005-02-13  Havoc Pennington  <hp@redhat.com>
3864
3865         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3866         (_dbus_connection_release_dispatch)
3867         (_dbus_connection_acquire_io_path)
3868         (_dbus_connection_release_io_path): make the mutex and condvar
3869         control access to the "acquired" flag. Drop the connection lock
3870         while waiting on the condvar. Hopefully these are baby steps in
3871         roughly the right direction.
3872
3873 2005-02-13  Havoc Pennington  <hp@redhat.com>
3874
3875         * dbus/dbus-connection.c: use separate mutexes for the condition
3876         variables; this is some kind of baseline for sanity, but the
3877         condition variables still aren't used correctly afaict
3878
3879 2005-02-13  Havoc Pennington  <hp@redhat.com>
3880
3881         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3882         fix a double-unlock
3883
3884         * dbus/dbus-connection.c
3885         (_dbus_connection_detach_pending_call_unlocked): add this
3886
3887         Initial semi-correct pass through to fix thread locking; there are
3888         still some issues with the condition variable paths I'm pretty
3889         sure
3890         
3891         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3892         lock/unlock calls
3893
3894         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3895         rename to add _unlocked
3896         (struct DBusConnection): move "dispatch_acquired" and
3897         "io_path_acquired" to use only one bit each.
3898         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3899         (dbus_connection_set_watch_functions): hacky fix to reentrancy
3900         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
3901         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
3902         (_dbus_connection_remove_timeout) 
3903         (_dbus_connection_toggle_timeout): drop lock when calling out to
3904         user functions; done in a hacky/bad way.
3905         (_dbus_connection_send_and_unlock): add a missing unlock
3906         (_dbus_connection_block_for_reply): add a missing unlock
3907
3908         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3909         drop lock in a hacky probably unsafe way to call out to user
3910         function
3911
3912 2005-02-12  Havoc Pennington  <hp@redhat.com>
3913
3914         * tools/dbus-tree-view.c (info_set_func_text): display more
3915         details on args
3916
3917         * bus/driver.c (bus_driver_handle_list_services): list the bus
3918         driver
3919
3920         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3921
3922         * glib/dbus-gidl.c (signal_info_get_n_args): new function
3923         (method_info_get_n_args): new function
3924
3925 2005-02-12  Havoc Pennington  <hp@redhat.com>
3926
3927         * bus/driver.c (bus_driver_handle_introspect): add introspection
3928         for bus driver
3929
3930 2005-02-12  Havoc Pennington  <hp@redhat.com>
3931
3932         * bus/driver.c: put the signature of each bus driver method in the
3933         table of handlers and check it on incoming calls; this isn't
3934         really useful, but going to add introspect support in a minute.
3935
3936 2005-02-11  Joe Shaw  <joeshaw@novell.com>
3937
3938         * mono/Connection.cs: The unpredictability of finalizers in mono
3939         prevents us from deterministically disconnecting the filters from
3940         the Service class's finalizer, so move tracking of filters and
3941         matches here.  Add API for that.
3942
3943         * mono/Service.cs: Remove the code, add code which calls the
3944         methods now on the Connection class.
3945
3946 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
3947
3948         * python/dbus.py (class Sender): added to support dbus signals better
3949         (Bus::add_signal_receiver): added expand_args parameter which defaults
3950         to True.  When expand args is True the signal handler will pass the 
3951         message arguments as parameters to the signal handler.  If False
3952         revert to previous behavior where the signal handler must get the
3953         argument list from the message.  This is to help port applications
3954         like HAL that have a tendancy to send variable length argument lists.
3955         self._match_rule_to_receivers is now a dict of dicts.
3956         (Bus::remove_signal_receiver): pop handler off the dict intead of 
3957         removing it from a list
3958         (Bus::_signal_func): change signal handlers so that interface,
3959         signal_name, service, path and message are packed into a Sender
3960         object and that is passed to the handler.  If expand_args is True
3961         extract the args list from the message and append it to the parameter
3962         list
3963         
3964         * python/dbus_bindings.pyx.in (class Signature): added to support 
3965         signiature types
3966         (MessageIter::__init__): changed iteration limit to match D-BUS
3967         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
3968         STRUCT and VARIENT type support
3969         (MessageIter::python_value_to_dbus_sig): made recursive to support
3970         recursive types
3971         (MessageIter::append*): added Signature, dict, tuple 
3972         support
3973
3974         * python/examples/example-client.py: added examples of getting tuples
3975         and dicts
3976
3977         * python/examples/example-service.py: added examples of sending tuples
3978         and dicts
3979
3980         * python/examples/example-signal-recipient.py: Fixed to handle new
3981         signal callback format
3982
3983 2005-02-10  Havoc Pennington  <hp@redhat.com>
3984
3985         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
3986         (call dbus_g_proxy_add_signal)
3987
3988         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3989         escape the hostname
3990         (_dbus_server_new_for_domain_socket): escape the path
3991
3992         * dbus/dbus-address.c (dbus_address_escape_value): new
3993         (dbus_address_unescape_value): new
3994         (dbus_parse_address): unescape values
3995
3996         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
3997
3998         * doc/dbus-specification.xml: explain how to escape values in
3999         addresses
4000
4001 2005-02-10  Havoc Pennington  <hp@redhat.com>
4002
4003         * dbus/dbus-message-factory.c (generate_special): modify test to
4004         avoid using a non-basic dict key
4005
4006         * dbus/dbus-marshal-validate-util.c: add test for the below
4007
4008         * doc/dbus-specification.xml: require that dict keys are a basic
4009         type
4010
4011         * dbus/dbus-marshal-validate.c
4012         (_dbus_validate_signature_with_reason): require that dict key is a
4013         basic type
4014
4015 2005-02-10  Havoc Pennington  <hp@redhat.com>
4016
4017         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4018         change to be _and_unlock instead of _unlocked
4019
4020         * dbus/dbus-connection.c
4021         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4022         have no_update so we can find this bug quickly in future
4023
4024 2005-02-10  Havoc Pennington  <hp@redhat.com>
4025
4026         * dbus/dbus-message-util.c (verify_test_message): tests for string
4027         array
4028
4029         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4030         support for arrays of string/signature/path
4031
4032 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4033
4034         * dbus/dbus-connection.c
4035         (_dbus_connection_queue_received_message_link,
4036         _dbus_connection_message_sent): Add the path to
4037         the verbose output.
4038         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4039         _dbus_connection_send_preallocated_unlocked(), updated the
4040         dispatch status, and unlocks.  Fixes a bug where certain
4041         situations (like a broken pipe) could cause a Disconnect message
4042         to not be sent, tricking the bus into thinking a service was still
4043         there when the process had quit.
4044         (_dbus_connection_send_preallocated): Call
4045         _dbus_connection_send_preallocated_and_unlock().
4046         (_dbus_connection_send_and_unlock): Added.  Calls
4047         _dbus_connection_send_preallocated_and_unlock().
4048         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4049         (dbus_connection_send_with_reply): Update the dispatch status and
4050         unlock.
4051
4052         * mono/Service.cs (~Service): Added.  Removes the filter so that
4053         we don't get unmanaged code calling back into a GCed delegate.
4054         (RemoveFilter); Added.
4055
4056 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4057
4058         * dbus/dbus-message.c (dbus_message_iter_open_container):
4059         - Removed check for iterator type being an array because
4060         get_arg_type does not work with writer iterators
4061         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4062
4063 2005-02-07  Havoc Pennington  <hp@redhat.com>
4064
4065         * doc/dbus-specification.xml: some more language cleanups; add
4066         stuff about how to deal with invalid protocol and extension
4067         points; add _ to allowed chars in auth commands; add EXTENSION_
4068         auth command prefix
4069
4070 2005-02-06  Havoc Pennington  <hp@redhat.com>
4071
4072         * s/expected/required/ in a couple places for clarity
4073
4074 2005-02-07  Colin Walters  <walters@verbum.org>
4075
4076         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4077         sender or proposed_recipient.
4078
4079 2005-02-06  Havoc Pennington  <hp@redhat.com>
4080
4081         * dbus/dbus-message-factory.c (generate_special): more tests
4082
4083         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4084         array length that exceeds the maximum
4085
4086 2005-02-05  Havoc Pennington  <hp@redhat.com>
4087
4088         * dbus/dbus-message-factory.c (generate_special): more test cases,
4089         increasing coverage
4090
4091         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4092         reason why a signature was invalid
4093
4094         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4095         skip the length of the string before we look at it in validation
4096
4097         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4098         equal_substring
4099
4100         * dbus/dbus-message.c (_dbus_message_loader_new): default
4101         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4102
4103 2005-02-05  Havoc Pennington  <hp@redhat.com>
4104
4105         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4106         if the signature of a variant was empty
4107         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4108         struct with no element type)
4109
4110         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4111         mangled messages to break things
4112
4113 2005-02-04  Havoc Pennington  <hp@redhat.com>
4114
4115         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4116         g_quark_try_string() so it actually can return 0
4117         (dbus_g_proxy_connect_signal): ditto
4118
4119 2005-02-04  Havoc Pennington  <hp@redhat.com>
4120
4121         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4122         bogus warning
4123         (tristring_from_message): assert cleanly on null path/interface
4124         (should not be possible though I decided later)
4125         (dbus_g_proxy_dispose): move proxy manager unregistration here
4126         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4127         g_return_if_fail() checks
4128
4129 2005-02-04  Havoc Pennington  <hp@redhat.com>
4130
4131         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4132
4133         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4134         (with some minor changes)
4135
4136         * doc/dbus-specification.xml: add deprecated attribute to
4137         introspection format
4138
4139 2005-01-31  Havoc Pennington  <hp@redhat.com>
4140
4141         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4142         think it's sort of right
4143
4144 2005-01-30  Havoc Pennington  <hp@redhat.com>
4145
4146         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4147
4148 2005-01-30  Havoc Pennington  <hp@redhat.com>
4149
4150         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4151
4152         * autogen.sh: change to autotools 1.9
4153
4154         * glib/dbus-gproxy.c: completely change how signals work
4155         (dbus_g_proxy_add_signal): new function to specify signature of a
4156         signal
4157         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4158         and g_warning if the incoming message has the wrong signature.
4159
4160 2005-01-30  Havoc Pennington  <hp@redhat.com>
4161
4162         * tools/dbus-names-model.c (have_names_notify): fix this
4163
4164         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4165         up the string array handling a bit 
4166
4167 2005-01-30  Havoc Pennington  <hp@redhat.com>
4168
4169         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4170         (dbus_g_pending_call_cancel): new function
4171
4172         * dbus/dbus-glib.h: move GType decls for connection/message here;
4173         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4174         here, just kind of rationalizing how we handle all that
4175
4176         * tools/dbus-names-model.c: new file for a tree model listing the
4177         services on a bus
4178
4179         * tools/dbus-tree-view.c (model_new): use proper typing on the
4180         model rows
4181
4182 2005-01-30  Havoc Pennington  <hp@redhat.com>
4183
4184         * glib/dbus-gmain.c: add a custom GSource back that just checks
4185         whether the message queue has anything in it; otherwise, there are 
4186         cases where we won't see messages in the queue since there was no 
4187         IO visible to the glib main loop
4188
4189         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4190         increase default message timeout to 25 seconds
4191
4192 2005-01-30  Havoc Pennington  <hp@redhat.com>
4193
4194         * test/glib/test-profile.c (no_bus_stop_server): remove the
4195         warning about the g_warning that I just fixed
4196
4197         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4198         custom source, seems to be a lot easier to understand and work
4199         better.
4200
4201 2005-01-30  Havoc Pennington  <hp@redhat.com>
4202
4203         I think this main loop thing is conceptually broken, but here are 
4204         some band aids. I'll maybe rewrite it in a minute.
4205         
4206         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4207         custom GSource, so don't pass it in; confusing
4208         (gsource_server_finalize, gsource_connection_finalize): add
4209         finalize handlers that remove all the watches.  
4210
4211 2005-01-30  Havoc Pennington  <hp@redhat.com>
4212
4213         * glib/dbus-gobject.c (introspect_properties): fix the XML
4214         generated
4215
4216         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4217         which effectively detects the use of freed messages
4218
4219         * glib/dbus-gobject.c (handle_introspect): modify and return the
4220         reply message instead of the incoming message
4221
4222         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4223         gee, maybe it should SEND THE XML instead of just making a string
4224         and freeing it again ;-)
4225
4226         * tools/dbus-print-message.c (print_message): improve printing of
4227         messages
4228
4229         * configure.in: add debug-glib.service to the output
4230
4231 2005-01-30  Havoc Pennington  <hp@redhat.com>
4232
4233         dbus-viewer introspected and displayed the bus driver
4234         
4235         * dbus/dbus-object-tree.c 
4236         (object_tree_test_iteration): add tests for a handler registered on "/"
4237
4238         * dbus/dbus-object-tree.c
4239         (_dbus_decompose_path): fix to handle path "/" properly
4240         (run_decompose_tests): add tests for path decomposition
4241         
4242         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4243         properly
4244
4245         * glib/dbus-gobject.c (handle_introspect): fix quotes
4246
4247         * test/glib/run-test.sh: support launching the bus, then running
4248         dbus-viewer
4249
4250         * test/glib/test-service-glib.c (main): put in a trivial gobject
4251         subclass and register it on the connection
4252
4253         * bus/driver.c (bus_driver_handle_introspect): implement
4254         introspection of the bus driver service
4255
4256         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4257         identifiers, doctype decl
4258
4259         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4260         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4261         returning the service unchanged.
4262         (bus_driver_handle_message): remove old check for reply_serial in
4263         method calls, now the message type deals with that
4264         (bus_driver_handle_message): handle NULL interface
4265
4266         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4267
4268         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4269         -1 for len
4270
4271         * tools/dbus-viewer.c: add support for introspecting a service on
4272         a bus
4273
4274         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4275         (dbus_g_pending_call_unref): add
4276
4277 2005-01-29  Havoc Pennington  <hp@redhat.com>
4278
4279         * tools/dbus-tree-view.c: add support for displaying properties.
4280         (run dbus-viewer with an introspect xml file as arg, then resize
4281         the window so the tree elements show up, not sure what that is)
4282
4283         * glib/dbus-gobject.c (handle_introspect): return
4284         org.freedesktop.Properties and org.freedesktop.Introspectable
4285         interfaces when we are introspected.
4286
4287         * doc/dbus-specification.xml: allow empty interface name when 
4288         Get/Set a property
4289
4290 2005-01-29  Havoc Pennington  <hp@redhat.com>
4291
4292         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4293         though it uses glib, it could be extended for any binding in
4294         principle
4295
4296         * glib/dbus-gobject.c (gobject_message_function): change to the
4297         new way properties work
4298
4299         * dbus/dbus-protocol.h: add the new interfaces
4300
4301         * doc/dbus-specification.xml: document the introspection format,
4302         Introspectable interface, and add an org.freedesktop.Properties
4303         interface.
4304
4305         * glib/dbus-gparser.c: add support for a <property> element
4306
4307         * glib/dbus-gidl.c: add PropertyInfo
4308
4309         * glib/dbus-gobject.c (handle_introspect): put the outermost
4310         <node> outside the signal and property descriptions.
4311         (introspect_properties): export properties as <property> rather
4312         than as method calls
4313
4314 2005-01-28  Havoc Pennington  <hp@redhat.com>
4315
4316         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4317         related to authentication protocol
4318
4319 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4320
4321         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4322                 - BUS_ACTIVATION -> BUS_STARTER
4323                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4324                 - class MessageIter (__init__): Added recursion checking 
4325                 so we throw a nice error instead of just disconnecting from the
4326                 bus.
4327                 (get): Added arg_type parameter for recursion.
4328                 Removed the nil type
4329                 Added signiture type placeholder (not implemented)
4330                 Added struct type placeholder (not implemented)
4331                 Added varient type placeholder (not implemented)
4332                 Commented out dict type for now     
4333                 (get_element_type): renamed from get_array_type
4334                 (get_*): changed to use the dbus_message_iter_get_basic API
4335                 (get_*_array): removed in favor of recursive get_array method
4336                 (get_array): new recursive method which calls get to marshal
4337                 the elements of the array
4338                 (value_to_dbus_sig): New method returns the corrasponding
4339                 dbus signiture to a python value
4340                 (append): Comment out dict handling for now
4341                 Handle lists with the new recursive API
4342                 Comment out None handling for now
4343                 (append_nil): removed
4344                 (append_*): changed to use dbus_message_iter_append_basic API
4345                 (append_*_array): removed in favor of recursive append_array 
4346                 method
4347                 (__str__): Make it easier to print out recursive iterators
4348                 for debugging
4349                 - class Message (__str__): moved type inspection to the
4350                 MessageIter class' __str__ method
4351                 (get_iter): Added an append parameter wich defaults to False
4352                 If True use the new API's to create an append iterator
4353
4354         * python/dbus.py: Update to use new bindings API
4355                 - TYPE_ACTIVATION -> TYPE_STARTER
4356                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4357                 - class ActivationBus -> class StarterBus
4358                 - class RemoteObject (__call__): get an append iterator
4359                 - (_dispatch_dbus_method_call): get an append iterator
4360                 - class Object (emit_signal): get an append iterator
4361
4362         * python/examples/: Fixed up the examples to work with the new API
4363                 
4364 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4365
4366         * configure.in: Bump version up to 0.30.
4367
4368         * HACKING: Add a release item to bump the version number up after 
4369         a release.
4370
4371 2005-01-28  Havoc Pennington  <hp@redhat.com>
4372
4373         * doc/dbus-specification.xml: update to describe 16-bit types and
4374         dict entries
4375
4376         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4377         assertion
4378
4379         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4380         type
4381
4382         * dbus/dbus-marshal-recursive.c: implement
4383
4384 2005-01-27  Havoc Pennington  <hp@redhat.com>
4385
4386         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4387
4388         * configure.in: find the right type for 16 and 32 bit ints as well
4389         as 64
4390
4391         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4392         the 16-bit types so people don't have to stuff them in 32-bit or
4393         byte arrays.
4394
4395 2005-01-27  Havoc Pennington  <hp@redhat.com>
4396
4397         * dbus/dbus-message.c: byteswap the message if you init an
4398         iterator to read/write from it
4399         
4400         * dbus/dbus-marshal-byteswap.c: new file implementing 
4401         _dbus_marshal_byteswap()
4402
4403         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4404
4405 2005-01-26  Havoc Pennington  <hp@redhat.com>
4406         
4407         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4408         build, apparently - nobody noticed?)
4409         
4410 2005-01-26  Havoc Pennington  <hp@redhat.com>
4411
4412         * dbus/dbus-marshal-recursive.h: remove todo comment
4413
4414 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4415
4416         * Land the mono binding changes to conform to the new APIs.
4417
4418         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4419         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4420
4421         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4422         type code as a string.
4423         (InitAppending): Rename dbus_message_append_iter_init() to
4424         dbus_message_iter_init_append().
4425
4426         * mono/BusDriver.cs: Rename ServiceEventHandler to
4427         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4428         Rename ServiceOwnerChanged to NameOwnerChanged.
4429
4430         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4431         underlying C call.
4432
4433         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4434
4435         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4436         dbus_bus_acquire_service() to dbus_bus_request_name().
4437
4438         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4439         of Type.UnderlyingSystemType to get the correct element type for
4440         the array.
4441         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4442         dbus_message_get_{element|arg}_type() instead of
4443         dbus_message_iter_init_array_iterator().
4444         (Append): Replace dbus_message_iter_append_array() with
4445         dbus_message_iter_open_container() and
4446         dbus_message_iter_close_container().
4447
4448         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4449         types have been removed.
4450         
4451         * mono/DBusType/*.cs: Replace calls of
4452         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4453         but specify the type in the DllImport extern declaration.  Ditto
4454         for dbus_message_iter_append_[type]() ->
4455         dbus_message_iter_append_basic().
4456
4457         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4458         NameOwnerChangedHandler.
4459
4460 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4461
4462         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4463                 - get_base_service -> get_unique_name
4464                 - bus_get_base_service -> bus_get_unique_name
4465                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4466                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4467                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4468                 - bus_activate_service -> bus_start_service_by_name
4469                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4470                 - bus_acquire_service -> bus_request_name
4471                 - dbus_bus_acquire_service -> dbus_bus_request_name
4472                 - bus_service_exists -> bus_name_has_owner
4473                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4474
4475         * python/dbus.py: Rename of methods
4476                 - activate_service -> start_service_by_name
4477                 - bus_acquire_service -> bus_request_name
4478                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4479                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4480
4481         
4482 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4483
4484         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4485         signature for the method that can't be found.
4486
4487         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4488         the message has any arguments, we need to call
4489         _dbus_type_reader_get_current_type(), not
4490         _dbus_type_reader_has_next().
4491
4492 2005-01-24  Havoc Pennington  <hp@redhat.com>
4493
4494         * dbus/dbus-message-factory.c: more testing of message validation
4495
4496         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4497         header
4498
4499 2005-01-23  Havoc Pennington  <hp@redhat.com>
4500
4501         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4502         get this all working, not many tests in the framework yet though
4503
4504 2005-01-22  Havoc Pennington  <hp@redhat.com>
4505
4506         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4507         tutorial, based on work from David Wheeler.
4508
4509 2005-01-21  Havoc Pennington  <hp@redhat.com>
4510
4511         * dbus/dbus-bus.c: add more return_if_fail checks
4512
4513         * dbus/dbus-message.c (load_message): have the "no validation"
4514         mode (have to edit the code to toggle the mode for now though)
4515
4516         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4517         skips all validation; I want to use this at least for benchmark
4518         baseline, I'm not sure if it should be a publicly-available switch.
4519
4520 2005-01-21  Havoc Pennington  <hp@redhat.com>
4521
4522         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4523         toplevel doxygen group as the low-level API stuff
4524
4525         * dbus/dbus.h: note that libdbus is the low-level API
4526
4527 2005-01-20  Havoc Pennington  <hp@redhat.com>
4528
4529         * update-dbus-docs.sh: script to update docs on the web site, only
4530         works for me though. neener.
4531
4532 2005-01-20  Havoc Pennington  <hp@redhat.com>
4533
4534         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4535         code can reveal bugs in it
4536
4537 2005-01-20  Havoc Pennington  <hp@redhat.com>
4538
4539         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4540         select() version, patches from Tor Lillqvist
4541
4542 2005-01-20  Havoc Pennington  <hp@redhat.com>
4543
4544         * doc/dbus-tutorial.xml: replace > with &gt;
4545
4546         * bus/services.c (bus_registry_acquire_service): validate the name
4547         and return a better error if it's no good.
4548
4549         * doc/dbus-specification.xml: note NO_AUTO_START change
4550
4551         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4552         from AUTO_START, we're toggling the default
4553
4554         * bus/dispatch.c: adapt the tests to change of auto-start default
4555
4556 2005-01-18  Havoc Pennington  <hp@redhat.com>
4557
4558         * rename dbus-daemon-1 to dbus-daemon throughout
4559
4560 2005-01-18  Havoc Pennington  <hp@redhat.com>
4561
4562         * Throughout, grand renaming to strip out the use of "service",
4563         just say "name" instead (or "bus name" when ambiguous).  Did not
4564         change the internal code of the message bus itself, only the
4565         programmer-facing API and messages.
4566         
4567         * doc/dbus-specification.xml: further update the message bus section
4568         
4569         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4570         in error case
4571
4572 2005-01-17  Havoc Pennington  <hp@redhat.com>
4573
4574         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4575         ever
4576
4577         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4578         "invalid name character" not only non-ASCII
4579
4580         * doc/dbus-specification.xml: further update spec, message bus 
4581         parts are still out-of-date but the marshaling etc. stuff is now
4582         accurate-ish
4583
4584 2005-01-17  Havoc Pennington  <hp@redhat.com>
4585
4586         * doc/dbus-specification.xml: partially update spec
4587
4588 2005-01-17  Havoc Pennington  <hp@redhat.com>
4589
4590         * Throughout, align variant bodies according to the contained
4591         type, rather than always to 8. Should save a fair bit of space in
4592         message headers.
4593         
4594         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4595         fix handling of case where p == end
4596
4597         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4598
4599 2005-01-17  Havoc Pennington  <hp@redhat.com>
4600
4601         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4602
4603         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4604         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4605         are marshaling/unmarshaling a boolean.
4606
4607 2005-01-16  Havoc Pennington  <hp@redhat.com>
4608
4609         This is about it on what can be disabled/deleted from libdbus
4610         easily, back below 150K anyhow. Deeper cuts are more work than 
4611         just turning the code off as I've done here.
4612         
4613         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4614         signed int convenience funcs
4615
4616         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4617         verbose mode
4618
4619         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4620         things out of libdbus
4621
4622         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4623         
4624         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4625         tests-enabled-only, though it should probably be deleted)
4626
4627         * dbus/dbus-message-util.c: same stuff
4628
4629         * dbus/dbus-auth-util.c: same stuff
4630
4631 2005-01-16  Havoc Pennington  <hp@redhat.com>
4632
4633         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4634
4635         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4636         way for stripping down dbus-userdb.c stuff included in libdbus.
4637         Rename _dbus_parse_uid for consistency.
4638
4639 2005-01-16  Havoc Pennington  <hp@redhat.com>
4640
4641         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4642         name the assertion failed in
4643
4644         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4645         (_dbus_return_val_if_fail): assert that the name of the function
4646         containing the check doesn't start with '_', since we only want to 
4647         use checks on public functions
4648         
4649         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4650         checks to assertions
4651
4652         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4653         change checks to asserts for private function
4654
4655         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4656         to asserts for private function
4657
4658         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4659         broken assertion that was breaking make check
4660         (_dbus_type_reader_array_is_empty): remove this rather than fix
4661         it, was only used in assertions
4662
4663 2005-01-16  Havoc Pennington  <hp@redhat.com>
4664
4665         * test/unused-code-gc.py: hacky script to find code that's used
4666         only by the bus (not libdbus) or used only by tests or not used at
4667         all. It has some false alarms, but looks like we can clean up a
4668         lot of size from libdbus.
4669
4670         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4671         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4672         
4673 2005-01-16  Havoc Pennington  <hp@redhat.com>
4674
4675         * Add and fix docs according to Doxygen warnings throughout
4676         source.
4677         
4678         * dbus/dbus-marshal-recursive.c
4679         (_dbus_type_reader_array_is_empty): change this to just call
4680         array_reader_get_array_len() and make it static
4681
4682         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4683         from get_array_type
4684         (dbus_message_iter_init_append): rename from append_iter_init
4685
4686         * dbus/dbus-marshal-recursive.c
4687         (_dbus_type_reader_get_element_type): rename from
4688         _dbus_type_reader_get_array_type
4689
4690 2005-01-15  Havoc Pennington  <hp@redhat.com>
4691
4692         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4693
4694         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4695         when DBUS_DISABLE_ASSERT
4696         (_dbus_marshal_set_basic): be sure we align for the string length
4697
4698         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4699         this look faster
4700
4701         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4702         inline macro version
4703         (_dbus_string_set_byte): provide inline macro version
4704
4705 2005-01-15  Havoc Pennington  <hp@redhat.com>
4706
4707         * Land the new message args API and type system.
4708
4709         This patch is huge, but the public API change is not 
4710         really large. The set of D-BUS types has changed somewhat, 
4711         and the arg "getters" are more geared toward language bindings;
4712         they don't make a copy, etc.
4713
4714         There are also some known issues. See these emails for details
4715         on this huge patch:
4716         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4717         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4718         
4719         * dbus/dbus-marshal-*: all the new stuff
4720
4721         * dbus/dbus-message.c: basically rewritten
4722
4723         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4724         freed blocks to be all non-nul bytes so using freed memory is less
4725         likely to work right
4726
4727         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4728         DBUS_FAIL_MALLOC=N environment variable, so you can do
4729         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4730         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4731         thorough.
4732
4733         * qt/message.cpp: port to the new message args API
4734         (operator<<): use str.utf8() rather than str.unicode()
4735         (pretty sure this is right from the Qt docs?)
4736
4737         * glib/dbus-gvalue.c: port to the new message args API
4738
4739         * bus/dispatch.c, bus/driver.c: port to the new message args API
4740
4741         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4742         "locked" flag to TRUE and align_offset to 0; I guess we never
4743         looked at these anyhow, but seems cleaner.
4744
4745         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4746         move allocation padding macro to this header; use it to implement
4747         (_DBUS_STRING_STATIC): ability to declare a static string.
4748
4749         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4750         change to return TRUE if the interface is not set.
4751
4752         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4753         to dbus-marshal-validate.[hc]
4754
4755         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4756         dbus-internals.c
4757
4758         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4759         to dbus-marshal-*.[hc]
4760
4761         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4762         function here from dbus-marshal.c
4763
4764 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4765
4766         * NEWS: Update for 0.23.
4767
4768         * configure.in: Release 0.23.
4769
4770 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4771
4772         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
4773         dbus DLL with --debug.  Clean up after the .mdb files this leaves
4774         behind.
4775
4776         * mono/doc/Makefile.am: Need to uninstall the docs on "make
4777         uninstall"
4778
4779         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4780         is an enum, get the enum's underlying type.  Another mono
4781         1.1.3 fix.
4782
4783 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4784
4785         Patch from Sjoerd Simons <sjoerd@luon.net>
4786
4787         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4788         DESTDIR.  It breaks stuff.
4789
4790 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4791
4792         Patch from Tambet Ingo <tambet@ximian.com>
4793
4794         * mono/DBusType/Array.cs (Get): Get the underlying element type by
4795         calling type.GetElementType().  The code previously depended on
4796         broken Mono behavior, which was fixed in Mono 1.1.3.
4797
4798         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4799         Activator.CreateInstance() so that the class's constructor is
4800         called with the right parameters.
4801
4802 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4803
4804         Patch from Timo Teräs <ext-timo.teras@nokia.com>
4805
4806         * dbus/dbus-connection.c
4807         (_dbus_connection_queue_received_message_link): Call
4808         _dbus_connection_remove_timeout() instead of the _locked()
4809         variant, since it's always called from
4810         _dbus_connection_handle_watch(), which handles the locking.
4811         Removed the _locked() variant since it's no longer used.
4812
4813 2005-01-03  Havoc Pennington  <hp@redhat.com>
4814
4815         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4816         return
4817         
4818 2004-12-26  Havoc Pennington  <hp@redhat.com>
4819
4820         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4821
4822 2005-01-03  Havoc Pennington  <hp@redhat.com>
4823
4824         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4825         floating point
4826
4827         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4828
4829 2005-01-02  Havoc Pennington  <hp@redhat.com>
4830
4831         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4832
4833 2005-01-01  Havoc Pennington  <hp@redhat.com>
4834
4835         * configure.in: add -Wfloat-equal
4836
4837 2005-01-01  Havoc Pennington  <hp@redhat.com>
4838
4839         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
4840         for a variety of reasons '==' doesn't do this.
4841
4842 2004-12-31  Havoc Pennington  <hp@redhat.com>
4843
4844         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4845         I keep wishing I had
4846
4847 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4848
4849         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4850
4851 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4852
4853         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4854         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4855         dbus-protocol.h.  Because they are defines and not enums they are not
4856         autogenerated.
4857
4858 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
4859
4860         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4861         dbus_bus_activate_service
4862
4863         * python/dbus.py (Bus.activate_service): activate a service on the
4864         bus.
4865
4866 2004-12-24  Havoc Pennington  <hp@redhat.com>
4867
4868         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4869         file format has also changed and I haven't adapted to that yet
4870         
4871         * Makefile.am: load .gcno files from latest gcc
4872
4873 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
4874         * Patch from Rob Taylor <robtaylor@fastmail.fm>
4875
4876         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4877         lowlevel binding
4878
4879         * python/dbus.py (get_unix_user): Added binding to 
4880         call dbus_bindings.bus_get_unix_user
4881
4882         * python/extract.py: Modified the proto_pat regex to
4883         handle unsigned long
4884
4885 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4886
4887         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4888         better POSIX compliance.
4889
4890 2004-12-19  Havoc Pennington  <hp@redhat.com>
4891
4892         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
4893         (_dbus_string_insert_8_aligned): new functions
4894
4895         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4896
4897 2004-12-18  Havoc Pennington  <hp@redhat.com>
4898
4899         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4900         macro
4901
4902         * dbus/dbus-message.c: fix a comment, and add a still-unused
4903         not-implemented function
4904
4905         * dbus/dbus-marshal.h: fix comment
4906
4907         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4908
4909 2004-12-17  Joe Shaw  <joeshaw@novell.com>
4910
4911         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4912         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4913         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4914         Type.UnderlyingSystemType to get the actual system type
4915         underneath.  This code previously depended on the broken Mono
4916         behavior, which was fixed in 1.1.3.
4917
4918 2004-11-27  Havoc Pennington  <hp@redhat.com>
4919
4920         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4921         are disabled
4922         (_dbus_string_get_const_data): inline when asserts are disabled
4923
4924         * dbus/dbus-message.c: record the _dbus_current_generation of
4925         creation so we can complain if dbus_shutdown() is used improperly.
4926         Do this only if checks are enabled.
4927
4928         * dbus/dbus-connection.c: ditto
4929         
4930 2004-11-26  Havoc Pennington  <hp@redhat.com>
4931
4932         * test/glib/test-profile.c: add with_bus mode to profile echoes
4933         that go through the bus.
4934
4935         * test/glib/run-test.sh: add ability to run test-profile
4936
4937         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4938         config file reload.
4939
4940 2004-11-26  Havoc Pennington  <hp@redhat.com>
4941
4942         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4943         thing was implemented
4944
4945 2004-11-26  Havoc Pennington  <hp@redhat.com>
4946
4947         * test/glib/test-profile.c: tweak a bit, add support for some
4948         made-up minimal malloc overhead with plain sockets, since in 
4949         real life some sort of buffers are unavoidable thus we could 
4950         count them in the theoretical best case
4951
4952 2004-11-26  Havoc Pennington  <hp@redhat.com>
4953
4954         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
4955         where I was trying to cache one too many messages
4956
4957 2004-11-26  Havoc Pennington  <hp@redhat.com>
4958
4959         * dbus/dbus-message.c: reimplement message cache as an array which 
4960         makes the cache about twice as fast and saves maybe 1.5% overall
4961
4962 2004-11-26  Havoc Pennington  <hp@redhat.com>
4963
4964         * dbus/dbus-threads.c (init_global_locks): forgot to put the
4965         message cache lock here
4966
4967 2004-11-26  Havoc Pennington  <hp@redhat.com>
4968
4969         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
4970         the "char byte_order" next to each other to save 4 bytes
4971         (dbus_message_new_empty_header): reduce preallocation, since the
4972         message cache should achieve a similar effect
4973         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
4974         message cache that keeps a few DBusMessage around in a pool,
4975         another 8% speedup or so.
4976
4977         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
4978
4979 2004-11-25  Havoc Pennington  <hp@redhat.com>
4980
4981         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
4982         to write, without reading or blocking, try it before the poll()
4983         and skip the poll() if nothing remains to write. This is about a
4984         3% speedup in the echo client/server
4985
4986 2004-11-25  Havoc Pennington  <hp@redhat.com>
4987
4988         The primary change here is to always write() once before adding
4989         the write watch, which gives us about a 10% performance increase.
4990         
4991         * dbus/dbus-transport-unix.c: a number of modifications to cope
4992         with removing messages_pending
4993         (check_write_watch): properly handle
4994         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
4995         messages_pending stuff
4996         (check_read_watch): properly handle WAITING_FOR_MEMORY and
4997         AUTHENTICATED cases
4998         (unix_handle_watch): after writing, see if the write watch can be
4999         removed
5000         (unix_do_iteration): assert that write_watch/read_watch are
5001         non-NULL rather than testing that they aren't, since they 
5002         aren't allowed to be NULL. check_write_watch() at the end so 
5003         we add the watch if we did not finish writing (e.g. got EAGAIN)
5004
5005         * dbus/dbus-transport-protected.h: remove messages_pending call,
5006         since it resulted in too much inefficient watch adding/removing; 
5007         instead we now require that the transport user does an iteration 
5008         after queueing outgoing messages, and after trying the first
5009         write() we add a write watch if we got EAGAIN or exceeded our 
5010         max bytes to write per iteration setting
5011
5012         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5013         function
5014
5015         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5016         freed and then accessed, valgrind flagged this bug, fix it
5017
5018         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5019         as the last valid field plus 1, where really it is equal to the
5020         last valid field. Corrects some message corruption issues.
5021
5022         * dbus/dbus-mainloop.c: verbosity changes
5023
5024         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5025         instead of aborting in one of the test codepaths
5026
5027         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5028         caused not printing the pid ever again if a verbose was missing
5029         the newline at the end
5030         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5031
5032         * dbus/dbus-connection.c: verbosity changes; 
5033         (dbus_connection_has_messages_to_send): new function
5034         (_dbus_connection_message_sent): no longer call transport->messages_pending
5035         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5036         try to write() immediately, so we can avoid the write watch. This
5037         is the core purpose of this patchset
5038         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5039         dump the outgoing message queue, so nobody will get confused
5040         trying to send them or thinking stuff is pending to be sent
5041
5042         * bus/test.c: verbosity changes
5043
5044         * bus/driver.c: verbosity/assertion changes
5045
5046         * bus/dispatch.c: a bunch of little tweaks to get it working again
5047         because this patchset changes when/where you need to block.
5048
5049 2004-11-23  Havoc Pennington  <hp@redhat.com>
5050
5051         * test/glib/test-profile.c: modify to accept a plain_sockets
5052         argument in which case it will bench plain sockets instead of
5053         libdbus, for comparison purposes.
5054
5055 2004-11-22  Havoc Pennington  <hp@redhat.com>
5056
5057         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5058         threads for more time, so sysprof can get a grip on it.
5059
5060         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5061         pointless variable
5062
5063 2004-11-13  Havoc Pennington  <hp@redhat.com>
5064
5065         * test/glib/test-profile.c: fix this thing up a bit
5066
5067         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5068         preallocation sizes by a fair bit; not sure if this will be an
5069         overall performance win or not, but it does reduce reallocs.
5070
5071         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5072         the test hack that forced constant realloc if asserts are
5073         disabled, so we can profile sanely. Sprinkle in some
5074         _DBUS_UNLIKELY() which are probably pointless, but before I
5075         noticed the real performance problem I put them in.
5076         (_dbus_string_validate_utf8): micro-optimize this thing a little
5077         bit, though callgrind says it didn't help; then special-case
5078         ascii, which did help a lot; then be sure we detect nul bytes as
5079         invalid, which is a bugfix.
5080         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5081         superstition; use memset to nul the padding instead of a manual
5082         loop.
5083         (_dbus_string_get_length): inline this as a
5084         macro; it showed up in the profile because it's used for loop
5085         tests and so forth
5086
5087 2004-11-10  Colin Walters  <walters@verbum.org>
5088
5089         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5090         for extra paranoia.
5091
5092 2004-11-09  Colin Walters  <walters@verbum.org>
5093
5094         * dbus/dbus-string.c (_dbus_string_get_length): New
5095         function, writes DBusString to C buffer.
5096
5097         * dbus/dbus-string.h: Prototype it.
5098
5099         * dbus/dbus-message.c (dbus_message_type_to_string): New
5100         function, converts message type into C string.
5101
5102         * dbus/dbus-message.h: Prototype it.
5103
5104         * bus/selinux.c (bus_selinux_check): Take source pid,
5105         target pid, and audit data.  Pass audit data to
5106         avc_has_perm.
5107         (log_audit_callback): New function, appends extra
5108         audit information.
5109         (bus_selinux_allows_acquire_service): Also take
5110         service name, add it to audit data.
5111         (bus_selinux_allows_send): Also take message
5112         type, interface, method member, error name,
5113         and destination, and add them to audit data.
5114         (log_cb): Initialize func_audit.
5115         
5116         * bus/selinux.h (bus_selinux_allows_acquire_service)
5117         (bus_selinux_allows_send): Update prototypes 
5118
5119         * bus/services.c (bus_registry_acquire_service): Pass
5120         service name to bus_selinux_allows_acquire_service.
5121
5122         * bus/bus.c (bus_context_check_security_policy): Pass
5123         additional audit data.  Move assignment of dest
5124         to its own line.
5125
5126 2004-11-07  Colin Walters  <walters@verbum.org>
5127
5128         * dbus/dbus-transport-unix.c (do_authentication): Always
5129         initialize auth_completed.
5130         
5131 2004-11-07  Colin Walters  <walters@verbum.org>
5132
5133         * bus/bus.c (load_config): Break into three
5134         separate functions: process_config_first_time_only,
5135         process_config_every_time, and process_config_postinit.
5136         (process_config_every_time): Move call of
5137         bus_registry_set_service_context_table into
5138         process_config_postinit.
5139         (process_config_postinit): New function, does
5140         any processing that needs to happen late
5141         in initialization (and also on reload).
5142         (bus_context_new): Instead of calling load_config,
5143         open config parser here and call process_config_first_time_only
5144         and process_config_every_time directly.  Later, after
5145         we have forked but before changing UID,
5146         invoke bus_selinux_full_init, and then call
5147         process_config_postinit.
5148         (bus_context_reload_config): As in bus_context_new,
5149         load parse file inside here, and call process_config_every_time
5150         and process_config_postinit.
5151
5152         * bus/services.h, bus/services.c
5153         (bus_registry_set_service_context_table): Rename
5154         from bus_registry_set_sid_table.  Take string hash from config
5155         parser, and convert them here into SIDs.
5156
5157         * bus/config-parser.c (struct BusConfigParser): Have
5158         config parser only store a mapping of service->context
5159         string.
5160         (merge_service_context_hash): New function.
5161         (merge_included): Merge context string hashes instead
5162         of using bus_selinux_id_table_union.
5163         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5164         simply create a new string hash.
5165         (bus_config_parser_unref): Unref it.
5166         (start_selinux_child): Simply insert strings into hash,
5167         don't call bus_selinux_id_table_copy_over.
5168
5169         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5170         (bus_selinux_id_table_copy_over): Delete.
5171
5172 2004-11-03  Colin Walters  <walters@verbum.org>
5173
5174         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5175         variables.
5176         
5177 2004-11-03  Colin Walters  <walters@verbum.org>
5178
5179         * bus/test-main.c (test_pre_hook): Fix test logic,
5180         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5181
5182 2004-11-02  Colin Walters  <walters@redhat.com>
5183
5184         * bus/selinux.c (bus_selinux_init): Split into two functions,
5185         bus_selinux_pre_init and bus_selinux_post_init.
5186         (bus_selinux_pre_init): Just determine whether SELinux is
5187         enabled.
5188         (bus_selinux_post_init): Do everything else.
5189
5190         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5191         config file, and bus_selinux_post_init after.  This ensures that
5192         we don't lose the policyreload notification thread that
5193         bus_selinux_init created before forking previously.
5194         
5195         * bus/test-main.c (test_pre_hook): Update for split.
5196
5197 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5198
5199         Patch from Johan Fischer <linux@fischaz.com>
5200         
5201         * mono/doc/Makefile.am (install-data-local): Added directory
5202         install for DESTDIR
5203
5204 2004-10-29  Colin Walters  <walters@redhat.com>
5205
5206         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5207         parameter for fd to write pid to.       
5208
5209         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5210         
5211         * bus/bus.c (bus_context_new): Pass print_pid_fd
5212         to _dbus_become_daemon (bug #1720)
5213
5214 2004-10-29  Colin Walters  <walters@redhat.com>
5215
5216         Patch from Ed Catmur <ed@catmur.co.uk>
5217
5218         * mono/doc/Makefile.am (install-data-local): Handle
5219         DESTDIR.
5220
5221 2004-10-29  Colin Walters  <walters@redhat.com>
5222
5223         * bus/.cvsignore, qt/.cvsignore: Update.
5224
5225 2004-10-29  Colin Walters  <walters@redhat.com>
5226
5227         Patch from Kristof Vansant <de_lupus@pandora.be>
5228
5229         * configure.in: Detect Slackware.
5230         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5231         * bus/rc.messagebus.in: New file.
5232
5233 2004-10-29  Colin Walters  <walters@redhat.com>
5234
5235         * tools/dbus-monitor.c (filter_func): Return
5236         DBUS_HANDLER_RESULT_HANDLED in filter function
5237         for now.  See:
5238         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5239
5240 2004-10-29  Colin Walters  <walters@redhat.com>
5241
5242         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5243
5244         * bus/services.c (bus_registry_acquire_service): 
5245         Correctly retrieve service name from DBusString
5246         for printing.
5247
5248 2004-10-29  Colin Walters  <walters@redhat.com>
5249
5250         * dbus/dbus-glib.h: Update documentation to not
5251         refer to internal APIs.
5252
5253 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5254
5255         * mono/Arguments.cs (GetDBusTypeConstructor):
5256         type.UnderlyingSystemType will return "System.Byte" if you do it
5257         on "byte[]", which is not what we want.  So check the type.IsArray
5258         property and use System.Array instead.
5259
5260 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5261
5262         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5263         the DBusUserInfo structure since this is passed into the function.
5264         This would cause a double free when the function that allocated
5265         the structure would try to free it when an error occured.
5266
5267         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5268         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5269         for service activation to avoid 32bit/64bit parallel install issues
5270
5271 2004-10-21  Colin Walters  <walters@verbum.org>
5272
5273         * AUTHORS: Fix my email address, the @gnu.org one
5274         has been bouncing for some time.  Also add J5.
5275         
5276 2004-10-21  Colin Walters  <walters@verbum.org>
5277
5278         * dbus/dbus-transport-unix.c (do_authentication): Return
5279         authentication status to callers.
5280         (unix_handle_watch): If we completed authentication this round,
5281         don't do another read.  Instead wait until the next iteration,
5282         after we've read any pending data in the auth buffer.
5283         (unix_do_iteration): Ditto.
5284         (unix_handle_watch): Updated for new do_authentication prototype.
5285
5286 2004-10-18  Colin Walters  <walters@verbum.org>
5287
5288         * bus/selinux.c (bus_selinux_enabled): Handle
5289         --disable-selinux case.
5290         
5291 2004-10-18  Colin Walters  <walters@verbum.org>
5292
5293         * bus/selinux.h: Add bus_selinux_enabled.
5294         
5295         * bus/selinux.c (bus_selinux_enabled): Implement it.
5296         
5297         * bus/config-parser.c (struct include): Add
5298         if_selinux_enabled member.
5299         (start_busconfig_child): Parse if_selinux_enabled
5300         attribute for include.
5301         (bus_config_parser_content): Handle it.
5302
5303         * bus/session.conf.in, bus/system.conf.in: Add
5304         inclusion of context mapping to default config files;
5305         conditional on SELinux being enabled.
5306         
5307         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5308         
5309         * test/data/invalid-config-files/badselinux-1.conf, 
5310         test/data/invalid-config-files/badselinux-2.conf:
5311         Test files for bad syntax.
5312         
5313 2004-10-17  Colin Walters  <walters@verbum.org>
5314
5315         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5316         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5317         format specifier mismatches.
5318
5319 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5320
5321         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5322         format string.
5323
5324         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5325         pointer (bug #1540, Leonardo Boiko).
5326
5327 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5328
5329         * mono/BusDriver.cs: Changed BusDriver struct to remove
5330         the ServiceCreated and ServiceDeleted events and replace them
5331         with the new ServiceOwnerChanged event.
5332
5333         * mono/example/BusListener.cs: Added a new example program,
5334         which listens for and reports any ServiceOwnerChanged events
5335         on the bus driver.
5336
5337         * mono/example/Makefile.am (DESTDIR): Build changes for the
5338         new BusListener.cs example.
5339
5340 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5341
5342         * bus/signals.c (bus_match_rule_parse): validate the components of
5343         match rules (bug #1439).
5344
5345         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5346
5347 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5348
5349         * doc/dbus-specification.xml: document ServiceOwnerChanged
5350         signal.
5351         
5352         * bus/driver.c, bus/driver.h, bus/services.c: Use
5353         ServiceOwnerChanged signal instead of ServiceCreated and
5354         ServiceDeleted.
5355         
5356         * bus/dispatch.c: update testcase for the new signal.
5357
5358 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5359
5360         Patch from Nat Friedman <nat@novell.com>
5361
5362         * mono/Makefile.am: A number of small build fixes to allow "make
5363         distcheck" to succeed.
5364
5365         * mono/example/Makefile.am: "make distcheck" fixes.
5366
5367         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5368         key in @srcdir@.
5369
5370         * test/Makefile.am: "make distcheck" fixes.
5371
5372 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5373
5374         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5375
5376         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5377
5378         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5379         messages after the first one (bug #1389).
5380         
5381         * bus/dispatch.c (check_double_hello_message): add a test case for
5382         the double hello message bug.
5383         (check_existent_service_activation): fix check of spawning error.
5384         
5385 2004-09-16  David Zeuthen  <david@fubar.dk>
5386
5387         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5388
5389 2004-09-12  David Zeuthen  <david@fubar.dk>
5390
5391         Patch from Kay Sievers <kay.sievers@vrfy.org>
5392
5393         * bus/bus.c (bus_context_new):
5394         * bus/bus.h:
5395         * bus/main.c (usage)
5396         (main):
5397         Add commandline option --nofork to override configuration file
5398         setting.
5399
5400 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5401
5402         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5403         compilers don't like it (bug #974).
5404
5405 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5406
5407         * qt/connection.*: Applied patch by Jérôme Lodewyck
5408         <lodewyck@clipper.ens.fr> to integrate an existing
5409         connection into the Qt eventloop
5410
5411 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5412
5413         * mono/BusDriver.cs: Added.  This is a class for interacting with
5414         the org.freedesktop.DBus service.
5415
5416         * mono/Message.cs: Added a mechanism to expose the message that is
5417         currently being dispatched via the static Message.Current
5418         property.  Added Message.Sender and Message.Destination
5419         properties.
5420
5421         * mono/Handler.cs: Expose the dispatched message via
5422         Message.Current when handling method calls.
5423
5424         * mono/Service.cs: Expose the dispatched message via
5425         Message.Current when handling signal emissions.
5426         
5427         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5428         Connection.BaseService property.
5429
5430 2004-08-28  Havoc Pennington  <hp@redhat.com>
5431
5432         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5433
5434         More fixes from Steve Grubb
5435         
5436         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5437         (_dbus_listen_tcp_socket): fix fd leak
5438
5439         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5440         EINTR to a bit lower in the code
5441
5442 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5443
5444         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5445         TRUE if we are inquiring about the existence of the built-in
5446         org.freedesktop.DBus service.
5447
5448 2004-08-25  John Palmieri  <johnp@redhat.com>
5449         * bus/config-parser.c:
5450         (struct PolicyType): Add POLICY_CONSOLE
5451         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5452         (start_busconfig_child): Sets up console element when
5453         <policy at_console=""> is encountered in a policy file
5454         (append_rule_from_element): Convert console elements to console
5455         rules.
5456
5457         * bus/policy.c: 
5458         (bus_policy_create_client_policy): Add console rules to the client
5459         policy based on if the client is at the console
5460         (bus_policy_append_console_rule): New function for adding a
5461         console rule to a policy
5462         (bus_policy_merge): Handle console rule merging
5463
5464         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5465         where we check for console user files
5466         
5467         * dbus/dbus-sysdeps.c:
5468         (_dbus_file_exists): New function which checks if the given
5469         file exists
5470         (_dbus_user_at_console): New function which does the system
5471         specific process of checking if the user is at the console
5472
5473         * dbus/dbus-userdb.c:
5474         (_dbus_is_console_user): New function converts a UID to user name
5475         and then calls the system specific _dbus_user_at_console to 
5476         see if the user is at the console and therefor a console user
5477
5478 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5479
5480         * bus/config-parser.c (set_limit):
5481         * bus/dbus-daemon-1.1.in:
5482         * test/data/valid-config-files/many-rules.conf: set the
5483         max_match_rules_per_connection limt from the config file. 
5484
5485         * doc/busconfig.dtd: update the DTD.
5486
5487         * bus/driver.c: remove some unused variables.
5488
5489 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5490
5491         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5492         it's been replaced by dbus_g_bus_get
5493
5494 2004-08-23  Colin Walters  <walters@redhat.com>
5495
5496         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5497
5498         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5499
5500         * bus/selinux.c: Create a thread for policy reload notification.
5501         (bus_selinux_get_policy_root): Implement.
5502
5503         * bus/config-parser.c (start_busconfig_child)
5504         (bus_config_parser_content): Support SELinux-root relative
5505         inclusion.
5506
5507         * configure.in <HAVE_SELINUX>: Add -lpthread.
5508         
5509         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5510         (test_post_hook): Move memory checking into here.
5511         (test_pre_hook, test_post_hook): Move SELinux checks in
5512         here, but conditional on a DBUS_TEST_SELINUX environment
5513         variable.  Unfortunately we can't run the SELinux checks
5514         as a normal user, since they won't have any permissions
5515         for /selinux.  So this will have to be tested manually
5516         for now, until we have virtualization for most of
5517         libselinux.
5518         
5519 2004-08-23  Havoc Pennington  <hp@redhat.com>
5520
5521         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5522         drop supplementary groups, suggested by Steve Grubb
5523
5524 2004-08-20  Colin Walters  <walters@redhat.com>
5525
5526         * bus/config-parser.c (start_busconfig_child): Remove some unused
5527         variables.
5528         
5529         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5530         warning.
5531
5532 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5533
5534         * configure.in: If --enable-mono is passed in, if we can't find
5535         mono error out.
5536
5537         * mono/Makefile.am: Use /gacutil to install assemblies into the
5538         GAC and not /root.
5539
5540 2004-08-12  Havoc Pennington  <hp@redhat.com>
5541
5542         * NEWS: update for 0.22
5543
5544         * configure.in: release 0.22
5545
5546 2004-08-11  Colin Walters  <walters@redhat.com>
5547
5548         * tools/dbus-send.c (main, usage): Add --reply-timeout
5549         argument.
5550
5551 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5552
5553         * bus/bus.c (process_config_first_time_only): get rid of an unused
5554         DBusError that was causing a memoy leak (bug #989).
5555
5556         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5557         fix compilation on Solaris/Forte C (bug #974)
5558
5559         * bus/main.c (main): plug two minuscule memleaks.
5560
5561 2004-08-10  Havoc Pennington  <hp@redhat.com>
5562
5563         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5564
5565 2004-08-09  Havoc Pennington  <hp@redhat.com>
5566
5567         * COPYING: switch to Academic Free License version 2.1 instead of
5568         2.0, to resolve complaints about patent termination clause.
5569
5570 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5571
5572         * README: added documentation for the --enable-python 
5573         configure switch.
5574
5575 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5576
5577         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5578         _unref in the SELinux support.
5579
5580         * doc/busconfig.dtd: update DTD for SELinux support.
5581
5582         * bus/config-loader-libxml.c: fix error handler and parser
5583         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5584
5585         * configure.in: remove the warning about libxml2.
5586
5587         * dbus/dbus-bus.c: silence doxygen warning.
5588
5589 2004-07-31  Colin Walters  <walters@redhat.com>
5590
5591         * configure.in: Move #error in SELinux check to its own line.
5592
5593 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5594
5595         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5596         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5597         dbus_error_set.
5598
5599         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5600         broken by the change in the _SET_OOM macros.
5601
5602 2004-07-31  Colin Walters  <walters@redhat.com>
5603
5604         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5605         BUS_SET_OOM.
5606
5607 2004-07-31  Colin Walters  <walters@redhat.com>
5608
5609         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5610         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5611         AC_MSG_CHECKING.
5612
5613 2004-07-24  Havoc Pennington  <hp@redhat.com>
5614
5615         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5616
5617         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5618         functionality
5619
5620         * configure.in: add --enable-selinux
5621         
5622         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5623
5624         * bus/main.c (main): initialize and shut down selinux
5625
5626         * bus/connection.c: store SELinux ID on each connection, to avoid 
5627         repeated getting of the string context and converting it into 
5628         an ID
5629
5630         * bus/bus.c (bus_context_get_policy): new accessor, though it
5631         isn't used
5632         (bus_context_check_security_policy): check whether the security
5633         context of sender connection can send to the security context of
5634         recipient connection
5635
5636         * bus/config-parser.c: add parsing for <selinux> and <associate>
5637         
5638         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5639         implement dbus_connection_get_unix_fd()
5640
5641         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5642         function, used by the selinux stuff
5643         
5644 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5645
5646         * bus/config-loader-libxml.c: complete the implementation of
5647         libxml backend for config file loader. Doesn't work with full OOM
5648         test yet. 
5649         
5650         * configure.in: change error when selecting libxml into a warning.
5651         
5652         * test/data/invalid-config-files: add two non-well-formed XML
5653         files. 
5654         
5655         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5656         
5657         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5658         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5659         be necessary to read all the buffer. (bug #894)
5660
5661         * bus/activation.c (bus_activation_activate_service): fix a
5662         potential assertion failure (bug #896). Small optimization in the
5663         case of auto-activation messages.
5664
5665         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5666         add test case for byte-through-vararg bug (#901). patch by Kimmo
5667         Hämäläinen. 
5668
5669 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5670
5671         * python/dbus.py:
5672         * python/dbus_bindings.pyx.in:
5673         Add dbus.init_gthreads (), allow emit_signal to pass
5674         arguments to the signal.
5675         
5676 2004-07-24  Havoc Pennington  <hp@redhat.com>
5677
5678         * AUTHORS: add some people, not really comprehensively, let me
5679         know if I missed you
5680
5681 2004-07-24  Havoc Pennington  <hp@redhat.com>
5682
5683         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5684         Owen
5685
5686         * test/Makefile.am (DIST_SUBDIRS): here also
5687
5688 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5689
5690         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5691         breaking build on Solaris, reported by Farhad Saberi on the ML.
5692
5693         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5694         va_arg invocation to account for integer promotion in the case of
5695         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5696
5697         * bus/services.c (bus_service_remove_owner): fix bug #902, use
5698         _dbus_list_get_first_link, not _dbus_list_get_first.
5699
5700         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5701
5702         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5703         handler functions so that the asserts in _dbus_object_subtree_unref
5704         do not fail.
5705
5706         * dbus/dbus-transport-unix.c (do_reading):
5707         _dbus_transport_queue_messages return value is of type
5708         dbus_bool_t, not DBusDispatchStatus.
5709         
5710 2004-07-19  David Zeuthen  <david@fubar.dk>
5711
5712         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5713
5714         * bus/dispatch.c:
5715         (check_get_connection_unix_user): Debug says GetProperty; but the
5716         method is called GetConnectionUnixUser
5717         (check_get_connection_unix_process_id): New function
5718         (bus_dispatch_test): Actually call check_get_connection_unix_user();
5719         also call check_get_connection_unix_process_id()
5720         
5721         * bus/driver.c:
5722         (bus_driver_handle_get_connection_unix_process_id): New function,
5723         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5724         interface
5725         
5726         * dbus/dbus-auth.c:
5727         (handle_server_data_external_mech): Set pid from the credentials
5728         obtained from the socket
5729         
5730         * dbus/dbus-connection.c:
5731         (dbus_connection_get_unix_process_id): New function
5732         
5733         * dbus/dbus-connection.h: 
5734         Add prototype for dbus_connection_get_unix_process_id
5735         
5736         * dbus/dbus-transport.c:
5737         (_dbus_transport_get_unix_process_id): New function
5738         
5739         * dbus/dbus-transport.h:
5740         Add prototype for _dbus_transport_get_unix_process_id
5741         
5742 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5743
5744         * dbus/dbus-message.c: Message counter fix, patch by Christian
5745         Hammond <chipx86@gnupdate.org>
5746
5747 2004-07-18  Seth Nickell  <seth@gnome.org>
5748
5749         * python/dbus.py:
5750         * python/dbus_bindings.pyx.in:
5751         * python/tests/test-client.py:
5752
5753         Add dbus.ByteArray and dbus_bindings.ByteArray
5754         types so that byte streams can be passed back.
5755
5756         Give jdahlin the heaps of credit that are so
5757         rightfully his.
5758         
5759 2004-07-12  Seth Nickell  <seth@gnome.org>
5760
5761         * python/dbus.py:
5762
5763         Add message argument to the default object_method_handler
5764         function.
5765         
5766         * python/dbus_bindings.pyx.in:
5767
5768         Automatically return NIL when passed an empty list
5769         (we can't pass back a list since lists are typed
5770         and we don't have any idea what type the the client
5771         intended the list to be... :-( )
5772         
5773 2004-07-10  Seth Nickell  <seth@gnome.org>
5774
5775         * python/examples/Makefile.am:
5776
5777         Fix distcheck breakage caused by new examples.
5778
5779 2004-07-10  Seth Nickell  <seth@gnome.org>
5780
5781         * python/dbus.py:
5782
5783         Add "message" argument to service-side dbus.Object
5784         methods. This will break existing services written
5785         using the python bindings, but will allow extraction
5786         of all the message information (e.g. who its from).
5787
5788         Add improved "object oriented" signal handling/emission.
5789         
5790         * python/examples/example-service.py:
5791
5792         Nix this example.
5793         
5794         * python/examples/example-signal-emitter.py:
5795         * python/examples/example-signal-recipient.py:
5796
5797         Two new examples that show how to emit and receive
5798         signals using the new APIs.
5799         
5800         * python/examples/example-signals.py:
5801         * python/examples/gconf-proxy-service.py:
5802         * python/examples/gconf-proxy-service2.py:
5803
5804         Add "message" argument to service methods.
5805
5806 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
5807
5808         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5809         * dbus/bus.c (dbus_bus_get_unix_user)
5810         * doc/dbus-specification.xml: implement GetConnectionUnixUser
5811         method of org.freedesktop.DBus interface.
5812
5813         * bus/dispatch.c: test case
5814
5815 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
5816
5817         * python/Makefile.am: switched include directory from glib/ to dbus/
5818         since dbus-glib.h moved
5819  
5820 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5821
5822         * configure.in: prevent building the gcj stuff and libxml loader
5823         since they are broken.
5824
5825 2004-06-20  Havoc Pennington  <hp@redhat.com>
5826
5827         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
5828         codes from the dbus error names
5829         
5830         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
5831         as dbus/dbus-glib.h and that breakage is now visible due to 
5832         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5833         
5834         * glib/dbus-glib.h: s/gproxy/g_proxy/
5835
5836         * dbus/dbus-shared.h: new header to hold stuff shared with
5837         binding APIs
5838         
5839         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5840         than dbus-errors.h
5841
5842         * glib/dbus-glib.h (dbus_set_g_error): move to
5843         dbus-glib-lowlevel.h
5844
5845         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5846         of stuff to enable this
5847
5848         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5849
5850         * a bunch of other changes with the same basic "separate glib 
5851         bindings from dbus.h" theme
5852         
5853 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
5854
5855         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5856
5857         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5858
5859 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5860
5861         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5862         the reply value of the ServiceExists message.
5863
5864 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
5865
5866         * python/dbus_bindings.pyx.in: No longer need to parse path
5867         elements and pass them as arrays of strings.  The C API now
5868         accepts plain path strings.
5869         (_build_parsed_path): removed 
5870
5871 2004-06-07  Havoc Pennington  <hp@redhat.com>
5872
5873         * doc/TODO: remove auto-activation item since it's done; sort
5874         items by importance/milestone
5875
5876 2004-06-07  Havoc Pennington  <hp@redhat.com>
5877
5878         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5879         random signature when using REQUIRED_FIELDS (this hack won't work
5880         in the long term)
5881
5882         * dbus/dbus-message.c: change the signature to be a header field,
5883         instead of message->signature special-case string. Incremental
5884         step forward. Then we can fix up code to send the signature in the
5885         message, then fix up code to validate said signature, then fix up
5886         code to not put the typecodes inline, etc.
5887         (load_one_message): don't make up the signature after the fact
5888         (decode_header_data): require signature field for the known
5889         message types
5890
5891         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5892
5893         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5894
5895 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
5896
5897         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5898
5899         * mono/Handler.cs: Updated to follow new path argument for
5900         (un-)registering objects.
5901
5902         * mono/example/Makefile.am:
5903         * mono/Makefile.am:
5904         * configure.in: Bumped required version for mono and use new -pkg
5905         syntax for deps
5906
5907 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5908
5909         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5910         registration functions take the path argument as char* instead of
5911         char**.
5912
5913         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5914         split off the path decompostion part of
5915         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5916         warnings. 
5917
5918         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5919         
5920 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5921  
5922         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5923         machine approach.  A state is implemented as a function that
5924         handles incoming events as specified for that state.
5925         
5926         * doc/dbus-specification.xml: Update auth protocol state machine
5927         specification to match implementation.  Remove some leftover
5928         base64 examples.
5929
5930 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5931
5932         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5933         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5934         quiet doxygen.
5935
5936         * Doxyfile.in: remove deprecated options.
5937
5938         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5939         glib/test-thread.h, glib/test-thread-client.c,
5940         glib/test-thread-server.c, glib/test-profile.c,
5941         glib/test-dbus-glib.c: remove these unused files.
5942
5943 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5944
5945         * dbus/dbus-object-tree.c
5946         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5947         non-fallback handlers (bug #684).
5948         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5949         (find_subtree_recurse): report wether the returned subtree is an
5950         exact match or a "fallback" match higher up in the tree.
5951         (object_tree_test_iteration): update test case.
5952
5953 2004-06-01  Seth Nickell  <seth@gnome.org>
5954
5955         * python/dbus_bindings.pyx.in:
5956         * python/tests/test-client.py:
5957
5958         Round off basic type support. Add dicts (yay!), and 
5959         remaining array types.
5960
5961         Make MessageIter more general so it works for dicts too.
5962
5963         Mark all loop variables as C integers.
5964         
5965 2004-05-31  Havoc Pennington  <hp@redhat.com>
5966
5967         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
5968         "in" before "out"
5969
5970         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
5971
5972         * glib/dbus-glib-tool.c (main): set up to have a --self-test
5973         option that runs the tests, and start filling in some code
5974         including for starters just dumping the interfaces to stdout
5975
5976         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
5977
5978         * test/data/valid-introspection-files/lots-of-types.xml: test of
5979         an example introspection file
5980
5981         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
5982         "node" (I think...)
5983
5984 2004-05-31  Seth Nickell  <seth@gnome.org>
5985
5986         * python/dbus_bindings.pyx.in:
5987         * python/tests/test-client.py:
5988
5989         Test Suite: 1
5990         Python Bindings: 0
5991
5992         Fix string array memory trashing bug... oops...
5993
5994 2004-05-30  Seth Nickell  <seth@gnome.org>
5995
5996         * python/dbus.py:
5997
5998         Add a nicer-but-less-flexible alternate API for handling 
5999         calls to virtual objects in dbus.ObjectTree.
6000
6001         Screw up the argument order to the dbus.Object constructor
6002         for consistency with dbus.ObjectTree (and to make dbus_methods
6003         optional for future extension)
6004         
6005         * python/examples/Makefile.am:
6006         * python/examples/gconf-proxy-service.py:
6007         * python/examples/gconf-proxy-service2.py:
6008
6009         Alternate implementation of gconf-proxy-service using the
6010         nicer dbus.ObjectTree API.
6011         
6012         * python/examples/example-service.py:
6013         * python/tests/test-server.py
6014
6015         Reverse the argument order to deal with dbus.Object constructor
6016         changes.
6017         
6018 2004-05-30  Seth Nickell  <seth@gnome.org>
6019
6020         * python/examples/example-client.py:
6021         * python/examples/example-service.py:
6022
6023         Take it back. Lists seem to work but they're broken
6024         in the test suite. Make the base examples use
6025         lists (works fine).
6026
6027 2004-05-30  Seth Nickell  <seth@gnome.org>
6028
6029         * python/dbus_bindings.pyx.in:
6030         * python/tests/test-client.py:
6031
6032         Add some more tests and fix errors that crop up.
6033         Unfortunately, currently it seems like marshalling
6034         and unmarshalling of lists is completely broken :-(
6035
6036 2004-05-30  Seth Nickell  <seth@gnome.org>
6037
6038         * python/dbus_bindings.pyx.in:
6039
6040         Add support for ObjectPath type.
6041
6042         * python/dbus.py:
6043
6044         Refactor message handling code to a common function.
6045         
6046         * python/tests/test-client.py:
6047         * python/tests/test-server.py:
6048
6049         Add tests that check to make sure values of all types
6050         can be echoed from a service w/o mangling.
6051         
6052 2004-05-29  Seth Nickell  <seth@gnome.org>
6053
6054         * python/dbus.py:
6055
6056         Add ObjectTree class which allows implementation
6057         of trees of "virtual" objects. Basically the python
6058         wrapper for "register_fallback".
6059         
6060         * python/examples/Makefile.am
6061         * python/examples/gconf-proxy-client.py:
6062         * python/examples/gconf-proxy-service.py:
6063
6064         Implement a simple GConf proxy service that supports
6065         get/set on string and int GConf keys using the ObjectTree.
6066         
6067 2004-05-29  Seth Nickell  <seth@gnome.org>
6068
6069         * python/dbus.py:
6070         * python/examples/example-client.py:
6071         * python/examples/example-service.py:
6072         * python/examples/list-system-services.py:
6073
6074         Add SessionBus, SystemBus and ActivationBus classes
6075         so you don't need to know the special little BUS_TYPE
6076         flag.
6077         
6078 2004-05-29  Havoc Pennington  <hp@redhat.com>
6079
6080         * bus/config-parser.c (process_test_valid_subdir): temporarily
6081         stop testing config parser OOM handling, since expat has issues
6082         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6083
6084         * bus/dbus-daemon-1.1.in: change requested_reply to
6085         send_requested_reply/receive_requested_reply so we can send the
6086         replies, not just receive them.
6087
6088         * bus/config-parser.c: parse the new
6089         send_requested_reply/receive_requested_reply
6090
6091         * bus/policy.c (bus_client_policy_check_can_send): add
6092         requested_reply argument and use it
6093
6094         * bus/bus.c (bus_context_check_security_policy): pass through
6095         requested_reply status to message send check
6096
6097         * bus/system.conf.in: adapt to requested_reply change
6098         
6099 2004-05-28  Havoc Pennington  <hp@redhat.com>
6100
6101         * test/glib/test-service-glib.c (main): remove unused variable
6102
6103         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6104
6105         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6106         from the enum, no longer in use.
6107
6108         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6109         works right.
6110
6111         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6112         whether error_name passed in is a valid error name.
6113
6114 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6115
6116         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6117         OBJECT_PATH and OBJECT_PATH_ARRAY
6118
6119 2004-05-28  Seth Nickell  <seth@gnome.org>
6120
6121         * python/examples/Makefile.am:
6122
6123         Forget to add Makefile.am. Do not pass go.
6124
6125 2004-05-28  Michael Meeks  <michael@ximian.com>
6126
6127         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6128         fix no int64 case.
6129
6130         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6131
6132         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6133         (_dbus_message_iter_get_basic_type_array): impl.
6134         drastically simplify ~all relevant _get methods to use these.
6135         (_dbus_message_iter_append_basic_array),
6136         (dbus_message_iter_append_basic): impl
6137         drastically simplify ~all relevant _append methods to use these.
6138
6139         * dbus/dbus-message-builder.c (parse_basic_type) 
6140         (parse_basic_array, lookup_basic_type): impl.
6141         (_dbus_message_data_load): prune scads of duplicate /
6142         cut & paste coding.
6143
6144         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6145         (_dbus_demarshal_basic_type): implement,
6146         (demarshal_and_validate_len/arg): beef up debug.
6147         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6148
6149 2004-05-27  Seth Nickell  <seth@gnome.org>
6150
6151         * configure.in:
6152         * python/Makefile.am:
6153
6154         Include the example python apps in the tarball.
6155         
6156         * python/examples/list-system-services.py
6157
6158         Add a python new example that fetches the list of services
6159         from the system bus.
6160         
6161 2004-05-27  Seth Nickell  <seth@gnome.org>
6162
6163         * python/dbus.py:
6164         * python/dbus_bindings.pyx.in:
6165
6166         Fix failure to notify that a signal was not handled,
6167         resulted in hung functions.
6168         
6169 2004-05-25  Colin Walters  <walters@redhat.com>
6170
6171         * tools/dbus-monitor.c (main): Monitor all types of messages.
6172
6173 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6174
6175         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6176         which unregisters the object path and disposes the handler.
6177
6178 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6179  
6180         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6181          
6182         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6183         operands to && so we call dbus_message_iter_next () for the last
6184         argument also.
6185
6186 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6187
6188         * dbus/dbus-object-tree.c
6189         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6190         children even if the requested path isn't registered.
6191         (object_tree_test_iteration): test object_tree_list_registered.
6192
6193         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6194         it to 0.
6195         
6196 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6197
6198         * doc/TODO: Remove resolved items.
6199
6200         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6201         field.
6202         
6203         * bus/connection.c (bus_connections_expect_reply): Enforce the
6204         per-connection limit on pending replies.
6205         
6206         Patch from Jon Trowbridge <trow@ximian.com>:
6207  
6208         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6209         up a watch that triggers a config reload when one end of the pipe
6210         becomes readable.
6211         (signal_handler): Instead of doing the config reload in our SIGHUP
6212         handler, just write to the reload pipe and let the associated
6213         watch handle the reload when control returns to the main loop.
6214  
6215         * bus/driver.c (bus_driver_handle_reload_config): Added.
6216         Implements a ReloadConfig method for requesting a configuration
6217         file reload via the bus driver.
6218  
6219 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6220
6221         * HACKING: Updated release instructions concerning the wiki page.
6222
6223 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6224
6225         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6226         filter against auth->allowed_mechs; we only add allowed mechs in
6227         record_mechanisms().
6228  
6229         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6230         ALLOWED_MECHS to auth-script format so we can set the list of
6231         allowed mechanisms.
6232  
6233         * data/auth/client-out-of-mechanisms.auth-script: New test to
6234         check client disconnects when it is out of mechanisms to try.
6235  
6236         * dbus/dbus-auth.c (process_command): Remove check for lines
6237         longer that 1 MB; we only buffer up maximum 16 kB.
6238  
6239         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6240         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6241         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6242         assume there might be unused bytes.
6243  
6244         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6245         client-out-of-mechs, it is handled in process_reject(). Move check
6246         for max failures to send_rejected(), as it's a server-only thing.
6247
6248         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6249         send_auth(), send_data(), send_rejected(), send_error(),
6250         send_ok(), send_begin() and send_cancel().
6251
6252 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6253
6254         Remove base64 encoding, replace with hex encoding. Original patch
6255         from trow@ximian.com, added error handling.
6256
6257         * dbus/dbus-string.c (_dbus_string_base64_encode)
6258         (_dbus_string_base64_decode): Remove.
6259         (_dbus_string_hex_decode): Add end_return argument so we can
6260         distinguish between OOM and invalid hex encoding.
6261         (_dbus_string_test): Remove base64 tests and add test case for
6262         invalid hex.
6263
6264         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6265         Replace base64 with hex.
6266
6267         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6268         for invalid hex encoded data in auth protocol.
6269
6270 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6271
6272         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6273         leak.
6274
6275 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6276
6277         * mono/dbus-sharp.dll.config.in: Added for GAC
6278         * mono/dbus-sharp.snk: Added for GAC
6279         * mono/Assembly.cs.in: Added for GAC
6280         * mono/Makefile.am: Changes for GAC installation        
6281         * configure.in: Added refs for dbus-sharp.dll.config.in and
6282         Assembly.cs.in. More fixes for mono testing
6283         * mono/example/Makefile.am: Changed var to CSC
6284         * Makefile.am: Changed flag name to DBUS_USE_CSC
6285
6286 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6287
6288         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6289         * mono/doc/*: Added documentation framework
6290         * configure.in: Added monodoc check
6291         * README: Added description of mono configure flags
6292
6293 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6294
6295         * doc/dbus-specification.xml: Added a "Required" column to the 
6296         header fields table and changed the "zero or more" verbage in
6297         the above paragraph to read "The header must contain the required 
6298         named header fields and zero or more of the optional named header 
6299         fields".
6300         * test/data/invalid-messages/*.message: Added the required PATH 
6301         named header field to the tests so that they don't fail on 
6302         'Missing path field'
6303
6304 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6305
6306         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6307         the stack by implicitly defining variable and parameter types and
6308         removing the hack of defining C pointers as python objects and later
6309         casting them.
6310
6311 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6312
6313         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6314
6315 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6316
6317         * mono/DBusType/Dict.cs: Handle empty dicts
6318         * mono/DBusType/Array.cs: Handle empty arrays
6319         * mono/Arguments.cs: Handle empty arguments
6320
6321 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6322
6323         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6324         field
6325
6326 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6327
6328         * test/data/valid-messages/standard-*.message: Update message
6329         test scripts to new header field names.
6330
6331 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6332
6333         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6334         overflow to times_we_did_each_thing array which would chop off the
6335         first character of the failure_dir string. Increased the size of
6336         the array to 7 to reflect the number of random mutation functions
6337         we have.
6338
6339 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6340
6341         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6342         unix_server->watch here, it is unreffed in disconnect.
6343         (_dbus_server_new_for_tcp_socket): convert NULL host to
6344         "localhost" here so we don't append NULL to address.
6345         
6346         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6347         various addresses, including tcp with no explicit host.
6348
6349 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6350
6351         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6352         fix incorrect setting of .name_offset in the HeaderField (it was
6353         off by two bytes, positioned right after the name and typecode)
6354
6355         * bus/bus.c (bus_context_new, bus_context_unref): test before
6356         calling dbus_server_free_data_slot and _dbus_user_database_unref
6357         in case of an error.
6358
6359         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6360         by libdbus-gtool.
6361
6362 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6363
6364         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6365         _dbus_poll() instead of select().
6366
6367 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6368
6369         * bus/main.c (signal_handler): Reload the configuration files
6370         on SIGHUP.
6371         (main): Set up our SIGHUP handler.
6372
6373         * bus/bus.c (struct BusContext): Store the config file, user and
6374         fork flag in the BusContext.
6375         (process_config_first_time_only): Added.  Contains the code
6376         (previously in bus_context_new) for setting up the BusContext from
6377         the BusConfigParser that should only be run the first time the
6378         config files are read.
6379         (process_config_every_time): Added.  Contains the code (previously
6380         in bus_context_new) for setting up the BusContext from the
6381         BusConfigParser that should be run every time the config files are
6382         read.
6383         (load_config): Added.  Builds a BusConfigParser from the config
6384         files and passes the resulting structure off to
6385         process_config_first_time_only (assuming this is the first time)
6386         and process_config_every_time.
6387         (bus_context_new): All of the config-related code has been moved
6388         to process_config_first_time_only and process_config_every_time.
6389         Now this function just does the non-config-related initializations
6390         and calls load_config.
6391         (bus_context_reload_config): Added.
6392
6393 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6394
6395         * bus/driver.c (bus_driver_handle_get_service_owner):
6396         implement a GetServiceOwner method.
6397         * doc/dbus-specification.xml: document it.
6398         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6399         
6400         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6401         implement, using the bus GetServiceOwner method.
6402
6403         * test/glib/test-dbus-glib.c:
6404         use dbus_gproxy_new_for_service_owner so that we can receive the
6405         signal. 
6406
6407 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6408
6409         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6410         dbus/dbus-message.c, dbus/dbus-protocol.h
6411         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6412
6413         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6414         dbus/dbus-message.c, dbus/dbus-protocol.h
6415         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6416
6417         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6418         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6419         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6420
6421         * doc/dbus-specification.xml (Header Fields Table):
6422         s/SERVICE/DESTINATION
6423         s/SENDER_SERVICE/SENDER
6424
6425
6426 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6427
6428         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6429         a few seconds.
6430
6431 2004-04-13  Michael Meeks  <michael@ximian.com>
6432
6433         * glib/dbus-gobject.c (handle_introspect): split out
6434         (introspect_properties): this.
6435         (handle_introspect): implement this.
6436
6437         * test/glib/Makefile.am: use the absolute path so the bus
6438         daemon's chdir ("/") doesn't kill us dead.
6439
6440         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6441
6442 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6443
6444         * bus/config-parser.c (struct BusConfigParser): Added
6445         included_files field.
6446         (seen_include): Added.  Checks whether or not a file has already
6447         been included by any parent BusConfigParser.
6448         (bus_config_parser_new): Copy the parent's included_files.
6449         (include_file): Track which files have been included, and fail on
6450         circular inclusions.
6451         (process_test_valid_subdir): Changed printf to report if we are
6452         testing valid or invalid conf files.
6453         (all_are_equiv): Changed printf to be a bit clearer about
6454         what we are actually doing.
6455         (bus_config_parser_test): Test invalid configuration files.
6456
6457 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6458
6459         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6460         argument.  If non-null, the newly-constructed BusConfigParser will
6461         be initialized with the parent's BusLimits instead of the default
6462         values.
6463         (include_file): When including a config file, pass in
6464         the current parser as the parent and then copy the BusLimits
6465         from the included BusConfigParser pack to the current parser.
6466         (process_test_valid_subdir): Renamed from process_test_subdir.
6467         (process_test_equiv_subdir): Added.  Walks through a directory,
6468         descending into each subdirectory and loading the config files
6469         it finds there.  If any subdirectory contains two config files
6470         that don't produce identical BusConfigParser structs, fail.
6471         For now, the BusConfigParser's BusPolicies are not compared.
6472         (bus_config_parser_test): Call both process_test_valid_subdir and
6473         process_test_equiv_subdir.
6474
6475         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6476         argument and pass it along to the call to bus_config_parser_new.
6477         Also made a few small changes to allow this code to compile.
6478
6479         * bus/config-loader-expat.c (bus_config_load): Take a parent
6480         argument and pass it along to the call to bus_config_parser_new.
6481
6482         * bus/bus.c (bus_context_new): Load the config file
6483         with a NULL parent argument.
6484
6485 2004-03-29  Michael Meeks  <michael@ximian.com>
6486
6487         * glib/dbus-gobject.c (introspect_properties): split
6488         out, fix mangled 'while' flow control.
6489         (introspect_signals): implement.
6490         (handle_introspect): update.
6491
6492 2004-03-29  Michael Meeks  <michael@ximian.com>
6493
6494         * glib/dbus-gobject.c (set_object_property): split out / 
6495         re-work, use the property type, and not the message type(!)
6496         (get_object_property): ditto.
6497
6498         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6499         (dbus_gvalue_marshal): make this code re-usable, needed
6500         for signals too, also on both proxy and server side.
6501         Re-write for more efficiency / readability.
6502
6503 2004-03-29  Michael Meeks  <michael@ximian.com>
6504
6505         * dbus/dbus-message.c
6506         (dbus_message_new_error_printf): impl.
6507
6508         * dbus/dbus-connection.c
6509         (dbus_connection_unregister_object_path): fix warning.
6510
6511         * configure.in: fix no-mono-installed situation.
6512
6513 2004-03-27  Havoc Pennington  <hp@redhat.com>
6514
6515         Patch from Timo Teräs:
6516         
6517         * tools/dbus-send.c (main): if --print-reply, assume type is
6518         method call; support boolean type args
6519         
6520         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6521         bunch of memleak and logic bugs
6522         
6523 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6524
6525         * mono/Arguments.cs:
6526         * mono/Introspector.cs:
6527         * mono/Handler.cs:
6528         * mono/InterfaceProxy.cs:
6529         * mono/Message.cs
6530         * mono/ProxyBuilder.cs:
6531         * mono/Service.cs:
6532         Added InterfaceProxy class to avoid building proxies for every
6533         object.
6534
6535         * dbus-message.h:
6536         * dbus-message.c (dbus_message_append_args_valist)
6537         (dbus_message_iter_get_object_path)
6538         (dbus_message_iter_get_object_path_array)
6539         (dbus_message_iter_append_object_path)
6540         (dbus_message_iter_append_object_path_array):
6541         Added object_path iter functions to handle OBJECT_PATH arguments
6542         
6543 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6544
6545         First checkin of mono bindings.
6546         * configure.in:
6547         * Makefile.am:
6548         Build stuff for the bindings
6549         * dbus-sharp.pc.in: Added for pkgconfig
6550         
6551 2004-03-21  Havoc Pennington  <hp@redhat.com>
6552
6553         * test/test-service.c (main): remove debug spew
6554
6555 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6556
6557         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6558         arrays
6559
6560         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6561         (dbus_message_iter_init_array_iterator)
6562         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6563         indicate whether the iterator is empty
6564
6565         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6566         warnings
6567
6568 2004-03-19  Havoc Pennington  <hp@redhat.com>
6569
6570         * NEWS: 0.21 updates
6571
6572         * configure.in: 0.21
6573
6574         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6575         
6576         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6577         you don't need pyrex to make dist
6578
6579         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6580         sources; run moc
6581         
6582 2004-03-18  Richard Hult  <richard@imendio.com>
6583
6584         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6585         (dbus_message_set_auto_activation): Add doxygen docs.
6586
6587 2004-03-16  Richard Hult  <richard@imendio.com>
6588
6589         * bus/activation.c: (bus_activation_service_created),
6590         (bus_activation_send_pending_auto_activation_messages),
6591         (bus_activation_activate_service):
6592         * bus/activation.h:
6593         * bus/dispatch.c: (bus_dispatch),
6594         (check_nonexistent_service_auto_activation),
6595         (check_service_auto_activated),
6596         (check_segfault_service_auto_activation),
6597         (check_existent_service_auto_activation), (bus_dispatch_test):
6598         * bus/driver.c: (bus_driver_handle_activate_service):
6599         * bus/services.c: (bus_registry_acquire_service):
6600         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6601         (dbus_message_get_auto_activation):
6602         * dbus/dbus-message.h:
6603         * dbus/dbus-protocol.h: Implement auto-activation.
6604         
6605         * doc/dbus-specification.xml: Add auto-activation to the spec.
6606
6607 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6608
6609         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6610         fix a bug with CUSTOM types.
6611
6612         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6613         a unit test for this bug (used to fail).
6614
6615 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6616
6617         * bus/activation.c:
6618         (babysitter_watch_callback): notify all pending activations waiting for
6619           the same exec that the activation failed.
6620         (bus_activation_activate_service): shortcut the activation if we 
6621           already waiting for the same executable to start up.
6622
6623 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6624
6625         * bus/activation.c: 
6626         - Added service file reloading. 
6627           Each service files directory is kept in an hash table in 
6628           BusActivation and each BusActivationEntry knows what .service-file it
6629           was read from. So when you try to activate a service the bus will 
6630           check if it's been updated, removed or if new .service-files has 
6631           been installed.
6632         - Test code at the bottom for the service file reloading.
6633         * bus/test-main.c: (main):
6634         * bus/test.h:
6635         - added service reloading test.
6636         * dbus/dbus-sysdeps.c: 
6637         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6638
6639 2004-03-08  Michael Meeks  <michael@ximian.com>
6640
6641         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6642         bail immediately if disconnected, to avoid busy loop.
6643
6644         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6645         cleanup cut/paste/inefficiency.
6646
6647 2004-03-01  David Zeuthen  <david@fubar.dk>
6648
6649         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6650         bug where args were used twice. This bug resulted in a segfault
6651         on a Debian/PPC system when starting the messagebus daemon. Include
6652         dbus-sysdeps.h for DBUS_VA_COPY
6653
6654         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6655
6656         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6657         appropriate va_copy implementation. From GLib
6658         
6659 2004-02-24  Joe Shaw  <joe@ximian.com>
6660
6661         * bus/services.c (bus_registry_acquire_service): We need to pass
6662         in the service name to dbus_set_error() to prevent a crash.
6663
6664 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6665
6666         * AUTHORS: Reveal my True identity.
6667
6668 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6669
6670         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6671         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6672
6673 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6674
6675         * doc/TODO: Added not about better error check of configuration files.
6676
6677 2003-12-02  Richard Hult  <richard@imendio.com>
6678
6679         * Update AFL version to 2.0 throughout the source files to reflect
6680         the update that was done a while ago.
6681
6682 2003-12-02  Richard Hult  <richard@imendio.com>
6683
6684         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6685         wrote_dict_key to FALSE on the iter that the dict is appended to,
6686         just like when appending other types. Fixes a bug where a dict
6687         couldn't be put inside a dict.
6688         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6689         (message_iter_test, _dbus_message_test): Add test case for dict
6690         inside dict.
6691
6692 2003-12-01  David Zeuthen  <david@fubar.dk>
6693
6694         * python/dbus.py: Add the actual message when calling the reciever
6695         of a signal such that parameters can be inspected. Add the method
6696         remove_signal_receiver
6697         
6698 2003-11-26  Mikael Hallendal  <micke@imendio.com>
6699
6700         * bus/*.[ch]:
6701         * dbus/*.[ch]:
6702         * glib/*.[ch]: Made ref functions return the pointer
6703
6704 2003-11-25  Zack Rusin  <zack@kde.org>
6705
6706         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6707
6708         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
6709         wrappers,
6710
6711         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
6712         the Integrator and to better fit with the server,
6713
6714 2003-11-24  Zack Rusin  <zack@kde.org>
6715
6716         * qt/connection.h, qt/connection.cpp: removing initDbus method since
6717         the integrator handles it now
6718
6719         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6720         since QTimer wasn't really meant to be used the way DBusTimeout is
6721
6722 2003-11-24  Zack Rusin  <zack@kde.org>
6723
6724         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
6725         Integrator class which integrates D-BUS with the Qt event loop,
6726
6727         * qt/connection.h, qt/connection.cpp: Move all the code which
6728         was dealing with D-BUS integration to the Integrator class,
6729         and start using Integrator,
6730
6731 2003-11-23  Zack Rusin  <zack@kde.org>
6732
6733         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
6734         wrapper
6735
6736         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6737         switching namespaces to DBusQt, reworking the class,
6738
6739         * Makefile.cvs: switching dependencies so that it matches KDE 
6740         schematics,
6741         
6742         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
6743         the library
6744
6745 2003-11-19  Havoc Pennington  <hp@redhat.com>
6746
6747         * NEWS: update
6748
6749         * configure.in: bump version to 0.20
6750
6751         * configure.in (have_qt): add yet another place to look for qt
6752         (someone hand trolltech a .pc file...)
6753
6754 2003-11-01  Havoc Pennington  <hp@redhat.com>
6755
6756         * doc/dbus-specification.xml: add state machine docs on the auth
6757         protocol; just a first draft, I'm sure it's wrong.      
6758
6759 2003-10-28  David Zeuthen  <david@fubar.dk>
6760
6761         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6762         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6763         
6764 2003-10-28  Havoc Pennington  <hp@redhat.com>
6765
6766         * dbus/dbus-message.c (get_next_field): delete unused function
6767
6768 2003-10-28  Havoc Pennington  <hp@redhat.com>
6769
6770         * bus/expirelist.c (do_expiration_with_current_time): detect
6771         failure of the expire_func due to OOM
6772
6773         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6774
6775         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6776         NoReply error that's now created by the bus when the service exits
6777
6778 2003-10-28  Havoc Pennington  <hp@redhat.com>
6779
6780         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6781         tests for set_path, set_interface, set_member, etc.
6782
6783         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6784
6785         * dbus/dbus-message.c (set_string_field): always just delete and
6786         re-append the field; accept NULL for deletion
6787         (re_align_fields_recurse): reimplement
6788         
6789 2003-10-26  Havoc Pennington  <hp@redhat.com>
6790
6791         * dbus/dbus-connection.c: fix docs to properly describe the
6792         disconnected message
6793         (_dbus_connection_notify_disconnected): remove this function; 
6794         we can't synchronously add the disconnected message, we have to 
6795         do it after we've queued any remaining real messages
6796         (_dbus_connection_get_dispatch_status_unlocked): queue the
6797         disconnect message only if the transport has finished queueing all
6798         its real messages and is disconnected.
6799         (dbus_connection_disconnect): update the dispatch status here
6800
6801 2003-10-22  Havoc Pennington  <hp@redhat.com>
6802
6803         * bus/bus.c (bus_context_check_security_policy): fix up assertion
6804
6805         * bus/connection.c (bus_transaction_send_from_driver): set the
6806         destination to the connection's base service
6807
6808 2003-10-20  Havoc Pennington  <hp@redhat.com>
6809
6810         hmm, make check is currently not passing.
6811         
6812         * doc/dbus-specification.xml: add requirement that custom type
6813         names follow the same rules as interface names.
6814
6815         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6816         duplication and allow 'c' to be 'custom'; dict is now 'm' for
6817         'map'
6818
6819         * doc/dbus-specification.xml: update type codes to match
6820         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6821         CUSTOM. Add type OBJECT_PATH to the spec.
6822
6823 2003-10-17  Havoc Pennington  <hp@redhat.com>
6824
6825         * bus/driver.c (create_unique_client_name): use "." as separator
6826         in base service names instead of '-'
6827
6828         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6829         byte at the end of the string
6830
6831         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6832         optimization macros since string validation seems to be a slow
6833         point.
6834         
6835         * doc/dbus-specification.xml: restrict valid
6836         service/interface/member/error names. Add test suite code for the
6837         name validation.
6838
6839         * dbus/dbus-string.c: limit service/interface/member/error names 
6840         to [0-9][A-Z][a-z]_
6841
6842         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6843         format arg to verbose spew
6844
6845         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6846         memory, return instead of g_error
6847
6848         * test/test-service.c (path_message_func): support emitting a
6849         signal on request
6850
6851         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6852         activation bus type if DBUS_BUS_ACTIVATION was set; default to
6853         assuming the activation bus was the session bus so that services
6854         started manually will still register.
6855         (init_connections_unlocked): fix so that in OOM situation we get
6856         the same semantics when retrying the function
6857         
6858         * test/test-service.c (main): change to use path registration, to
6859         test those codepaths; register with DBUS_BUS_ACTIVATION rather
6860         than DBUS_BUS_SESSION
6861
6862 2003-10-16  Havoc Pennington  <hp@redhat.com>
6863
6864         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6865
6866         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6867         coverage of the tests
6868         (coverage-report.txt): don't move the .da and .bbg files around
6869
6870 2003-10-16  Havoc Pennington  <hp@redhat.com>
6871
6872         * bus/bus.c (struct BusContext): remove struct field I didn't mean
6873         to put there
6874
6875 2003-10-16  Havoc Pennington  <hp@redhat.com>
6876
6877         * bus/connection.c (bus_pending_reply_expired): either cancel or
6878         execute, not both
6879         (bus_connections_check_reply): use unlink, not remove_link, as we
6880         don't want to free the link; fixes double free mess
6881
6882         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6883         where no reply was received
6884
6885         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6886         fix a refcount leak
6887
6888         * bus/signals.c (match_rule_matches): add special cases for the
6889         bus driver, so you can match on sender/destination for it.
6890
6891         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6892         DBUS_PRINT_BACKTRACE is set
6893
6894         * dbus/dbus-internals.c: add pid to assertion failure messages
6895
6896         * dbus/dbus-connection.c: add message type code to the debug spew
6897
6898         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6899         sender=foo not service=foo
6900
6901         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6902         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
6903         DBUS_ACTIVATION_ADDRESS instead
6904
6905         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6906         DBUS_SYSTEM_BUS_ADDRESS if appropriate
6907
6908         * bus/bus.c (bus_context_new): handle OOM copying bus type into
6909         context struct
6910
6911         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6912         (dbus_message_iter_get_object_path_array): new function (half
6913         finished, disabled for the moment)
6914         
6915         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6916         DBUS_MESSAGE_TYPE_ERROR
6917
6918         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6919         avoid redirecting stderr to /dev/null
6920         (babysit): close stdin if not doing the "exit_with_session" thing
6921
6922         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6923         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6924         stdout/stdin, so things don't get confused
6925         
6926         * bus/system.conf.in: fix to allow replies, I modified .conf
6927         instead of .conf.in again.
6928
6929 2003-10-14  David Zeuthen  <david@fubar.dk>
6930
6931         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6932         argtype to arg_type when raising unknown arg type exception.
6933         Changed type list to reflect the changes in dbus-protocol.h so 
6934         the bindings actually work.
6935
6936 2003-10-14  Havoc Pennington  <hp@redhat.com>
6937
6938         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6939         to have a bug keeping it from outputting the .da files sometimes
6940         (string_get_string): don't append garbage nul bytes to the string.
6941
6942 2003-10-15  Seth Nickell  <seth@gnome.org>
6943
6944         * python/Makefile.am:
6945
6946         Include dbus_h_wrapper.h in the dist tarball.
6947
6948 2003-10-14  Havoc Pennington  <hp@redhat.com>
6949
6950         * bus/bus.c (bus_context_check_security_policy): revamp this to
6951         work more sanely with new policy-based requested reply setup
6952
6953         * bus/connection.c (bus_transaction_send_from_driver): set bus
6954         driver messages as no reply
6955
6956         * bus/policy.c (bus_client_policy_check_can_receive): handle a
6957         requested_reply attribute on allow/deny rules
6958
6959         * bus/system.conf: add <allow requested_reply="true"/>
6960
6961         * bus/driver.c (bus_driver_handle_message): fix check for replies
6962         sent to the bus driver, which was backward. How did this ever work
6963         at all though? I think I'm missing something.
6964
6965         * dbus/dbus-message.c (decode_header_data): require error and
6966         method return messages to have a reply serial field to be valid
6967         (_dbus_message_loader_queue_messages): break up this function;
6968         validate that reply serial and plain serial are nonzero; 
6969         clean up the OOM/error handling.
6970         (get_uint_field): don't return -1 from this
6971         (dbus_message_create_header): fix signed/unsigned bug
6972
6973         * bus/connection.c (bus_connections_expect_reply): save serial of
6974         the incoming message, not reply serial
6975
6976 2003-10-14  Havoc Pennington  <hp@redhat.com>
6977
6978         * bus/connection.c: implement pending reply tracking using
6979         BusExpireList
6980
6981         * bus/bus.c (bus_context_check_security_policy): verify that a
6982         reply is pending in order to allow a reply to be sent. Deny 
6983         messages of unknown type.
6984
6985         * bus/dbus-daemon-1.1.in: update to mention new resource limits
6986
6987         * bus/bus.c (bus_context_get_max_replies_per_connection): new
6988         (bus_context_get_reply_timeout): new
6989
6990 2003-10-13  Seth Nickell  <seth@gnome.org>
6991
6992         * python/Makefile.am:
6993
6994         Pass "make distcheck": remove a couple files from DIST_FILES
6995         that weren't included in the final version.
6996
6997 2003-10-12  Havoc Pennington  <hp@pobox.com>
6998
6999         Added test code that 1) starts an actual bus daemon and 2) uses
7000         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7001         more testing possible, but this is the basic framework.
7002         
7003         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7004         empty proxy lists from the proxy list hash
7005
7006         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7007         couple of return_if_fail checks
7008
7009         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7010         to allocate, so everything is cleared to NULL as it should be.
7011
7012         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7013         source as data to dbus_connection_set_timeout_functions() as the 
7014         timeout functions expected
7015
7016         * test/glib/run-test.sh: add a little script to start up a message
7017         bus and run tests using it
7018
7019         * tools/dbus-launch.1: updates
7020
7021         * tools/dbus-launch.c (main): add --config-file option
7022
7023         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7024         that could never be reached.
7025
7026         * dbus/dbus-message.c (dbus_message_new_method_return) 
7027         (dbus_message_new_error, dbus_message_new_signal): set the
7028         no-reply-expected flag on all these. Redundant, but may
7029         as well be consistent.
7030
7031 2003-10-11  Havoc Pennington  <hp@pobox.com>
7032
7033         * test/decode-gcov.c (function_solve_graph): make broken block
7034         graph a nonfatal error since it seems to be broken. Need to debug
7035         this.
7036
7037         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7038         can't just check type > INVALID < LAST anymore
7039
7040         * dbus/dbus-message.c (dbus_message_get_signature): new function
7041         (dbus_message_has_signature): new function
7042         (struct DBusMessage): add signature field (right now it isn't sent
7043         over the wire, just generated on the fly)
7044         (dbus_message_copy): copy the signature, and init strings to
7045         proper length to avoid some reallocs
7046         (dbus_message_iter_init_array_iterator): return void, since it
7047         can't fail
7048         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7049         (_dbus_message_loader_queue_messages): add silly temporary hack to
7050         fill in message->signature on load
7051
7052         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7053         characters, so they are relatively human-readable.
7054
7055 2003-10-11  Havoc Pennington  <hp@pobox.com>
7056
7057         * dbus/dbus-message.c (_dbus_message_test): add more test
7058         coverage, but #if 0 for now since they uncover a bug 
7059         not fixed yet; I think in re_align_field_recurse()
7060         (re_align_field_recurse): add FIXME about broken assertion
7061
7062         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7063
7064         * bus/connection.c: share a couple code bits with expirelist.c
7065
7066         * bus/expirelist.h, bus/expirelist.c: implement a generic
7067         expire-items-after-N-seconds facility, was going to share between
7068         expiring connections and replies, decided not to use for expiring
7069         connections for now.
7070
7071         * COPYING: include AFL 2.0 (still need to change all the file headers)
7072
7073 2003-10-09  Havoc Pennington  <hp@redhat.com>
7074
7075         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7076         gcc 3.3. Not that we do anything about it yet.
7077
7078         * bus/signals.c (bus_match_rule_parse): impose max length on the
7079         match rule text
7080
7081         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7082
7083 2003-10-09  Havoc Pennington  <hp@redhat.com>
7084
7085         Make matching rules theoretically work (add parser).
7086         
7087         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7088         the case where destination is explicitly specified as bus driver
7089         and someone else is eavesdropping.
7090         
7091         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7092         definition of eavesdropping and assertion
7093
7094         * tools/dbus-send.c (main): use dbus_message_type_from_string
7095
7096         * bus/signals.c (bus_match_rule_parse): implement
7097
7098         * dbus/dbus-message.c (dbus_message_type_from_string): new
7099
7100         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7101
7102 2003-10-02  Havoc Pennington  <hp@pobox.com>
7103
7104         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7105         dbus_gproxy_oneway_call
7106
7107         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7108         (dbus_server_setup_with_g_main): fix to allow calling them more
7109         than once on the same args
7110         (dbus_bus_get_with_g_main): new function
7111
7112 2003-10-02  Havoc Pennington  <hp@redhat.com>
7113
7114         * doc/dbus-tutorial.xml: write some stuff
7115
7116 2003-09-29  Havoc Pennington  <hp@pobox.com>
7117
7118         * configure.in: split checks for Doxygen from XML docs, check for
7119         xmlto
7120
7121         * doc/Makefile.am: XML-ify all the docs, and add a blank
7122         dbus-tutorial.xml
7123
7124 2003-09-29  Havoc Pennington  <hp@pobox.com>
7125
7126         * Merge dbus-object-names branch. To see the entire patch 
7127         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7128         it's huuuuge though.
7129         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7130         
7131 2003-09-28  Havoc Pennington  <hp@pobox.com>
7132
7133         * HACKING: update to reflect new server
7134
7135 2003-09-26  Seth Nickell  <seth@gnome.org>
7136
7137         * python/dbus.py:
7138         * python/examples/example-signals.py:
7139
7140         Start implementing some notions of signals. The API
7141         is really terrible, but they sort of work (with the
7142         exception of being able to filter by service, and to
7143         transmit signals *as* a particular service). Need to
7144         figure out how to make messages come from the service
7145         we registered :-(
7146         
7147         * python/dbus_bindings.pyx.in:
7148
7149         Removed duplicate message_handler callbacks.
7150         
7151 2003-09-25  Havoc Pennington  <hp@redhat.com>
7152
7153         * bus/session.conf.in: fix my mess
7154
7155 2003-09-25  Havoc Pennington  <hp@pobox.com>
7156
7157         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7158
7159 2003-09-25  Seth Nickell  <seth@gnome.org>
7160
7161         * python/examples/example-service.py:
7162
7163         Johan notices complete wrong code in example-service, but
7164         completely wrong in a way that works exactly the same (!).
7165         Johan is confused, how could this possibly work? Example
7166         code fails to serve purpose of making things clear.
7167         Seth fixes.
7168
7169 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7170
7171         * doc/dbus-specification.sgml: don't require header fields
7172         to be 4-byte aligned and specify that fields should be
7173         distinguished from padding by the fact that zero is not
7174         a valid field name.
7175         
7176         * doc/TODO: remove re-alignment item and add item to doc
7177         the OBJECT_PATH type.
7178         
7179         * dbus/dbus-message.c:
7180         (HeaderField): rename the original member to value_offset
7181         and introduce a name_offset member to keep track of where
7182         the field actually begins.
7183         (adjust_field_offsets): remove.
7184         (append_int_field), (append_uint_field),
7185         (append_string_field): don't align the start of the header
7186         field to a 4-byte boundary.
7187         (get_next_field): impl finding the next marhsalled field
7188         after a given field.
7189         (re_align_field_recurse): impl re-aligning a number of
7190         already marshalled fields.
7191         (delete_field): impl deleting a field of any type and
7192         re-aligning any following fields.
7193         (delete_int_or_uint_field), (delete_string_field): remove.
7194         (set_int_field), (set_uint_field): no need to re-check
7195         that we have the correct type for the field.
7196         (set_string_field): ditto and impl re-aligning any
7197         following fields.
7198         (decode_header_data): update to take into account that
7199         the fields aren't 4-byte aligned any more and the new
7200         way to distinguish padding from header fields. Also,
7201         don't exit when there is too much header padding.
7202         (process_test_subdir): print the directory.
7203         (_dbus_message_test): add test to make sure a following
7204         field is re-aligned correctly after field deletion.
7205         
7206         * dbus/dbus-string.[ch]:
7207         (_dbus_string_insert_bytes): rename from insert_byte and
7208         allow the insert of multiple bytes.
7209         (_dbus_string_test): test inserting multiple bytes.
7210
7211         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7212         warning note to docs about having to re-align any
7213         marshalled values following the string.
7214         
7215         * dbus/dbus-message-builder.c:
7216         (append_string_field), (_dbus_message_data_load):
7217         don't align the header field.
7218         
7219         * dbus/dbus-auth.c: (process_test_subdir): print the
7220         directory.
7221         
7222         * test/break-loader.c: (randomly_add_one_byte): upd. for
7223         insert_byte change.
7224         
7225         * test/data/invalid-messages/bad-header-field-alignment.message:
7226         new test case.
7227         
7228         * test/data/valid-messages/unknown-header-field.message: shove
7229         a dict in the unknown field.
7230
7231 2003-09-25  Seth Nickell  <seth@gnome.org>
7232
7233         * python/dbus.py:
7234         * python/dbus_bindings.pyx.in:
7235
7236         Handle return values.
7237         
7238         * python/examples/example-client.py:
7239         * python/examples/example-service.py:
7240
7241         Pass back return values from the service to the client.
7242         
7243 2003-09-24  Seth Nickell  <seth@gnome.org>
7244
7245         * python/dbus.py:
7246
7247         Connect Object methods (when you are sharing an object) up... pass
7248         in a list of methods to be shared. Sharing all the methods just
7249         worked out too weird. You can now create nice Services over the
7250         DBus in Python. :-)
7251         
7252         * python/dbus_bindings.pyx.in:
7253
7254         Keep references to user_data tuples passed into C functions so 
7255         Python doesn't garbage collect on us.
7256
7257         Implement MethodReturn and Error subclasses of Message for creating
7258         DBusMessage's of those types.
7259         
7260         * python/examples/example-client.py:
7261         * python/examples/example-service.py:
7262
7263         Simple example code showing both how create DBus services and objects,
7264         and how to use them.
7265
7266 2003-09-23  Havoc Pennington  <hp@pobox.com>
7267
7268         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7269
7270 2003-09-23  Havoc Pennington  <hp@redhat.com>
7271
7272         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7273         (dbus_gproxy_disconnect_signal): implement
7274         (dbus_gproxy_manager_remove_signal_match): implement
7275         (dbus_gproxy_manager_add_signal_match): implement
7276         (dbus_gproxy_oneway_call): implement
7277
7278 2003-09-23  Havoc Pennington  <hp@pobox.com>
7279
7280         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7281         subclass. This means dropping the transparent thread safety of the
7282         proxy; you now need a separate proxy per-thread, or your own
7283         locking on the proxy. Probably right anyway.
7284         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7285
7286 2003-09-22  Havoc Pennington  <hp@redhat.com>
7287
7288         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7289
7290 2003-09-21  Seth Nickell  <seth@gnome.org>
7291
7292         First checkin of the Python bindings.
7293         
7294         * python/.cvsignore:
7295         * python/Makefile.am:
7296         * python/dbus_bindings.pyx.in:
7297         * python/dbus_h_wrapper.h:
7298
7299         Pieces for Pyrex to operate on, building a dbus_bindings.so
7300         python module for low-level access to the DBus APIs.
7301         
7302         * python/dbus.py:
7303
7304         High-level Python module for accessing DBus objects.
7305
7306         * configure.in:
7307         * Makefile.am:
7308
7309         Build stuff for the python bindings.
7310
7311         * acinclude.m4:
7312
7313         Extra macro needed for finding the Python C header files.
7314
7315 2003-09-21  Havoc Pennington  <hp@pobox.com>
7316
7317         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7318         implementing the proxy manager, didn't get very far.
7319
7320         * dbus/dbus-bus.c (dbus_bus_add_match): new
7321         (dbus_bus_remove_match): new
7322
7323         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7324         path_name argument; adjust the other not-yet-implemented 
7325         gproxy constructors to be what I think they should be.
7326
7327 2003-09-21  Havoc Pennington  <hp@pobox.com>
7328
7329         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7330         by default for message bus connections.
7331
7332         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7333         exit_on_disconnect flag is set and we process the disconnected
7334         signal.
7335         (dbus_connection_set_exit_on_disconnect): new function
7336
7337 2003-09-21  Havoc Pennington  <hp@pobox.com>
7338
7339         Get matching rules mostly working in the bus; only actually
7340         parsing the rule text remains. However, the client side of
7341         "signal connections" hasn't been started, this patch is only the
7342         bus side.
7343         
7344         * dbus/dispatch.c: fix for the matching rules changes
7345         
7346         * bus/driver.c (bus_driver_handle_remove_match)
7347         (bus_driver_handle_add_match): send an ack reply from these
7348         method calls
7349
7350         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7351         arguments, reported by Seth Nickell
7352
7353         * bus/config-parser.c (append_rule_from_element): support
7354         eavesdrop=true|false attribute on policies so match rules 
7355         can be prevented from snooping on the system bus.
7356
7357         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7358         and "destination" in attribute names; fix some docs bugs; 
7359         add eavesdrop=true|false attribute
7360
7361         * bus/driver.c (bus_driver_handle_add_match)
7362         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7363         messages
7364
7365         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7366         rid of broadcast service concept, signals are just always broadcast
7367
7368         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7369         mostly implement matching rules stuff (currently only exposed as signal
7370         connections)
7371
7372 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7373
7374         * doc/dbus-specification.sgml: Change the header field name
7375         to be an enum and update the rest of the spec to reference
7376         the fields using the conventinal name.
7377
7378         * dbus/dbus-protocol.h: update to reflect the spec.
7379
7380         * doc/TODO: add item to remove the 4 byte alignment requirement.
7381         
7382         * dbus/dbus-message.c: Remove the code to generalise the
7383         header/body length and serial number header fields as named
7384         header fields so we can reference field names using the 
7385         protocol values.
7386         (append_int_field), (append_uint_field), (append_string_field):
7387         Append the field name as a byte rather than four chars.
7388         (delete_int_or_uint_field), (delete_string_field): reflect the
7389         fact that the field name and typecode now occupy 4 bytes instead
7390         of 8.
7391         (decode_string_field), (decode_header_data): update to reflect
7392         protocol changes and move the field specific encoding from
7393         decode_string_field() back into decode_header_data().
7394         
7395         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7396         Add utility to aid debugging.
7397         
7398         * dbus/dbus-message-builder.c:
7399         (append_string_field), (_dbus_message_data_load): Update to
7400         reflect protocol changes; Change the FIELD_NAME directive
7401         to HEADER_FIELD and allow it to take the field's conventional
7402         name rather than the actual value.
7403         
7404         * test/data/*/*.message: Update to use HEADER_FIELD instead
7405         of FIELD_NAME; Always align the header on an 8 byte boundary
7406         *before* updating the header length.
7407
7408 2003-09-15  Havoc Pennington  <hp@pobox.com>
7409
7410         * dbus/dbus-pending-call.c: add the get/set object data
7411         boilerplate as for DBusConnection, etc. Use generic object data
7412         for the notify callback.
7413
7414         * glib/dbus-gparser.c (parse_node): parse child nodes
7415
7416         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7417         
7418         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7419         contain functions shared between the convenience lib and the
7420         installed lib
7421
7422         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7423         -export-symbols-regex to the GLib library
7424
7425         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7426         fix the locking in here, and add a default handler for
7427         Introspect() that just returns sub-nodes.
7428
7429 2003-09-14  Havoc Pennington  <hp@pobox.com>
7430
7431         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7432         rather than gfoo consistent
7433
7434         * glib/dbus-gproxy.h: delete for now, move contents to
7435         dbus-glib.h, because the include files don't work right since we
7436         aren't in the dbus/ subdir.
7437         
7438         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7439         (dbus_gproxy_end_call): finish
7440         (dbus_gproxy_begin_call): finish
7441
7442         * glib/dbus-gmain.c (dbus_set_g_error): new
7443
7444         * glib/dbus-gobject.c (handle_introspect): include information
7445         about child nodes in the introspection
7446
7447         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7448         function to help in implementation of introspection
7449
7450         * dbus/dbus-object-tree.c
7451         (_dbus_object_tree_list_registered_and_unlock): new function
7452
7453 2003-09-12  Havoc Pennington  <hp@pobox.com>
7454
7455         * glib/dbus-gidl.h: add common base class for all the foo_info
7456         types
7457
7458         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7459         similar to kdcop
7460
7461         * test/Makefile.am: try test srcdir -ef . in addition to test
7462         srcdir = ., one of them should work (yeah lame)
7463         
7464         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7465         library
7466         
7467         * glib/dbus-gparser.h: make description_load routines return
7468         NodeInfo* not Parser*
7469
7470         * Makefile.am (SUBDIRS): build test dir after all library dirs
7471
7472         * configure.in: add GTK+ detection
7473
7474 2003-09-07  Havoc Pennington  <hp@pobox.com>
7475
7476         * Make Doxygen contented.
7477
7478 2003-09-07  Havoc Pennington  <hp@pobox.com>
7479
7480         * doc/dbus-specification.sgml: more updates
7481
7482 2003-09-06  Havoc Pennington  <hp@pobox.com>
7483
7484         * doc/dbus-specification.sgml: partial updates
7485
7486         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7487         zillionth time; hopefully I edited the right file this time.
7488
7489         * bus/config-parser.c (append_rule_from_element): support
7490         send_type, send_path, receive_type, receive_path
7491
7492         * bus/policy.c: add message type and path to the list of things
7493         that can be "firewalled"
7494
7495 2003-09-06  Havoc Pennington  <hp@pobox.com>
7496
7497         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7498         (dbus_connection_register_object_path): make this not handle
7499         messages to paths below the given path
7500
7501 2003-09-03  Havoc Pennington  <hp@pobox.com>
7502
7503         * test/glib/Makefile.am: add this with random glib-linked test
7504         programs
7505
7506         * glib/Makefile.am: remove the random test programs from here,
7507         leave only the unit tests
7508
7509         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7510         uscore/javacaps conversion, and fix     
7511         (get_object_property, set_object_property): change to .NET
7512         convention for mapping props to methods, set_FooBar/get_FooBar, 
7513         since one language has such a convention we may as well copy it. 
7514         Plus real methods in either getFooBar or get_foo_bar style won't 
7515         collide with this convention.
7516
7517 2003-09-01  Havoc Pennington  <hp@pobox.com>
7518
7519         * glib/dbus-gparser.c: implement
7520
7521         * glib/dbus-gobject.c: start implementing skeletons support
7522
7523         * configure.in: when disabling checks/assert, also define
7524         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7525
7526 2003-09-01  Havoc Pennington  <hp@pobox.com>
7527
7528         * glib/Makefile.am: rearrange a bunch of files and get "make
7529         check" framework set up
7530
7531 2003-08-31  Havoc Pennington  <hp@pobox.com>
7532
7533         * fix build with --disable-tests
7534
7535 2003-08-30  Havoc Pennington  <hp@pobox.com>
7536
7537         * dbus/dbus-connection.c: purge DBusMessageHandler
7538
7539         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7540         use callbacks everywhere
7541
7542 2003-08-30  Havoc Pennington  <hp@pobox.com>
7543
7544         * test/data/valid-config-files/system.d/test.conf: change to 
7545         root for the user so warnings don't get printed
7546
7547         * dbus/dbus-message.c: add dbus_message_get_path,
7548         dbus_message_set_path
7549         
7550         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7551         dispatching to a path
7552
7553         * dbus/dbus-string.c (_dbus_string_validate_path): add
7554
7555         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7556         (_dbus_marshal_object_path): implement
7557
7558         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7559         to contain the path to the target object
7560         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7561         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7562
7563 2003-08-30  Havoc Pennington  <hp@pobox.com>
7564
7565         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7566
7567 2003-08-29  Havoc Pennington  <hp@pobox.com>
7568
7569         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7570         registered
7571         (struct DBusObjectSubtree): shrink this
7572         a lot, since we may have a lot of them
7573         (_dbus_object_tree_free_all_unlocked): implement
7574         (_dbus_object_tree_dispatch_and_unlock): implement
7575
7576 2003-08-29  Havoc Pennington  <hp@pobox.com>
7577
7578         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7579
7580 2003-08-28  Havoc Pennington  <hp@pobox.com>
7581
7582         purge DBusObjectID
7583         
7584         * dbus/dbus-connection.c: port to no ObjectID, create a
7585         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7586
7587         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7588         everything except UnregisterFunction and MessageFunction
7589         
7590         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7591         add DBUS_TYPE_OBJECT_PATH
7592         
7593         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7594         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7595         path-based object IDs
7596
7597 2003-08-25  Havoc Pennington  <hp@pobox.com>
7598
7599         Just noticed that dbus_message_test is hosed, I wonder when I
7600         broke that. I thought make check was passing earlier...
7601         
7602         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7603         container tree, will replace most of dbus-object-registry
7604
7605         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7606         screwup
7607
7608 2003-08-19  Havoc Pennington  <hp@pobox.com>
7609
7610         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7611         (dbus_message_is_error): fix this function
7612
7613         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7614         match
7615
7616         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7617         reflect clarified man page
7618         (bus_client_policy_check_can_send): ditto
7619         
7620         * bus/session.conf.in: fixup
7621
7622         * bus/system.conf.in: fixup
7623
7624 2003-08-18  Havoc Pennington  <hp@redhat.com>
7625
7626         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7627
7628         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7629         dumb bug created earlier (wrong order of args to
7630         decode_header_data())
7631         
7632         * tools/dbus-send.c: port
7633
7634         * tools/dbus-print-message.c (print_message): port
7635
7636         * test/data/*messages: port all messages over
7637         
7638         * dbus/dbus-message-builder.c: support including 
7639         message type
7640         
7641         * bus/driver.c: port over
7642         
7643         * bus/dispatch.c: port over to new stuff
7644
7645         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7646         rename disconnect signal to "Disconnected"
7647
7648 2003-08-17  Havoc Pennington  <hp@pobox.com>
7649
7650         This doesn't compile yet, but syncing up so I can hack on it from
7651         work. What are branches for if not broken code? ;-)
7652         
7653         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7654         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7655         DBUS_HEADER_FIELD_ERROR_NAME
7656         
7657         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7658         for the interface+member pairs
7659         (string_hash): change to use g_str_hash algorithm
7660         (find_direct_function, find_string_function): refactor these to
7661         share most code.
7662         
7663         * dbus/dbus-message.c: port all of this over to support 
7664         interface/member fields instead of name field
7665
7666         * dbus/dbus-object-registry.c: port over
7667         
7668         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7669         from _dbus_string_validate_name
7670
7671         * bus/dbus-daemon-1.1: change file format for the 
7672         <deny>/<allow> stuff to match new message naming scheme
7673
7674         * bus/policy.c: port over
7675
7676         * bus/config-parser.c: parse new format
7677         
7678 2003-08-16  Havoc Pennington  <hp@pobox.com>
7679
7680         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7681         broken assertion
7682
7683         * glib/dbus-gproxy.c: some hacking
7684
7685 2003-08-15  Havoc Pennington  <hp@redhat.com>
7686
7687         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7688
7689         * dbus/dbus-connection.c
7690         (dbus_connection_send_with_reply_and_block): factor out internals;
7691         change to convert any error replies to DBusError instead of 
7692         returning them as a message
7693
7694 2003-08-15  Havoc Pennington  <hp@pobox.com>
7695
7696         * dbus/dbus-connection.c, 
7697         dbus/dbus-pending-call.c: Finish the pending call stuff
7698
7699 2003-08-14  Havoc Pennington  <hp@redhat.com>
7700
7701         * dbus/dbus-pending-call.c: start on new object that will replace
7702         DBusMessageHandler and ReplyHandlerData for tracking outstanding
7703         replies
7704
7705         * dbus/dbus-gproxy.c: start on proxy object used to communicate
7706         with remote interfaces
7707
7708         * dbus/dbus-gidl.c: do the boring boilerplate in here
7709         
7710 2003-08-12  Havoc Pennington  <hp@pobox.com>
7711
7712         * bus/dispatch.c (bus_dispatch): make this return proper 
7713         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7714
7715         * dbus/dbus-errors.c (dbus_set_error): use
7716         _dbus_string_append_printf_valist
7717
7718         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7719         (_dbus_string_append_printf): new
7720
7721         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7722         UNKNOWN_METHOD
7723
7724         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7725         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7726         message is unhandled.
7727
7728 2003-08-11  Havoc Pennington  <hp@pobox.com>
7729
7730         * bus/test.c (client_disconnect_handler): change to return
7731         HANDLED (would have been REMOVE_MESSAGE)
7732
7733         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7734         HANDLED/NOT_YET_HANDLED instead of
7735         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
7736         should be used.
7737
7738 2003-08-10  Havoc Pennington  <hp@pobox.com>
7739
7740         * tools/dbus-send.c (main): add --type argument, for now
7741         supporting only method_call and signal types.
7742
7743         * tools/dbus-print-message.c: print message type
7744
7745         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7746         init connection->objects
7747
7748         * doc/dbus-specification.sgml: fix sgml
7749
7750         * bus/*.c: port over to object-instance API changes
7751
7752         * test/test-service.c: ditto
7753         
7754         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7755         name, we will have to fix up the rest of the code to also handle
7756         this
7757         (dbus_message_new): generic message-creation call
7758         (set_string_field): allow appending name field
7759
7760 2003-08-06  Havoc Pennington  <hp@pobox.com>
7761
7762         * dbus/dbus-object-registry.c: implement signal connection 
7763         and dispatch
7764
7765         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7766
7767         * dbus/dbus-internals.c (_dbus_memdup): new function
7768
7769 2003-08-02  Havoc Pennington  <hp@pobox.com>
7770
7771         * dbus/dbus-message.c (dbus_message_get_no_reply)
7772         (dbus_message_set_no_reply): add these and remove
7773         set_is_error/get_is_error
7774
7775         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
7776         remove the ERROR flag, since there's now an ERROR type
7777
7778 2003-08-01  Havoc Pennington  <hp@pobox.com>
7779
7780         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7781         implement
7782
7783         * dbus/dbus-message.c (dbus_message_get_type): new function
7784
7785         * doc/dbus-specification.sgml: add "type" byte to messages
7786
7787 2003-08-01  Havoc Pennington  <hp@pobox.com>
7788
7789         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7790         a message type enum to distinguish kinds of message
7791         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
7792         that need not be replied to
7793
7794 2003-08-01  Havoc Pennington  <hp@pobox.com>
7795
7796         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7797         (unpack_8_octets): fix no-64-bit-int bug
7798
7799         * dbus/dbus-object-registry.c (validate_id): validate the 
7800         connection ID bits, not just the instance ID.
7801
7802         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7803         the connection-global 33 bits of the object ID
7804
7805         * dbus/dbus-object-registry.c (info_from_entry): fill in 
7806         object ID in the new way
7807
7808         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
7809         define server/client/instance bits.
7810
7811 2003-07-30  Havoc Pennington  <hp@pobox.com>
7812
7813         * dbus/dbus-connection.c (dbus_connection_register_object): fix
7814         build
7815
7816 2003-07-13  Havoc Pennington  <hp@pobox.com>
7817
7818         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7819         fields to DBusObjectVTable and DBusObjectInfo
7820
7821 2003-07-12  Havoc Pennington  <hp@pobox.com>
7822
7823         * dbus/dbus-object-registry.c: implement unit test,
7824         fix bugs discovered in process
7825
7826         * dbus/dbus-connection.c: remove handler_table and
7827         register_handler(), add DBusObjectRegistry usage
7828
7829         * dbus/dbus-objectid.c (dbus_object_id_is_null)
7830         (dbus_object_id_set_null): new functions
7831
7832 2003-07-08  Havoc Pennington  <hp@pobox.com>
7833
7834         * dbus/dbus-object.c: implement some of this
7835
7836         * dbus/dbus-object-registry.c
7837         (_dbus_object_registry_add_and_unlock): fill in the object_id out
7838         param
7839         (_dbus_object_registry_new): handle OOM
7840
7841 2003-07-08  Havoc Pennington  <hp@pobox.com>
7842
7843         * dbus/dbus-object.h: sketch out an API for registering objects
7844         with a connection, that allows us to use as little as 24 bytes
7845         per object and lets application code represent an object in 
7846         any conceivable way.
7847
7848         * dbus/dbus-object-registry.c: implement the hard bits of the
7849         DBusConnection aspect of object API. Not yet wired up.
7850         
7851 2003-07-06  Havoc Pennington  <hp@pobox.com>
7852
7853         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7854         (_dbus_marshal_object_id): new
7855         (_dbus_demarshal_object_id): new
7856         (_dbus_marshal_get_arg_end_pos): support object ID type, and
7857         consolidate identical switch cases. Don't conditionalize handling
7858         of DBUS_TYPE_UINT64, need to handle the type always.
7859         (_dbus_marshal_validate_arg): consolidate identical cases, and
7860         handle DBUS_TYPE_OBJECT_ID
7861
7862         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7863
7864         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7865
7866 2003-09-28  Havoc Pennington  <hp@pobox.com>
7867
7868         * real 0.13 release
7869
7870 2003-09-28  Havoc Pennington  <hp@pobox.com>
7871
7872         * doc/Makefile.am (dbus-specification.html): testing a funky hack
7873         to work with Debian db2html
7874
7875 2003-09-28  Havoc Pennington  <hp@pobox.com>
7876
7877         * configure.in: 0.13
7878
7879         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7880         stylesheet-images for benefit of Debian
7881         
7882         Change back to using filesystem-linked sockets for the system
7883         bus, so only root can create the default system bus address.
7884         
7885         * bus/system.conf.in: change to use
7886         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7887
7888         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7889         from here.
7890
7891         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7892         here, and AC_DEFINE DBUS_SYSTEM_PATH
7893
7894 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7895
7896         * doc/TODO:
7897         * doc/busconfig.dtd:
7898         Add busconfig DTD.
7899         
7900 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7901
7902         * doc/dbus-specification.sgml:
7903         Add activation reply values.
7904         
7905 2003-08-05  Havoc Pennington  <hp@redhat.com>
7906
7907         * configure.in: 0.12
7908
7909 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
7910
7911         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7912         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7913         (add_watch), (remove_watch), (create_source):
7914         Refcount fds, fixes some reentrancy issues.
7915         
7916 2003-07-30  Havoc Pennington  <hp@redhat.com>
7917
7918         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7919         bus address to be abstract if we have abstract sockets
7920
7921         * NEWS: update
7922
7923 2003-07-28  Havoc Pennington  <hp@redhat.com>
7924
7925         * bus/messagebus.in: fix to avoid processname/servicename 
7926         confusion, from Michael Kearey
7927         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7928         
7929 2003-07-23  Havoc Pennington  <hp@pobox.com>
7930
7931         * dbus/dbus-message.c (dbus_message_iter_get_named): 
7932         fix from Andy Hanton to remove broken "+1"
7933
7934 2003-07-16  Havoc Pennington  <hp@pobox.com>
7935
7936         * tools/dbus-launch.c (babysit): close stdout/stderr in the
7937         babysitter process, as suggested by Thomas Leonard, so 
7938         an "eval `dbus-launch --exit-with-session`" will actually 
7939         return
7940
7941 2003-07-16  Havoc Pennington  <hp@pobox.com>
7942
7943         * configure.in: print out EXPANDED_* variables in the summary at
7944         the end; clean up the code that computes EXPANDED_ variables and
7945         get the ones using exec_prefix right. Should make things work
7946         when you build without --prefix
7947
7948 2003-06-29  Havoc Pennington  <hp@pobox.com>
7949
7950         * mono/Test.cs (class Test): fire up a main loop and run it
7951
7952         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
7953         done once, the app has to do it
7954
7955 2003-06-26  Havoc Pennington  <hp@pobox.com>
7956
7957         * mono/Connection.cs: set up connection with the glib main loop
7958
7959 2003-07-01  Havoc Pennington  <hp@redhat.com>
7960
7961         * doc/dbus-specification.sgml: clarify the format of a type code,
7962         change suggested by Jim Blandy
7963
7964 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
7965
7966         * doc/Makefile.am:
7967         * tools/Makefile.am: Don't assume srcdir == builddir.
7968
7969         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
7970         the allocated block.
7971         (_dbus_memory_test): New function.
7972         * dbus/dbus-test.h: Add _dbus_memory_test ().
7973         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
7974
7975         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
7976         of %c%c%c%c.
7977         (dbus_message_new): Remove obsolete @todo.
7978
7979         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
7980         (_dbus_marshal_set_uint64): Fix comment.
7981
7982         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
7983         hardcode FIELD_REPLY_SERIAL.
7984
7985         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
7986         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
7987
7988         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
7989         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
7990
7991 2003-06-24  Havoc Pennington  <hp@pobox.com>
7992
7993         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
7994
7995 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
7996
7997         * configure.in:
7998         * gcj/.cvsignore:
7999         * gcj/Hello.java:
8000         * gcj/Makefile.am:
8001         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8002         * gcj/org/.cvsignore:
8003         * gcj/org/Makefile.am:
8004         * gcj/org/freedesktop/.cvsignore:
8005         * gcj/org/freedesktop/Makefile.am:
8006         * gcj/org/freedesktop/dbus/.cvsignore:
8007         * gcj/org/freedesktop/dbus/Makefile.am:
8008         * gcj/org/freedesktop/dbus/Message.java: (Message),
8009         (Message.Message):
8010         * gcj/org/freedesktop/dbus/natMessage.cc:
8011         Fix the build system.
8012
8013 2003-06-22  Havoc Pennington  <hp@pobox.com>
8014
8015         * mono/Connection.cs: add more bindings
8016
8017         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8018         more than once.
8019
8020 2003-06-22  Havoc Pennington  <hp@pobox.com>
8021
8022         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8023         Start wrapping more stuff.
8024
8025 2003-06-22  Havoc Pennington  <hp@pobox.com>
8026
8027         * mono/Message.cs: implement Message.Wrap() that ensures we only
8028         have a single C# wrapper per DBusMessage, assuming it works which
8029         it probably doesn't.
8030
8031         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8032         (dbus_message_free_data_slot): new
8033         (dbus_message_set_data): new
8034         (dbus_message_get_data): new
8035
8036 2003-06-22  Havoc Pennington  <hp@pobox.com>
8037
8038         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8039         (_dbus_data_slot_allocator_alloc): rework these to keep a
8040         reference count on each slot and automatically manage a global
8041         slot ID variable passed in by address
8042
8043         * bus/bus.c: convert to new dataslot API
8044
8045         * dbus/dbus-bus.c: convert to new dataslot API
8046
8047         * dbus/dbus-connection.c: convert to new dataslot API
8048
8049         * dbus/dbus-server.c: convert to new dataslot API
8050
8051         * glib/dbus-gmain.c: ditto
8052
8053         * bus/test.c: ditto
8054
8055         * bus/connection.c: ditto
8056
8057 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8058
8059         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8060         after the gcj checks so that the correct configuration tags
8061         will be added to libtool.
8062
8063         * dbus-glib-1.pc.in: No need to specify any includes since
8064         dbus-1.pc.in has those.
8065
8066 2003-06-22  Havoc Pennington  <hp@pobox.com>
8067
8068         * mono/*, gcj/*, configure.in, Makefile.am:
8069         Check in makefiles and subdirs for mono and gcj bindings.
8070         Neither binding actually exists, just trying to get through
8071         all the build and other boring bits.
8072
8073 2003-06-21  Philip Blundell  <philb@gnu.org>
8074
8075         * tools/dbus-monitor.1: Updated.
8076
8077         * tools/dbus-send.1: Likewise.
8078
8079 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8080
8081         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8082         for hangup and error after checking read so we won't discard
8083         pending data if both hangup and read are set.
8084
8085 2003-06-19  Philip Blundell  <philb@gnu.org>
8086
8087         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8088
8089         * tools/dbus-send.c: Accept both --system and --session.
8090
8091         * tools/dbus-monitor.c: Same here.
8092
8093 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8094
8095         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8096         from C++ (Patch by Miloslav Trmac).
8097
8098 2003-06-15  Joe Shaw  <joe@assbarn.com>
8099
8100         * configure.in: Check for socklen_t.
8101
8102         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8103
8104         * test/test-segfault.c: Add #include <sys/time.h>
8105
8106         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8107         dbus-launch needs it.
8108
8109 2003-06-09  Havoc Pennington  <hp@redhat.com>
8110
8111         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8112         SUN_LEN, it breaks abstract socket usage
8113
8114         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8115         starts of lines.
8116
8117 2003-06-04  Havoc Pennington  <hp@pobox.com>
8118
8119         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8120         using unix:abstract=/foo, and when listening in a tmpdir
8121         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8122
8123         * dbus/dbus-transport.c (_dbus_transport_open): support
8124         unix:abstract=/foo
8125
8126         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8127         support abstract sockets
8128
8129         * dbus/dbus-transport-unix.c
8130         (_dbus_transport_new_for_domain_socket): support abstract sockets
8131
8132         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8133         toggle as an argument, implement abstract namespace support
8134         (_dbus_listen_unix_socket): ditto
8135
8136         * configure.in: add --enable-abstract-sockets and implement
8137         a configure check for autodetection of the right value.
8138
8139 2003-06-01  Havoc Pennington  <hp@pobox.com>
8140
8141         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8142         in /tmp (though on Linux this will end up being useless,
8143         when we add abstract namespace support)
8144
8145         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8146         subst'ing it
8147
8148 2003-05-28  Colin Walters  <walters@verbum.org>
8149
8150         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8151
8152 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8153
8154         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8155
8156 2003-05-17  Colin Walters  <walters@gnu.org>
8157
8158         * tools/dbus-send.c: Don't exit with an error code if --help was
8159         passed.  Default to using the session bus instead of the system
8160         one.
8161
8162         * tools/dbus-launch.c: Ditto.
8163
8164         * tools/dbus-monitor.c: Ditto.
8165
8166         * tools/dbus-send.1: Update with new arguments.
8167
8168         * tools/dbus-launch.c: Emit code to export variables.  New
8169         arguments -s and -c to specify shell syntax, and a bit of code to
8170         autodetect syntax.  Also, allow specifying a program to run.
8171
8172         * tools/dbus-launch.1: Update with new arguments.
8173
8174         * tools/dbus-send.1: Ditto.
8175
8176         * tools/dbus-monitor.1: Ditto.
8177
8178 2003-05-17  Havoc Pennington  <hp@pobox.com>
8179
8180         * bus/config-parser.c (merge_included): merge in policies from
8181         child configuration file.
8182
8183         * bus/policy.c (bus_policy_merge): function to merge two policies
8184         together
8185
8186 2003-05-16  Havoc Pennington  <hp@redhat.com>
8187
8188         * dbus/dbus-connection.c: disable verbose lock spew
8189
8190         * tools/dbus-send.c: add --print-reply command line option
8191
8192         * tools/dbus-print-message.h (print_message): new util function
8193         shared by dbus-send and dbus-monitor
8194
8195         * tools/dbus-monitor.c (handler_func): exit on disconnect
8196
8197         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8198         disconnected, don't try to use the read_watch
8199
8200         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8201         so we can find this bug more easily
8202
8203 2003-05-16  Havoc Pennington  <hp@redhat.com>
8204
8205         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8206         NULL as DBusHashTable is annoyingly likely to do.
8207
8208 2003-05-16  Colin Walters  <walters@verbum.org>
8209
8210         * tools/dbus-monitor.c: Add --session argument and usage()
8211         function.
8212
8213         * tools/dbus-monitor.1: Update with new --session arg.
8214
8215         * bus/Makefile.am (install-data-hook): Create
8216         $(libdir)/dbus-1.0/services so that the session bus is happy.
8217
8218 2003-05-15  Havoc Pennington  <hp@redhat.com>
8219
8220         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8221         on non-x86. ifdef's are evil.
8222
8223 2003-05-15  Havoc Pennington  <hp@redhat.com>
8224
8225         * configure.in: 0.11
8226
8227         * NEWS: update
8228
8229         * bus/Makefile.am (initddir): apparently we are supposed to put
8230         init scripts in /etc/rc.d/init.d not /etc/init.d
8231
8232         * bus/Makefile.am: remove the "you must --enable-tests to make
8233         check" as it broke distcheck
8234
8235         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8236
8237 2003-05-13  James Willcox  <jwillcox@gnome.org>
8238
8239         * configure.in:
8240         * bus/activation.c: (bus_activation_service_created),
8241         (bus_activation_activate_service):
8242         * bus/driver.c: (bus_driver_send_service_deleted),
8243         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8244         (bus_driver_send_service_acquired),
8245         (bus_driver_send_welcome_message),
8246         (bus_driver_handle_list_services):
8247         * bus/session.conf.in:
8248         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8249         (dbus_bus_service_exists), (dbus_bus_activate_service):
8250         * dbus/dbus-bus.h:
8251
8252         Add some convenience API which lets you activate a service, and did a
8253         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8254         and dbus_message_get_args()
8255
8256 2003-05-11  Havoc Pennington  <hp@pobox.com>
8257
8258         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8259         calling _dbus_marshal_validate_arg() for every byte in a byte
8260         array, etc.
8261
8262         * dbus/dbus-message-handler.c: use atomic reference counting to
8263         reduce number of locks slightly; the global lock in here sucks
8264
8265         * dbus/dbus-connection.c
8266         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8267         update_dispatch_status that can be called with lock held; then use
8268         in a couple places to reduce locking/unlocking
8269         (dbus_connection_send): hold the lock over the whole function
8270         instead of acquiring it twice.
8271
8272         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8273
8274         * bus/connection.c (bus_connections_setup_connection): fix access
8275         to already-freed memory.
8276
8277         * dbus/dbus-connection.c: keep a little cache of linked list
8278         nodes, to avoid using the global linked list alloc lock in the
8279         normal send-message case. Instead we just use the connection lock
8280         that we already have to take.
8281
8282         * dbus/dbus-list.c (_dbus_list_find_last): new function
8283
8284         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8285         change to use a struct for the atomic type; fix docs,
8286         they return value before increment, not after increment.
8287
8288         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8289         (_dbus_string_append_8_aligned): new functions to try to
8290         microoptimize this operation.
8291         (reallocate_for_length): break this out of set_length(), to
8292         improve profile info, and also so we can consider inlining the
8293         set_length() part.
8294
8295         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8296         strings with some preallocation, cuts down on our calls to realloc
8297         a fair bit. Though if we can get the "move entire string to empty
8298         string" optimization below to kick in here, it would be better.
8299
8300         * dbus/dbus-string.c (_dbus_string_move): just call
8301         _dbus_string_move_len
8302         (_dbus_string_move_len): add a special case for moving
8303         an entire string into an empty string; we can just
8304         swap the string data instead of doing any reallocs.
8305         (_dbus_string_init_preallocated): new function
8306
8307 2003-05-11  Havoc Pennington  <hp@pobox.com>
8308
8309         Write a "test-profile" that does echo client-server with threads;
8310         profile reveals lock contention, memcpy/realloc of buffers, and
8311         UTF-8 validation as hot spots. 20% of lock contention eliminated
8312         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8313         contention is global mempool locks for GList and DBusList.
8314
8315         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8316         x86 implementation
8317
8318         * dbus/dbus-connection.c (struct DBusConnection): use
8319         dbus_atomic_t for the reference count
8320
8321         * dbus/dbus-message.c (struct DBusMessage): declare
8322         dbus_atomic_t values as volatile
8323
8324         * configure.in: code to detect ability to use atomic integer
8325         operations in assembly, from GLib patch
8326
8327         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8328         time, tired of it being wrong in threads and forked processes
8329
8330         * glib/test-profile.c: a little program to bounce messages back
8331         and forth between threads and eat CPU
8332
8333         * dbus/dbus-connection.c: add debug spew macros for debugging
8334         thread locks; include config.h at top; fix deadlock in
8335         dbus_connection_flush()
8336
8337 2003-05-08  Havoc Pennington  <hp@pobox.com>
8338
8339         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8340         data from getting written, and there wasn't a good reason to
8341         use _exit really.
8342
8343         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8344         dbus_verbose lines in test coverage
8345         (main): add list of functions sorted by # of untested blocks
8346         to the coverage report
8347
8348         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8349
8350         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8351
8352         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8353         extend test coverage
8354
8355         * test/data/auth/cancel.auth-script: test canceling an
8356         authentication
8357
8358         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8359         aren't used. in CVS history if we end up needing them.
8360
8361 2003-05-04  Havoc Pennington  <hp@pobox.com>
8362
8363         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8364         unit test
8365
8366         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8367         function, which assumed length was in # of strings, not bytes
8368
8369         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8370         missing coverage
8371
8372         * dbus/dbus-connection.c
8373         (_dbus_connection_queue_received_message): disable function for
8374         now, we are only using it in test mode
8375
8376         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8377         remove a mistaken FIXME
8378
8379 2003-05-04  Havoc Pennington  <hp@pobox.com>
8380
8381         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8382         unlock mutex on successful return, patch from Anders Gustafsson
8383
8384 2003-05-04  Havoc Pennington  <hp@pobox.com>
8385
8386         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8387         Anders Gustafsson
8388
8389 2003-05-04  Havoc Pennington  <hp@pobox.com>
8390
8391         * tools/dbus-launch.c: implement
8392
8393         * bus/main.c (main), bus/bus.c (bus_context_new):
8394         implement --print-pid and --fork
8395
8396 2003-05-03  Havoc Pennington  <hp@redhat.com>
8397
8398         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8399         the address had no value, and add to test suite. Fix and
8400         regression test from Miloslav Trmac
8401
8402 2003-05-03  Havoc Pennington  <hp@pobox.com>
8403
8404         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8405         watch is invalid when handled
8406
8407         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8408         dbus-launch utility to launch the bus from a shell script.  Didn't
8409         actually implement dbus-launch yet, it's just a placeholder still.
8410
8411 2003-05-03  Havoc Pennington  <hp@pobox.com>
8412
8413         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8414         daemon; also documents daemon config file, so replaces
8415         doc/config-file.txt. Corrected some stuff from config-file.txt in
8416         the process of moving it.
8417
8418 2003-05-03  Havoc Pennington  <hp@pobox.com>
8419
8420         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8421         add some man pages
8422
8423 2003-05-03  Colin Walters  <walters@verbum.org>
8424
8425         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8426         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8427
8428         * Makefile.am: Update to use new .pc versioning scheme.
8429
8430 2003-05-02  Havoc Pennington  <hp@redhat.com>
8431
8432         * bus/system.conf.in: allow send/receive to/from message bus
8433         service
8434
8435 2003-04-30  Havoc Pennington  <hp@redhat.com>
8436
8437         * configure.in: print a note when building with unit tests and
8438         without assertions
8439
8440 2003-04-30  Havoc Pennington  <hp@redhat.com>
8441
8442         * Makefile.am: add a check-local that complains if you didn't
8443         configure with --enable-tests
8444
8445 2003-04-29  Havoc Pennington  <hp@redhat.com>
8446
8447         * glib/dbus-gmain.c: docs cleanups
8448
8449         * dbus/dbus-types.h: add docs on int64 types
8450
8451         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8452         public API docs section
8453
8454 2003-04-29  Havoc Pennington  <hp@redhat.com>
8455
8456         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8457         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8458         parallel install API version, not with the D-BUS package version.
8459
8460         * HACKING: move some of README over here
8461
8462         * README: updates, and document API/ABI policy
8463
8464         * configure.in: reindentation
8465
8466 2003-04-29  Havoc Pennington  <hp@redhat.com>
8467
8468         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8469         to use this library" to be sure people have the right
8470         expectations.
8471
8472 2003-04-28  Havoc Pennington  <hp@redhat.com>
8473
8474         * configure.in: add --enable-docs which by default is auto yes if
8475         doxygen and db2html found, no otherwise; but can be forced on/off
8476
8477         * doc/Makefile.am: conditionalize whether to build docs on
8478         --enable-docs
8479
8480 2003-04-28  Havoc Pennington  <hp@redhat.com>
8481
8482         * configure.in: 0.10
8483
8484         * NEWS: update
8485
8486         * bus/system.conf.in: add <includedir>system.d</includedir>
8487
8488         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8489         username was provided but not uid
8490
8491         * bus/config-parser.c (struct BusConfigParser): keep track of
8492         whether the parser is toplevel or was included; change some
8493         of the error handling if it's included.
8494
8495 2003-04-27  Havoc Pennington  <hp@pobox.com>
8496
8497         Unbreak my code...
8498
8499         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8500         report correct status if we finish processing authentication
8501         inside this function.
8502
8503         * bus/activation.c (try_send_activation_failure): use
8504         bus_transaction_send_error_reply
8505
8506         * bus/connection.c (bus_connection_get_groups): return an error
8507         explaining the problem
8508
8509         * bus/bus.c (bus_context_check_security_policy): implement
8510         restriction here that inactive connections can only send the
8511         hello message. Also, allow bus driver to send anything to
8512         any recipient.
8513
8514         * bus/connection.c (bus_connection_complete): create the
8515         BusClientPolicy here instead of on-demand.
8516         (bus_connection_get_policy): don't return an error
8517
8518         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8519         sender field in message being replied to
8520
8521         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8522         causing it to return FALSE always
8523
8524         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8525         we checked sender rather than destination
8526
8527 2003-04-25  Havoc Pennington  <hp@redhat.com>
8528
8529         test suite is slightly hosed at the moment, will fix soon
8530
8531         * bus/connection.c (bus_connections_expire_incomplete): fix to
8532         properly disable the timeout when required
8533         (bus_connection_set_name): check whether we can remove incomplete
8534         connections timeout after we complete each connection.
8535
8536         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8537         probably still broken.
8538
8539         * bus/services.c (bus_registry_acquire_service): implement max
8540         number of services owned, and honor allow/deny rules on which
8541         services a connection can own.
8542
8543         * bus/connection.c (bus_connection_get_policy): report errors here
8544
8545         * bus/activation.c: implement limit on number of pending
8546         activations
8547
8548 2003-04-25  Havoc Pennington  <hp@redhat.com>
8549
8550         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8551         where we used >= 0 instead of != DBUS_UID_UNSET.
8552
8553 2003-04-25  Havoc Pennington  <hp@redhat.com>
8554
8555         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8556         were toggled without add/remove, fix from Anders Gustafsson
8557
8558 2003-04-24  Havoc Pennington  <hp@redhat.com>
8559
8560         * test/data/valid-config-files/basic.conf: add <limit> tags to
8561         this test
8562
8563         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8564         <limit> tag in configuration file.
8565
8566 2003-04-24  Havoc Pennington  <hp@redhat.com>
8567
8568         * bus/dispatch.c: somehow missed some name_is
8569
8570         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8571         (_dbus_timeout_set_interval): new
8572
8573         * bus/connection.c (bus_connections_setup_connection): record time
8574         when each connection is first set up, and expire them after the
8575         auth timeout passes.
8576
8577 2003-04-24  Havoc Pennington  <hp@redhat.com>
8578
8579         * dbus/dbus-message.c (dbus_message_name_is): rename
8580         (dbus_message_service_is): rename
8581         (dbus_message_sender_is): rename
8582         (dbus_message_get_service): rename
8583
8584 2003-04-24  Havoc Pennington  <hp@redhat.com>
8585
8586         * configure.in: add --enable-checks
8587
8588         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8589
8590         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8591         to use thread locks.
8592         (_dbus_connection_handler_destroyed_locked): move some private
8593         functions into proper docs group
8594
8595         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8596         _dbus_return_val_if_fail
8597
8598         Throughout: use dbus_return_if_fail
8599
8600 2003-04-23  James Willcox  <jwillcox@gnome.org>
8601
8602         * glib/dbus-glib.h:
8603         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8604         (dbus_connection_setup_with_g_main),
8605         (dbus_server_setup_with_g_main):
8606         * glib/test-dbus-glib.c: (main):
8607         * glib/test-thread-client.c: (main):
8608         * glib/test-thread-server.c: (new_connection_callback), (main):
8609         * tools/dbus-monitor.c: (main):
8610
8611         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8612         and dbus_server_setup_with_g_main().
8613
8614 2003-04-20  Havoc Pennington  <hp@pobox.com>
8615
8616         * doc/dbus-specification.sgml: document the restrictions on
8617         message and service names
8618
8619 2003-04-22  Havoc Pennington  <hp@redhat.com>
8620
8621         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8622         support, and do some code cleanups to share more code and
8623         speed up array marshal/demarshal.
8624
8625         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8626
8627         * configure.in: generate dbus-arch-deps.h
8628
8629         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8630         64-bit typecodes
8631
8632 2003-04-22  Havoc Pennington  <hp@redhat.com>
8633
8634         * test/data/valid-messages/opposite-endian.message: fix test
8635         to use proper type for rply field
8636
8637         * test/data/invalid-messages: add tests for below validation
8638
8639         * dbus/dbus-message.c (decode_header_data): validate field types,
8640         and validate that named fields are valid names
8641         (decode_name_field): consider messages in the
8642         org.freedesktop.Local. namespace to be invalid.
8643
8644         * dbus/dbus-string.c (_dbus_string_validate_name): new
8645
8646 2003-04-19  Havoc Pennington  <hp@pobox.com>
8647
8648         * bus/driver.c (bus_driver_handle_hello): check limits and
8649         return an error if they are exceeded.
8650
8651         * bus/connection.c: maintain separate lists of active and inactive
8652         connections, and a count of each. Maintain count of completed
8653         connections per user. Implement code to check connection limits.
8654
8655         * dbus/dbus-list.c (_dbus_list_unlink): export
8656
8657         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8658         number of bytes in the message queue for a connection
8659
8660 2003-04-18  Havoc Pennington  <hp@pobox.com>
8661
8662         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8663
8664         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8665         memleaks
8666
8667         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8668         on realloc be sure to update the pointer in the keyring
8669
8670         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8671         offset to avoid writing to unallocated memory
8672
8673         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8674         try the next mechanism, so we properly handle OOM
8675
8676         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8677         on OOM.
8678         (_dbus_keyring_new): fix OOM bug
8679         (_dbus_keyring_new_homedir): always set error; impose a maximum
8680         number of keys we'll load from the file, mostly to speed up the
8681         test suite and make its OOM checks more useful, but also for
8682         general sanity.
8683
8684         * dbus/dbus-auth.c (process_error_server): reject authentication
8685         if we get an error from the client
8686         (process_cancel): on cancel, send REJECTED, per the spec
8687         (process_error_client): send CANCEL if we get an error from the
8688         server.
8689
8690 2003-04-18  Havoc Pennington  <hp@pobox.com>
8691
8692         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8693         debug spew
8694
8695         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8696         handling problem
8697
8698         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8699         about DBUS_TEST_HOMEDIR once
8700
8701         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8702         the environment
8703
8704         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8705         config file so we test the right thing
8706
8707         Throughout: assorted docs improvements
8708
8709 2003-04-18  Havoc Pennington  <hp@pobox.com>
8710
8711         * glib/dbus-gmain.c: adapt to watch changes
8712
8713         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8714
8715         * dbus/dbus-server.h: remove dbus_server_handle_watch
8716
8717         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8718
8719         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8720         like DBusTimeout, so we don't need dbus_connection_handle_watch
8721         etc.
8722
8723 2003-04-17  Havoc Pennington  <hp@redhat.com>
8724
8725         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8726         database usage so it all goes via the DBusUserDatabase cache.
8727
8728 2003-04-17  Havoc Pennington  <hp@redhat.com>
8729
8730         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8731         there was an OOM watch we skipped, we always return TRUE so we
8732         iterate again to have a look at it again. Fixes test suite hang.
8733         Code rearrangement also lets us lose some memset and only iterate
8734         over callbacks once.
8735
8736         * bus/driver.c (bus_driver_handle_message): sense of test for
8737         reply was backward
8738
8739 2003-04-16  Havoc Pennington  <hp@pobox.com>
8740
8741         * doc/dbus-specification.sgml: make spec say serials are unsigned
8742
8743         * dbus/dbus-message.h: change message serials to unsigned
8744
8745         * dbus/dbus-connection.c: adapt to message serials being unsigned
8746
8747 2003-04-15  Havoc Pennington  <hp@pobox.com>
8748
8749         * bus/bus.c: create and keep around a shared DBusUserDatabase
8750         object.
8751
8752         * bus/connection.c (bus_connection_get_groups): don't cache
8753         groups for user in the connection object, since user database
8754         object now does that.
8755
8756 2003-04-16  Havoc Pennington  <hp@redhat.com>
8757
8758         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8759         list of size counters
8760         (_dbus_message_loader_putback_message_link): put back a popped link
8761
8762         * dbus/dbus-connection.c
8763         (dbus_connection_set_max_live_messages_size): rename
8764         max_received_size
8765         (dbus_connection_get_outgoing_size): get size of outgoing
8766         queue
8767         (_dbus_connection_set_connection_counter): remove this cruft
8768
8769 2003-04-14  Havoc Pennington  <hp@redhat.com>
8770
8771         * dbus/dbus-userdb.c: user database abstraction, mostly to get
8772         caching, but at some point we might want to be able to use a
8773         different database.
8774
8775         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8776         SHA1 conf file to test the sha1 auth mechanism, since the regular
8777         test always uses EXTERNAL when available.
8778
8779         * configure.in,
8780         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8781         add conf file that requires use of sha1 auth
8782
8783 2003-04-13  Havoc Pennington  <hp@pobox.com>
8784
8785         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8786         from Philip Blundell to send messages and monitor them.
8787
8788 2003-04-13  Havoc Pennington  <hp@pobox.com>
8789
8790         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8791         callbacks
8792
8793         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8794         users
8795
8796         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8797         fix to only recover unused bytes if we're already authenticated
8798         (_dbus_transport_get_is_authenticated): fix to still mark us
8799         authenticated if there are unused bytes.
8800
8801         * bus/dispatch.c: implement security policy checking
8802
8803         * bus/connection.c (bus_transaction_send_from_driver): new
8804
8805         * bus/bus.c (bus_context_check_security_policy): new
8806
8807         * bus/dispatch.c (send_service_nonexistent_error): delete this,
8808         now we just set the DBusError and it gets converted to an error
8809         reply.
8810
8811         * bus/connection.c (allow_user_function): enable code using actual
8812         data from the config file
8813
8814         * bus/policy.c (list_allows_user): handle wildcard rules for
8815         user/group connection perms
8816
8817 2003-04-13  Havoc Pennington  <hp@pobox.com>
8818
8819         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8820
8821         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8822
8823         * bus/policy.c (bus_policy_append_mandatory_rule)
8824         (bus_policy_append_default_rule, bus_policy_append_user_rule)
8825         (bus_policy_append_group_rule): new functions
8826
8827 2003-04-12  Havoc Pennington  <hp@pobox.com>
8828
8829         * bus/config-parser.c (bus_config_parser_new): fix a memleak
8830
8831         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8832         the pid/gid/uid, just for paranoia.
8833
8834         * test/break-loader.c (randomly_do_n_things): find a byte
8835         containing a type code, and randomly change it to a different
8836         type code.
8837
8838 2003-04-12  Havoc Pennington  <hp@pobox.com>
8839
8840         * bus/policy.h: change BusPolicy to be the thing from the config
8841         file, and rename old BusPolicy to BusClientPolicy
8842
8843         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8844         match change in how policy works
8845
8846         * dbus/dbus-internals.h: mark assert_not_reached as
8847         __attribute((noreturn))__
8848
8849 2003-04-11  Havoc Pennington  <hp@redhat.com>
8850
8851         * doc/dbus-specification.sgml: fix a spot with the wrong name for
8852         the broadcast service. Use boolean return for ServiceExists.
8853
8854 2003-04-11  Havoc Pennington  <hp@redhat.com>
8855
8856         * configure.in: add another directory to look for qt in.
8857
8858 2003-04-11  Havoc Pennington  <hp@redhat.com>
8859
8860         * AUTHORS: add Colin Walters
8861
8862 2003-04-11  Havoc Pennington  <hp@redhat.com>
8863
8864         * NEWS: update
8865
8866         * configure.in: 0.9
8867
8868 2003-04-11  Havoc Pennington  <hp@redhat.com>
8869
8870         * bus/messagebus.in: remove pid file when stopping the
8871         message bus, since the bus won't have privileges to remove it
8872         itself.
8873
8874 2003-04-11  Havoc Pennington  <hp@redhat.com>
8875
8876         * bus/bus.c (bus_context_new): move credentials change after
8877         creating pidfile
8878
8879 2003-04-11  Havoc Pennington  <hp@pobox.com>
8880
8881         * test/decode-gcov.c: add "below average functions" to the
8882         coverage report, and change how some of the code works.
8883
8884         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8885         not in the coverage stats.
8886
8887         * test/test-service.c (main): use _dbus_verbose not fprintf in a
8888         couple places so running the test suite doesn't result in megaspam.
8889
8890 2003-04-11  Havoc Pennington  <hp@pobox.com>
8891
8892         * bus/dispatch.c (check_existent_service_activation): accept a no
8893         memory error in a place we didn't before
8894
8895         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8896         in case the first one failed," since the test suite is less
8897         broken now.
8898
8899 2003-04-10  Havoc Pennington  <hp@pobox.com>
8900
8901         * bus/dispatch.c (check_segfault_service_activation): add test
8902         for launching an executable that just crashes.
8903
8904         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8905         don't leave a million cores. We'll see how portable this is.
8906
8907 2003-04-10  Havoc Pennington  <hp@pobox.com>
8908
8909         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8910         the possible parent failures before we fork, so that we don't
8911         fail to create a babysitter after creating the child.
8912
8913         * bus/activation.c (bus_activation_activate_service): kill child
8914         if we don't successfully complete the activation.
8915
8916 2003-04-10  Havoc Pennington  <hp@redhat.com>
8917
8918         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8919         the connection if it's disconnected
8920
8921         * bus/activation.c (bus_activation_service_created): use new
8922         transaction features to roll back removal of pending activation if
8923         we don't successfully create the service after all. Don't remove
8924         pending activation if the function fails.
8925
8926         * dbus/dbus-list.c (_dbus_list_insert_before_link)
8927         (_dbus_list_insert_after_link): new code to facilitate
8928         services.c fixes
8929
8930         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8931         new functionality, so we can preallocate the ability to insert
8932         into a hash table.
8933
8934         * bus/connection.c (bus_transaction_add_cancel_hook): new function
8935         allowing us to put custom hooks in a transaction to be used for
8936         cancelling said transaction
8937
8938         * doc/dbus-specification.sgml: add some discussion of secondary
8939         service owners, and disallow zero-length service names
8940
8941         * bus/services.c (bus_registry_acquire_service): new function,
8942         splits out part of bus_driver_handle_acquire_service() and fixes
8943         a bug where we didn't remove the service doing the acquiring
8944         from the secondary queue if we failed to remove the current owner
8945         from the front of the queue.
8946
8947 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8948
8949         * doc/dbus-specification.sgml:
8950         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
8951
8952 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8953
8954         * bus/.cvsignore:
8955         * glib/.cvsignore:
8956         * test/.cvsignore:
8957         Added files to cvsignore
8958
8959         * dbus/dbus-message.h:
8960         * dbus/dbus-message.c: (dbus_message_iter_get_named):
8961         Make get_named() take two out argument and return a boolean.
8962         (dbus_message_iter_get_args_valist):
8963         Update usage of get_named().
8964         (dbus_message_iter_append_byte):
8965         Fix typo
8966         (dbus_message_iter_append_named)
8967         Fix typo
8968         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
8969         More tests.
8970
8971 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8972
8973         * dbus/dbus-marshal.[ch]:
8974         Add array_type_pos argument to _dbus_marshal_validate_arg.
8975         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
8976
8977         * dbus/dbus-message.[ch]:
8978         Multi-dimensional arrays have full type specification in the
8979         outermost array. Iter code re-arranged to handle this.
8980         Added some more iter tests.
8981
8982         * doc/dbus-specification.sgml:
8983         Add me to authors.
8984         Remove old FIXME.
8985         Update new array encoding description.
8986         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
8987
8988         * test/data/invalid-messages/array-with-mixed-types.message:
8989         * test/data/valid-messages/array-of-array-of-uint32.message:
8990         Change to the new array format.
8991
8992         * test/data/invalid-messages/too-short-dict.message:
8993         Fix bug in test.
8994
8995         * test/data/valid-messages/recursive-types.message:
8996         Fix up and extend test.
8997
8998 2003-04-10  Havoc Pennington  <hp@pobox.com>
8999
9000         * bus/dispatch.c: lots of fixes
9001
9002         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9003         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9004         that was crack, broke the test service.
9005
9006         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9007         handling to avoid piling up errors if we get a failure on the
9008         first address.
9009
9010         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9011         pid in assertion failures.
9012
9013         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9014         to some fixed size of file descriptor array. Don't return TRUE
9015         anytime a timeout exists, that led to lots of busy loop silliness
9016         in the tests.
9017
9018 2003-04-09  Havoc Pennington  <hp@redhat.com>
9019
9020         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9021         I'd checked this in earlier but hadn't.
9022
9023 2003-04-09  Havoc Pennington  <hp@redhat.com>
9024
9025         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9026         the activation test (man this is getting old!)
9027
9028 2003-04-09  Havoc Pennington  <hp@redhat.com>
9029
9030         * test/test-utils.c: use dispatch status function to fix this up
9031
9032         * bus/connection.c (connection_watch_callback): don't dispatch
9033         from here
9034         (connection_timeout_callback): don't dispatch from here
9035         (bus_connections_setup_connection): set the dispatch status function
9036         (bus_connection_disconnected): unset it
9037
9038         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9039         used to add a connection to be dispatched
9040         (_dbus_loop_iterate): do the dispatching at the end of each
9041         iteration
9042
9043         * dbus/dbus-connection.c
9044         (dbus_connection_set_dispatch_status_function): new function
9045         allowing us to fix up main loop usage
9046         (_dbus_connection_last_unref): free all the various function
9047         user data
9048         (dbus_connection_dispatch): call the DispatchStatusFunction
9049         whenever this function returns
9050         (dbus_connection_handle_watch): call DispatchStatusFunction
9051         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9052         (reply_handler_timeout): call DispatchStatusFunction
9053         (dbus_connection_flush): call DispatchStatusFunction
9054
9055 2003-04-09  Havoc Pennington  <hp@redhat.com>
9056
9057         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9058         a memory leak
9059
9060         * bus/dispatch.c (check_service_activated): fix bug in test
9061
9062         * dbus/dbus-mainloop.c (check_timeout): fix this up
9063
9064         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9065         verbose output so we can sort out output from different processes,
9066         e.g. in the activation case.
9067
9068 2003-04-08  Colin Walters  <walters@gnu.org>
9069
9070         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9071         the pid file.
9072         (bus_context_new): Set it.
9073         (bus_context_unref): Use it to delete the pid file.
9074
9075 2003-04-08  Havoc Pennington  <hp@redhat.com>
9076
9077         * test/data/invalid-messages/array-with-mixed-types.message:
9078         regression test that fails for the moment
9079
9080         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9081         tests for convenience
9082
9083         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9084         array of nil, it broke things.
9085
9086         * test/data/invalid-messages/array-of-nil.message: regression test
9087
9088         * test/data/valid-messages/array-of-array-of-uint32.message:
9089         happened to write this so added it to suite
9090
9091 2003-04-08  Havoc Pennington  <hp@redhat.com>
9092
9093         * bus/driver.c (bus_driver_handle_acquire_service): init
9094         retval/reply before checking name
9095
9096         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9097         recursion depth argument
9098
9099         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9100         in the public struct for future extension
9101
9102         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9103         typo
9104
9105         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9106         message
9107
9108         * doc/dbus-specification.sgml: fix typo
9109
9110 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9111
9112         Implemented recursive types, named types and new-style iters
9113
9114         * bus/driver.c:
9115         * glib/test-thread-client.c: (thread_func):
9116         * glib/test-thread-server.c: (handle_test_message):
9117         * test/test-service.c: (handle_echo):
9118         Update to new api
9119
9120         * dbus/Makefile.am:
9121         * dbus/dbus-dict.c:
9122         * dbus/dbus-dict.h:
9123         * dbus/dbus.h
9124         Remove DBusDict
9125
9126         * dbus/dbus-internals.c: (_dbus_type_to_string):
9127         Update for new types.
9128
9129         * dbus/dbus-marshal.[ch]:
9130         Implement recursive types and the new marshalling format.
9131         Remove hardcoded dict marshalling.
9132         Marshal named types.
9133
9134         * dbus/dbus-message-builder.c:
9135         Add BYTE_ARRAY.
9136         Remove references to old types
9137
9138         * dbus/dbus-message.[ch]:
9139         New non-refcounted iter API that supports recursive iters.
9140         Use iters for appending, including support for recursive
9141         iters.
9142         Add byte and named type support.
9143         Update everything to new marshalling formats.
9144         Add tests for new API.
9145
9146         * dbus/dbus-protocol.h:
9147         Remove old array types.
9148         Add types: BYTE, ARRAY, DICT, NAMED
9149
9150         * dbus/dbus-string.c:
9151         * dbus/dbus-sysdeps.c:
9152         Make parse_double locale safe.
9153
9154         * dbus/dbus-test-main.c:
9155         Call setlocale.
9156
9157         * dbus/dbus-test.c:
9158         Kill dict test
9159
9160         * doc/dbus-specification.sgml:
9161         Update spec
9162
9163         * test/data/incomplete-messages/missing-body.message:
9164         * test/data/invalid-messages/bad-boolean.message:
9165         * test/data/invalid-messages/bad-boolean-array.message:
9166         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9167         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9168         * test/data/invalid-messages/too-short-dict.message:
9169         * test/data/valid-messages/dict-simple.message:
9170         * test/data/valid-messages/dict.message:
9171         * test/data/valid-messages/emptiness.message:
9172         * test/data/valid-messages/lots-of-arguments.message:
9173         * test/data/valid-messages/no-padding.message:
9174         * test/data/valid-messages/recursive-types.message:
9175         Add missing NAME fields
9176         Fix up dicts & arrays
9177
9178         * test/data/invalid-messages/dict-with-nil-value.message:
9179         Removed, this is not invalid anymore.
9180
9181         * test/data/valid-messages/recursive-types.message:
9182         Add new test for deeply recursive types.
9183
9184 2003-04-07  Havoc Pennington  <hp@pobox.com>
9185
9186         * bus/driver.c (bus_driver_handle_acquire_service): return an
9187         error if you try to acquire a service that starts with ':'
9188
9189 2003-04-07  Havoc Pennington  <hp@redhat.com>
9190
9191         * doc/dbus-specification.sgml: require that base service names
9192         start with ':' and that the base service is created/deleted
9193         as first and last things a connection does on the bus
9194
9195         * bus/dispatch.c (check_existent_service_activation): lots more
9196         work on the activation test; it doesn't fully pass yet...
9197
9198         * test/test-service.c (main): fix so we don't memleak the
9199         connection to the message bus
9200         (filter_func): accept a message asking us to exit
9201
9202 2003-04-06  Havoc Pennington  <hp@pobox.com>
9203
9204         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9205         from Colin Walters
9206
9207         * configure.in: fixes to Qt detection from Colin Walters
9208
9209         * doc/Makefile.am: Only remove generated docbook dirs if they
9210         exist, from Colin Walters
9211
9212         * dbus/dbus-bus.c: change how we set well-known connections to
9213         NULL, so that it works if a single connection is stored in
9214         two well-known array slots.
9215
9216         * test/Makefile.am: remove a lot of stuff that isn't immediately
9217         useful, it's in CVS history if we want it.
9218
9219         * test/test-service.c: use dbus-mainloop instead of that
9220         watch.[hc] crack
9221
9222 2003-04-06  Havoc Pennington  <hp@pobox.com>
9223
9224         * dbus/Makefile.am: split lists of sources into stuff that goes in
9225         the library, util functions that go in the lib and are also used
9226         elsewhere, and util functions that are used in tests/daemon but
9227         don't go in the lib.
9228
9229         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9230         here so it can be used in test binaries also
9231
9232 2003-04-06  Havoc Pennington  <hp@pobox.com>
9233
9234         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9235         here in the parent process, so we can return an error if it
9236         fails. Also, move some of the code into the child so the parent
9237         is less hosed if we fail midway through.
9238
9239         * bus/bus.c (bus_context_new): move pidfile detection further up
9240         in the function, before we start overwriting sockets and such.
9241
9242         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9243
9244         * configure.in: add --with-system-pid-file and --with-system-socket
9245
9246 2003-04-06  Colin Walters  <walters@verbum.org>
9247
9248         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9249
9250         * bus/system.conf.in: Declare a pidfile.
9251
9252         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9253         create one (if appropriate).
9254
9255         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9256         (struct BusConfigParser) [pidfile]: New.
9257         (element_type_to_name, merge_included, start_busconfig_child)
9258         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9259         (bus_config_parser_unref): Free it.
9260         (bus_config_parser_get_pidfile): New function.
9261
9262         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9263
9264         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9265
9266         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9267
9268         * dbus/dbus-sysdeps.h: Prototype it.
9269
9270 2003-04-06  Havoc Pennington  <hp@pobox.com>
9271
9272         * bus/bus.c (bus_context_new): print the address in here, rather
9273         than in main(), because we need to do it before forking the daemon
9274
9275         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9276         on the service nonexistent error
9277
9278         * bus/driver.c (bus_driver_handle_acquire_service): set the
9279         sender on the AcquireService reply
9280
9281         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9282         server also listen on a UNIX socket so services can connect to it.
9283
9284 2003-04-06  Havoc Pennington  <hp@pobox.com>
9285
9286         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9287         so it detects deadlocks and also we actually init threads when
9288         debugging.
9289
9290 2003-04-06  Havoc Pennington  <hp@pobox.com>
9291
9292         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9293         save the domain socket name, and unlink it when we disconnect the
9294         server. Means that at least when we exit normally, we won't leave
9295         a bunch of junk in /tmp
9296
9297         * dbus/dbus-transport-unix.c
9298         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9299         memory management). (I was making a real change here but then
9300         didn't)
9301
9302 2003-04-06  Havoc Pennington  <hp@pobox.com>
9303
9304         * bus/bus.c (bus_context_new): fix wrong handling of
9305         server_data_slot_unref() in the error case.
9306
9307         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9308         "(condition) != 0" to _dbus_real_assert so that
9309         "_dbus_assert (pointer)" doesn't cause a warning
9310
9311         * bus/main.c (main): accept --print-address option to print out
9312         the message bus address
9313
9314         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9315
9316         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9317         "tmpdir" option to unix: address on client side
9318
9319         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9320         to unix: address
9321
9322         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9323         we can use to create sockets in the test suite.
9324
9325         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9326         cleanly. To be used for testing.
9327
9328         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9329
9330         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9331
9332         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9333         handle trying to call this when there's no servers active
9334
9335 2003-04-05  Havoc Pennington  <hp@pobox.com>
9336
9337         * NEWS: update
9338
9339         * configure.in: 0.8
9340
9341 2003-04-05  Havoc Pennington  <hp@pobox.com>
9342
9343         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9344         crash on startup. Need to get "try starting the daemon"
9345         in the test suite I guess. ;-)
9346
9347         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9348         tracked the number of open connections; it's better done in
9349         application-specific code as you want it to span all servers etc.
9350
9351 2003-04-05  Havoc Pennington  <hp@pobox.com>
9352
9353         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9354         patch from Colin Walters
9355
9356 2003-04-05  Havoc Pennington  <hp@pobox.com>
9357
9358         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9359         reality; in fact multiple mechanisms are allowed.
9360
9361         * dbus/dbus-internals.c (_dbus_real_assert)
9362         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9363         _dbus_assert_not_reached() into functions, so that they don't show
9364         up in basic block counts for test coverage, and don't use up as
9365         much disk space. Does mean slower execution speed though, so
9366         assumes --disable-asserts is the normal production case.
9367
9368 2003-04-05  Havoc Pennington  <hp@pobox.com>
9369
9370         * test/Makefile.am (dist-hook): also dist *.in files
9371
9372         * NEWS: update
9373
9374         * configure.in: 0.7
9375
9376 2003-04-05  Havoc Pennington  <hp@pobox.com>
9377
9378         * dbus/dbus-string.c: docs warning
9379
9380         * dbus/dbus-spawn.c: missing docs
9381
9382         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9383
9384 2003-04-05  Havoc Pennington  <hp@pobox.com>
9385
9386         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9387         magic from GLib
9388
9389         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9390         to -1 once we've reaped the babysitter
9391         (_dbus_babysitter_handle_watch): do as much work as we can, not
9392         just one go of it
9393
9394         * bus/activation.c: add code using DBusBabysitter so that we
9395         handle it when a service fails to start up properly.
9396         (bus_activation_service_created): don't remove the activation
9397         entries as we go, just let them get removed when we free the pending
9398         activation. Unref reply messages after sending them.
9399
9400 2003-04-05  Havoc Pennington  <hp@pobox.com>
9401
9402         * test/decode-gcov.c (main): print per-directory stats in the report
9403
9404         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9405
9406 2003-04-05  Havoc Pennington  <hp@pobox.com>
9407
9408         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9409
9410         * test/decode-gcov.c: hack up a little program to suck data
9411         out of gcov files. Yes this is sort of silly.
9412
9413         * configure.in: define something in config.h and do an
9414         AM_CONDITIONAL when gcov is enabled
9415
9416 2003-04-04  Havoc Pennington  <hp@redhat.com>
9417
9418         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9419         return a "babysitter" object that is used to monitor the status of
9420         the spawned process and reap it when required.
9421
9422         * test/test-segfault.c, test/test-exit.c,
9423         test/test-sleep-forever.c: binaries that do various lame things,
9424         used in the test suite.
9425
9426         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9427
9428 2003-04-03  Havoc Pennington  <hp@pobox.com>
9429
9430         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9431         in preparation for modifying it, dbus-sysdeps is getting
9432         a bit unmanageable.
9433
9434 2003-04-03  Havoc Pennington  <hp@redhat.com>
9435
9436         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9437         have multiple ones
9438
9439         * bus/*.[hc]: adapt to mainloop change
9440
9441 2003-04-03  Havoc Pennington  <hp@redhat.com>
9442
9443         * bus/activation.c (load_directory): fix up memleaks
9444         (bus_activation_entry_free): free the entry
9445
9446         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9447         we get one from the message bus; fix memleaks.
9448
9449         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9450
9451 2003-04-03  Havoc Pennington  <hp@pobox.com>
9452
9453         * bus/config-parser.c (bus_config_parser_unref): free
9454         list of mechanisms, bug discovered by test suite enhancements
9455         (putting system.conf and session.conf into suite)
9456
9457         * test/Makefile.am, test/test-service.c: add placeholder for a
9458         test service that we'll activate as part of test suite. Doesn't
9459         do anything yet.
9460
9461         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9462         setting NULL value, and use system malloc not dbus_malloc()
9463         when we have unavoidable memleakage.
9464
9465         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9466         didn't work, and support DBUS_BUS_ACTIVATION.
9467
9468         * bus/activation.c (child_setup): pass our well-known bus type to
9469         the child
9470
9471         * bus/config-parser.c: support <type> to specify well-known type
9472
9473         * doc/dbus-specification.sgml: document the env variables to
9474         locate well-known buses and find service activator
9475
9476 2003-04-02  Havoc Pennington  <hp@redhat.com>
9477
9478         * test/Makefile.am (all-local): add a rule to copy tests to
9479         builddir, so we can have generated tests. Use this to remove the
9480         silly hack for testing system.conf and session.conf. Will use this
9481         shortly to generate .service files pointing to test binaries.
9482
9483 2003-04-02  Havoc Pennington  <hp@redhat.com>
9484
9485         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9486         current alloc and needed new length, not max of the doubled
9487         allocation and needed new length. Also, when building tests,
9488         don't do the double-allocation stuff, just realloc every time.
9489
9490 2003-04-02  Havoc Pennington  <hp@redhat.com>
9491
9492         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9493         in error messages
9494         (_dbus_string_get_dirname): new
9495         (_dbus_sysdeps_test): new
9496         (_dbus_directory_open): include dirnames in error messages
9497
9498         * bus/config-parser.c: interpret <include> and <includedir> and
9499         <servicedir> relative to config file location if the given
9500         filename is not absolute.
9501
9502         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9503
9504 2003-04-02  Havoc Pennington  <hp@redhat.com>
9505
9506         * bus/connection.c (bus_transaction_send_error_reply): set sender
9507         service for the error, and unref the reply on success
9508
9509         * bus/activation.c: convert to use BusTransaction so OOM can be
9510         handled correctly
9511         (bus_activation_service_created): set sender of the message
9512
9513 2003-04-01  Havoc Pennington  <hp@redhat.com>
9514
9515         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9516         <includedir> (at least mostly)
9517
9518         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9519         first, then the user ID
9520
9521 2003-04-01  Havoc Pennington  <hp@pobox.com>
9522
9523         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9524         function
9525
9526         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9527
9528         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9529
9530         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9531         socket 0777, and unlink any existing socket.
9532
9533         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9534         the configuration file so specifies; set up auth mechanism
9535         restrictions
9536
9537         * bus/config-parser.c (bus_config_parser_content): add support
9538         for <fork> option and fill in code for <auth>
9539
9540         * bus/system.conf.in: add <fork/> to default configuration,
9541         and limit auth mechanisms to EXTERNAL
9542
9543         * doc/config-file.txt (Elements): add <fork>
9544
9545         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9546         (_dbus_change_identity): new function
9547
9548 2003-03-31  Havoc Pennington  <hp@redhat.com>
9549
9550         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9551         (_dbus_listen_unix_socket): fix off-by-one error in null
9552         termination spotted by Nalin
9553
9554 2003-03-31  Havoc Pennington  <hp@redhat.com>
9555
9556         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9557         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9558         having a real home directory available.
9559
9560 2003-03-31  Havoc Pennington  <hp@redhat.com>
9561
9562         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9563
9564         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9565
9566         * configure.in: add support for specifying a style of init script
9567         to install
9568
9569 2003-03-31  Havoc Pennington  <hp@redhat.com>
9570
9571         Fix some annoying DBusString API and fix all affected code.
9572
9573         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9574         max_length argument
9575         (_dbus_string_get_data): change to return string instead of using
9576         an out param
9577         (_dbus_string_get_const_data): ditto
9578         (_dbus_string_get_data_len): ditto
9579         (_dbus_string_get_const_data_len): ditto
9580
9581 2003-03-31  Havoc Pennington  <hp@redhat.com>
9582
9583         * bus/main.c (main): fix up the command line arguments to be nicer
9584
9585 2003-03-31  Havoc Pennington  <hp@redhat.com>
9586
9587         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9588         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9589         final location that lands in the config file
9590
9591         * bus/config-loader-expat.c (bus_config_load): fix type of
9592         XML_Parser variable
9593
9594         * doc/TODO: remove TODO item for dbus_bus_get()
9595
9596         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9597
9598 2003-03-31  Havoc Pennington  <hp@pobox.com>
9599
9600         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9601         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9602         argument since they are always client side
9603
9604         * dbus/dbus-server.c (dbus_server_get_address): new function
9605
9606         * bus/main.c (main): take the configuration file as an argument.
9607
9608         * test/data/valid-config-files/debug-allow-all.conf: new file to
9609         use with dispatch.c tests for example
9610
9611         * bus/test-main.c (main): require test data dir
9612
9613         * bus/bus.c (bus_context_new): change this to take a
9614         configuration file name as argument
9615
9616         * doc/config-file.txt (Elements): add <servicedir>
9617
9618         * bus/system.conf, bus/session.conf: new files
9619
9620         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9621         well-known socket if none set
9622
9623         * configure.in: create system.conf and session.conf
9624
9625 2003-03-30  Havoc Pennington  <hp@pobox.com>
9626
9627         * bus/config-parser.c: hacking
9628
9629         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9630         to shut down, since it could cause weirdness with the DBusList
9631         lock
9632
9633         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9634         link-oriented stack routines
9635         (alloc_link): free the mempool if the first alloc from it fails
9636
9637         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9638
9639         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9640         from GLib
9641         (_dbus_string_skip_white): new
9642
9643         * doc/config-file.txt (Elements): add <includedir>
9644
9645 2003-03-28  Havoc Pennington  <hp@pobox.com>
9646
9647         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9648         (_dbus_string_copy_data): new functions
9649
9650 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9651
9652         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9653         * dbus/dbus-bus.h:
9654         Add dbus_bus_get.
9655
9656         * dbus/dbus-memory.c:
9657         Fix a doc comment.
9658
9659 2003-03-28  Havoc Pennington  <hp@pobox.com>
9660
9661         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9662         I think it may have just been superstition. Not sure.
9663
9664         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9665         failures that were not being handled.
9666
9667         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9668
9669         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9670         row that will fail on out-of-memory.
9671
9672         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9673         function for testing out-of-memory handling.
9674
9675         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9676         allocation functions, they do map exactly to the expat ones.
9677
9678 2003-03-27  Havoc Pennington  <hp@redhat.com>
9679
9680         * bus/config-loader-libxml.c (bus_config_load): add another error
9681         check
9682
9683 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9684
9685         * doc/TODO:
9686         Add note about automatic service activation.
9687
9688         * doc/dbus-specification.sgml:
9689         Rename the specification and clarify a few things.
9690
9691 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9692
9693         * Doxyfile.in:
9694         * dbus/dbus-address.c:
9695         * dbus/dbus-dict.c:
9696         * dbus/dbus-marshal.c:
9697         * dbus/dbus-server-debug-pipe.c:
9698         * dbus/dbus-transport-unix.c:
9699         Fix documentation warnings.
9700
9701 2003-03-26  Havoc Pennington  <hp@pobox.com>
9702
9703         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9704         after every test so it's quick and easy to see which leaked, and
9705         so we test multiple dbus_shutdown() calls
9706
9707         * configure.in: change configure.in XML stuff to also support
9708         expat
9709
9710         * config-loader-libxml.c: some hacking
9711
9712         * config-loader-expat.c: some hacking
9713
9714         * config-parser.c: some hacking, plus tests
9715
9716 2003-03-25  Havoc Pennington  <hp@redhat.com>
9717
9718         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9719
9720         * configure.in: add --with-xml option to specify XML library,
9721         right now only libxml is supported.
9722
9723         * bus/config-loader-libxml.c, config-parser.c: sync some minor
9724         nonworking code between home and work, still just stubs
9725
9726 2003-03-24  Havoc Pennington  <hp@redhat.com>
9727
9728         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9729         file
9730
9731         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9732         NULL argument for "message" if the error is a well-known one,
9733         fill in a generic message in this case.
9734
9735         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9736         favor of DBusError
9737
9738         * bus/test.c (bus_test_flush_bus): add
9739
9740         * bus/policy.c (bus_policy_test): test code stub
9741
9742 2003-03-24  Havoc Pennington  <hp@pobox.com>
9743
9744         * bus/connection.c (bus_connections_setup_connection): set up
9745         the "can this user connect" function, but it always returns
9746         TRUE until we have a config file parser so we can have a config
9747         file that allows connections.
9748
9749 2003-03-23  Havoc Pennington  <hp@pobox.com>
9750
9751         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9752         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9753         the mutex, so we can check for proper memory management
9754         and OOM handling.
9755
9756         * dbus/dbus-dataslot.c: remove the mutex from
9757         DBusDataSlotAllocator and lock it manually when using it,
9758         to simplify fitting it into the global slots framework.
9759
9760         * dbus/dbus-threads.c (init_static_locks): rework how we're
9761         handling global locks so they are easily shut down.
9762
9763         * bus/policy.c (bus_policy_append_rule): fix
9764
9765         * bus/test-main.c (main): check for memleaks
9766
9767         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9768         test suite check for memleaks
9769
9770         * dbus/dbus-memory.c: add support in test mode for tracking
9771         number of outstanding blocks
9772
9773 2003-03-23  Havoc Pennington  <hp@pobox.com>
9774
9775         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9776         policies code
9777
9778         * dbus/dbus-hash.h: add ULONG hash keys
9779
9780         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9781         (_dbus_get_group_id): new function
9782
9783 2003-03-20  Havoc Pennington  <hp@redhat.com>
9784
9785         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9786         new function
9787         (dbus_connection_get_unix_user): new function
9788
9789 2003-03-20  Havoc Pennington  <hp@pobox.com>
9790
9791         * bus/connection.c (bus_connection_send_oom_error): assert that
9792         message has a sender
9793         (connection_execute_transaction): ditto
9794         (bus_connection_preallocate_oom_error): fix to set the sender, and
9795         set recipient to the destination service, not the bus driver
9796
9797         * bus/policy.c: hacking
9798
9799         * dbus/dbus-message.c (dbus_message_service_is): new function
9800         (dbus_message_sender_is): new
9801
9802 2003-03-19  Havoc Pennington  <hp@redhat.com>
9803
9804         * bus/policy.c: start sketching code for policy restrictions on
9805         what connections can do.
9806
9807 2003-03-18  Havoc Pennington  <hp@redhat.com>
9808
9809         * doc/TODO: some notes on high-level todo items. Little nitpick
9810         stuff is all in @todo, so no need to add it here.
9811
9812         * doc/config-file.txt: some notes on how config file might look
9813
9814 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
9815
9816         * configure.in: 0.6
9817
9818         * NEWS: Update.
9819
9820 2003-03-17  Havoc Pennington  <hp@redhat.com>
9821
9822         * dbus/dbus-internals.h: add gcc attributes so that
9823         our printf-style functions warn on bad arguments to
9824         format
9825
9826         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9827         format bug
9828
9829         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9830         printf format bug
9831
9832 2003-03-17  Havoc Pennington  <hp@redhat.com>
9833
9834         * bus/test-main.c (main): make it print something as it runs
9835         so make check doesn't look stuck
9836
9837         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9838         from CVS, now obsolete
9839
9840 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9841
9842         * bus/dispatch.c: (bus_dispatch):
9843         Refetch the service name since it may have been reallocated
9844         when dbus_message_set_sender was called.
9845
9846         * dbus/dbus-sysdeps.c: (_dbus_accept):
9847         Add address and address length variables and use them to stop
9848         valgrind from complaining.
9849
9850 2003-03-17  Havoc Pennington  <hp@pobox.com>
9851
9852         All tests pass, no memleaks, no valgrind complaints.
9853
9854         * bus/test.c: refcount handler_slot
9855
9856         * bus/connection.c (bus_connections_new): refcount
9857         connection_data_slot
9858
9859         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9860         bytes so that auth scripts pass.
9861
9862         * bus/dispatch.c: init message_handler_slot so it gets allocated
9863         properly
9864
9865         * bus/dispatch.c (message_handler_slot_ref): fix memleak
9866
9867         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9868         dealloc server_pipe_hash when no longer used for benefit of
9869         leak checking
9870
9871         * dbus/dbus-auth.c (process_command): memleak fix
9872
9873         * bus/dispatch.c (check_hello_message): memleak fix
9874
9875 2003-03-16  Havoc Pennington  <hp@pobox.com>
9876
9877         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9878
9879 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9880
9881         * bus/activation.c (bus_activation_activate_service): Append
9882         the pending activation entry to the list of pending activations.
9883
9884 2003-03-16  Havoc Pennington  <hp@pobox.com>
9885
9886         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9887         connections
9888
9889         * dbus/dbus-address.c (create_entry): fix OOM handling when
9890         failing to alloc entry->method
9891
9892 2003-03-16  Havoc Pennington  <hp@pobox.com>
9893
9894         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9895         the watch
9896
9897         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9898         add some missing dbus_set_result
9899
9900         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9901         alloc the DBusMessageHandler
9902
9903         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9904         the transport here, since we call this from the finalizer; it
9905         resulted in a double-finalize.
9906
9907         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9908         where we tried to use transport->connection that was NULL,
9909         happened when transport was disconnected early on due to OOM
9910
9911         * bus/*.c: adapt to handle OOM for watches/timeouts
9912
9913         * dbus/dbus-transport-unix.c: port to handle OOM during
9914         watch handling
9915
9916         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9917         reference to unused bytes instead of a copy
9918
9919         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9920         out of memory
9921
9922         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9923         FALSE on OOM
9924
9925         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9926         of memory
9927
9928 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9929
9930         * doc/dbus-specification.sgml:
9931         Document reply message for ActivateService.
9932
9933 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9934
9935         * bus/activation.c: (bus_pending_activation_entry_free),
9936         (bus_pending_activation_free), (bus_activation_new),
9937         (bus_activation_unref), (bus_activation_service_created),
9938         (bus_activation_activate_service):
9939         * bus/activation.h:
9940         * bus/bus.c: (bus_context_new):
9941         * bus/desktop-file.c: (new_section):
9942         * bus/driver.c: (bus_driver_send_service_deleted),
9943         (bus_driver_handle_activate_service):
9944         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9945         * bus/services.h:
9946         * dbus/dbus-connection.c:
9947         (dbus_connection_send_with_reply_and_block):
9948         * dbus/dbus-message.c: (dbus_message_append_args_valist):
9949         * dbus/dbus-protocol.h:
9950         Make activation work better. Now pending activations will be queued
9951         and the daemon won't try to activate services that are already registered.
9952
9953 2003-03-16  Havoc Pennington  <hp@pobox.com>
9954
9955         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
9956         connection data
9957
9958         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
9959         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
9960
9961 2003-03-16  Havoc Pennington  <hp@pobox.com>
9962
9963         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
9964         this. always run the test suite before commit...
9965
9966         * bus/*: adapt to DBusConnection API changes
9967
9968         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
9969         requires renaming stuff to avoid dbus_connection_dispatch name
9970         conflict.
9971
9972         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
9973         function
9974
9975         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9976         separate from _dbus_message_loader_return_buffer()
9977
9978         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
9979         this, because it's now always broken to use; the number of
9980         messages in queue vs. the number still buffered by the message
9981         loader is undefined/meaningless. Should use
9982         dbus_connection_get_dispatch_state().
9983         (dbus_connection_dispatch): rename from
9984         dbus_connection_dispatch_message
9985
9986 2003-03-16  Havoc Pennington  <hp@pobox.com>
9987
9988         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
9989         implementation
9990
9991 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9992
9993         * dbus/dbus-connection.c:
9994         (dbus_connection_send_with_reply_and_block):
9995         Decrease connection->n_incoming when removing an entry
9996         from the list.
9997         * dbus/dbus-dict.c: (dbus_dict_entry_free),
9998         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9999         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10000         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10001         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10002         (dbus_dict_get_byte_array):
10003         Handle NULL arrays and strings. Also add support for byte arrays.
10004
10005         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10006         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10007         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10008         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10009         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10010         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10011         * dbus/dbus-marshal.h:
10012         Add support for marshalling and demarshalling empty arrays and strings.
10013
10014         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10015         (dbus_message_append_string_array),
10016         (dbus_message_iter_get_boolean),
10017         (dbus_message_iter_get_boolean_array),
10018         (dbus_message_iter_get_int32_array),
10019         (dbus_message_iter_get_uint32_array),
10020         (dbus_message_iter_get_double_array),
10021         (dbus_message_iter_get_byte_array),
10022         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10023         (check_message_handling):
10024         Add support for getting empty arrays and dicts.
10025
10026         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10027         Don't do any validation at all for now, that's better than just checking
10028         for ASCII.
10029
10030         * test/data/valid-messages/emptiness.message:
10031         New test message with lots of empty arrays.
10032
10033 2003-03-16  Havoc Pennington  <hp@pobox.com>
10034
10035         * dbus/dbus-connection.c
10036         (_dbus_connection_queue_received_message_link): new function that
10037         can't fail due to OOM
10038
10039         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10040         new function pops a message together with a list link
10041         containing it.
10042
10043         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10044         message queuing functions to avoid needing to alloc memory
10045
10046 2003-03-16  Havoc Pennington  <hp@pobox.com>
10047
10048         Oops - test code was only testing failure of around 30 of the
10049         mallocs in the test path, but it turns out there are 500+
10050         mallocs. I believe this was due to misguided linking setup such
10051         that there was one copy of dbus_malloc etc. in the daemon and one
10052         in the shared lib, and only daemon mallocs were tested. In any
10053         case, the test case now tests all 500+ mallocs, and doesn't pass
10054         yet, though there are lots of fixes in this patch.
10055
10056         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10057         this so that it doesn't need to allocate memory, since it
10058         has no way of indicating failure due to OOM (and would be
10059         annoying if it did).
10060
10061         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10062
10063         * bus/Makefile.am: rearrange to create two self-contained
10064         libraries, to avoid having libraries with overlapping symbols.
10065         that was resulting in weirdness, e.g. I'm pretty sure there
10066         were two copies of global static variables.
10067
10068         * dbus/dbus-internals.c: move the malloc debug stuff to
10069         dbus-memory.c
10070
10071         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10072         empty.
10073
10074         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10075
10076         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10077         on failure.
10078
10079         * bus/dispatch.c (bus_dispatch_add_connection): free
10080         message_handler_slot when no longer using it, so
10081         memory leak checkers are happy for the test suite.
10082
10083         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10084
10085         * bus/bus.c (new_connection_callback): disconnect in here if
10086         bus_connections_setup_connection fails.
10087
10088         * bus/connection.c (bus_connections_unref): fix to free the
10089         connections
10090         (bus_connections_setup_connection): if this fails, don't
10091         disconnect the connection, just be sure there are no side
10092         effects.
10093
10094         * dbus/dbus-string.c (undo_alignment): unbreak this
10095
10096         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10097         leaking
10098         (_dbus_auth_new): fix the order in which we free strings
10099         on OOM failure
10100
10101         * bus/connection.c (bus_connection_disconnected): fix to
10102         not send ServiceDeleted multiple times in case of memory
10103         allocation failure
10104
10105         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10106         get the base service name
10107         (dbus_bus_register_client): don't return base service name,
10108         instead store it on the DBusConnection and have an accessor
10109         function for it.
10110         (dbus_bus_register_client): rename dbus_bus_register()
10111
10112         * bus/dispatch.c (check_hello_message): verify that other
10113         connections on the bus also got the correct results, not
10114         just the one sending hello
10115
10116 2003-03-15  Havoc Pennington  <hp@pobox.com>
10117
10118         Make it pass the Hello handling test including all OOM codepaths.
10119         Now to do other messages...
10120
10121         * bus/services.c (bus_service_remove_owner): fix crash when
10122         removing owner from an empty list of owners
10123         (bus_registry_ensure): don't leave service in the list of
10124         a connection's owned services if we fail to put the service
10125         in the hash table.
10126
10127         * bus/connection.c (bus_connection_preallocate_oom_error): set
10128         error flag on the OOM error.
10129
10130         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10131         handle _dbus_transport_set_connection failure
10132
10133         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10134         to create watches up front and simply enable/disable them as
10135         needed.
10136         (unix_connection_set): this can now fail on OOM
10137
10138         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10139         of enabling/disabling a watch or timeout.
10140
10141         * bus/loop.c (bus_loop_iterate): don't touch disabled
10142         watches/timeouts
10143
10144         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10145
10146 2003-03-15  Havoc Pennington  <hp@pobox.com>
10147
10148         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10149         write useful test code, after all that futzing around ;-)
10150
10151         Test does not yet pass because we can't handle OOM in
10152         _dbus_transport_messages_pending (basically,
10153         dbus_connection_preallocate_send() does not prealloc the write
10154         watch). To fix this, I think we need to add new stuff to
10155         set_watch_functions, namely a SetEnabled function so we can alloc
10156         the watch earlier, then enable it later.
10157
10158         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10159         dbus-memory.c to the convenience lib
10160
10161         * bus/test.c: rename some static functions to keep them clearly
10162         distinct from stuff in connection.c. Handle client disconnection.
10163
10164 2003-03-14  Havoc Pennington  <hp@pobox.com>
10165
10166         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10167         transport, tests more of the real codepath. Set up clients
10168         with bus_setup_debug_client.
10169
10170         * bus/test.c (bus_setup_debug_client): function to set up debug
10171         "clients" on the main loop
10172
10173         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10174         support
10175
10176         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10177         server type
10178
10179         * dbus/dbus-server-debug.c: support a debug server based on pipes
10180
10181         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10182         (_dbus_close): new function
10183
10184         * configure.in: check for socketpair
10185
10186 2003-03-14  Havoc Pennington  <hp@redhat.com>
10187
10188         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10189         cheesy hack
10190
10191         * dbus/dbus-transport-debug.c: rework this a good bit to be
10192         less complicated. hopefully still works.
10193
10194         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10195         manually
10196
10197         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10198         after running it
10199
10200         * dbus/dbus-message.c (dbus_message_copy): rename from
10201         dbus_message_new_from_message, fix it up to copy
10202         all the message fields, add test case
10203
10204         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10205         not quite passing yet
10206
10207 2003-03-14  Havoc Pennington  <hp@pobox.com>
10208
10209         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10210         until no work remains" in test code. (the large diff here
10211         is just code movement, no actual changes)
10212
10213         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10214         1, no point waiting around for test code.
10215         (_dbus_server_debug_accept_transport): unref the timeout
10216         after adding it (right?)
10217
10218         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10219
10220 2003-03-13  Havoc Pennington  <hp@redhat.com>
10221
10222         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10223         out of memory
10224
10225         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10226         of memory
10227
10228         * dbus/dbus-connection.h: Make AddWatchFunction and
10229         AddTimeoutFunction return a bool so they can fail on out-of-memory
10230
10231         * bus/bus.c (bus_context_new): set up timeout handlers
10232
10233         * bus/connection.c (bus_connections_setup_connection): set up
10234         timeout handlers
10235
10236         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10237         can fail
10238
10239         * bus/bus.c (bus_context_new): adapt to changes
10240
10241         * bus/connection.c: adapt to changes
10242
10243         * test/watch.c: adapt to DBusWatch changes
10244
10245         * bus/dispatch.c (bus_dispatch_test): started adding this but
10246         didn't finish
10247
10248 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10249
10250         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10251
10252 2003-03-13  Havoc Pennington  <hp@pobox.com>
10253
10254         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10255         set up a test framework as for the library
10256
10257 2003-03-12  Havoc Pennington  <hp@pobox.com>
10258
10259         Throughout: purge global variables, introduce BusActivation,
10260         BusConnections, BusRegistry, etc. objects instead.
10261
10262         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10263         message bus object
10264
10265         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10266         going to redo this a bit differently I think
10267
10268 2003-03-12  Havoc Pennington  <hp@redhat.com>
10269
10270         Mega-patch that gets the message bus daemon initially handling
10271         out-of-memory. Work still needed. Also lots of random
10272         moving stuff to DBusError instead of ResultCode.
10273
10274         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10275
10276         * dbus/dbus-connection.c
10277         (dbus_connection_send_with_reply_and_block): use DBusError
10278
10279         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10280         DBusResultCode
10281
10282         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10283         code here, as the only failure possible is OOM.
10284
10285         * bus/connection.c (bus_connection_disconnect):
10286         rename bus_connection_disconnected as it's a notification only
10287
10288         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10289         "name" on get_args failure, should be done by get_args;
10290         don't disconnect client for bad args, just return an error.
10291         (bus_driver_handle_service_exists): ditto
10292
10293         * bus/services.c (bus_services_list): NULL-terminate returned array
10294
10295         * bus/driver.c (bus_driver_send_service_lost)
10296         (bus_driver_send_service_acquired): send messages from driver to a
10297         specific client to the client's unique name, not to the broadcast
10298         service.
10299
10300         * dbus/dbus-message.c (decode_header_data): reject messages that
10301         contain no name field
10302         (_dbus_message_get_client_serial): rename to
10303         dbus_message_get_serial and make public
10304         (_dbus_message_set_serial): rename from set_client_serial
10305         (_dbus_message_set_reply_serial): make public
10306         (_dbus_message_get_reply_serial): make public
10307
10308         * bus/connection.c (bus_connection_foreach): allow stopping
10309         iteration by returning FALSE from foreach function.
10310
10311         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10312         (dbus_connection_free_preallocated_send)
10313         (dbus_connection_preallocate_send): new API for sending a message
10314         without possibility of malloc failure.
10315         (dbus_connection_send_message): rename to just
10316         dbus_connection_send (and same for whole function family)
10317
10318         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10319
10320         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10321
10322         * bus/activation.c: handle/return errors
10323
10324         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10325
10326         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10327         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10328         (_dbus_result_from_errno): move to this file
10329
10330 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10331
10332         * dbus/dbus-marshal.c:
10333         (_dbus_marshal_set_string):
10334         Take a length argument so we can marshal the correct string
10335         length.
10336
10337         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10338         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10339         (_dbus_marshal_test):
10340         * dbus/dbus-marshal.h:
10341         Add support for marshalling and demarshalling dicts.
10342
10343         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10344         Add support for TYPE DICT.
10345
10346         * dbus/dbus-message.c: (set_string_field):
10347         Adjust header padding.
10348
10349         (dbus_message_append_args_valist), (dbus_message_append_dict),
10350         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10351         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10352         (check_message_handling), (check_have_valid_message):
10353         * dbus/dbus-message.h:
10354         Add functions for setting and getting dicts.
10355
10356         * dbus/dbus-protocol.h:
10357         Add DBUS_TYPE_DICT.
10358
10359         * dbus/dbus.h:
10360         Add dbus-dict.h
10361
10362         * doc/dbus-specification.sgml:
10363         Add information about how dicts are marshalled.
10364
10365         * test/data/invalid-messages/dict-with-nil-value.message:
10366         * test/data/invalid-messages/too-short-dict.message:
10367         * test/data/valid-messages/dict-simple.message:
10368         * test/data/valid-messages/dict.message:
10369         Add sample messages containing dicts.
10370
10371 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10372
10373         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10374
10375 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10376
10377         * dbus/Makefile.am:
10378         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10379         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10380         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10381         (dbus_dict_set_double), (dbus_dict_set_string),
10382         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10383         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10384         (dbus_dict_set_string_array), (_dbus_dict_test):
10385         * dbus/dbus-dict.h:
10386         Fix according to comments from Havoc.
10387
10388 2003-03-06  Michael Meeks  <michael@server.home>
10389
10390         * configure.in: if we don't have kde-config, disable have_qt.
10391
10392 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10393
10394         * dbus/Makefile.am:
10395         Add dbus-dict.[ch]
10396
10397         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10398         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10399         (dbus_dict_remove), (dbus_dict_get_value_type),
10400         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10401         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10402         (dbus_dict_put_double), (dbus_dict_put_string),
10403         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10404         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10405         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10406         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10407         (dbus_dict_get_double), (dbus_dict_get_string),
10408         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10409         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10410         (dbus_dict_get_string_array), (_dbus_dict_test):
10411         * dbus/dbus-dict.h:
10412         Add DBusDict implementation
10413
10414         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10415         * dbus/dbus-test.h:
10416         Add _dbus_dict_test
10417
10418 2003-03-04  Havoc Pennington  <hp@pobox.com>
10419
10420         * test/data/auth/*: adapt to changes
10421
10422         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10423         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10424         userid
10425
10426         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10427         more stuff from being in a context name, to make the protocol
10428         simpler to deal with
10429
10430         * dbus/dbus-errors.c (dbus_error_has_name): new function
10431         (dbus_error_is_set): new function
10432
10433         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10434         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10435
10436         * dbus/dbus-connection.c (dbus_connection_flush): also read
10437         messages during a flush operation
10438
10439         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10440
10441 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10442
10443         * configure.in: Check for gethostbyname on Solaris.
10444
10445         * dbus/dbus-transport.c: (_dbus_transport_open):
10446         Remove duplicate "tcp" entry.
10447
10448         * doc/dbus-specification.sgml:
10449         Clarify some things.
10450
10451 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10452
10453         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10454         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10455         (_dbus_keyring_test):
10456         * dbus/dbus-md5.c: (_dbus_md5_compute):
10457         * dbus/dbus-sha.c: (_dbus_sha_compute):
10458         Plug memory leaks.
10459
10460 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10461
10462         * README: Add some things.
10463
10464 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10465
10466         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10467         after case DBUS_TYPE_BOOELAN.
10468
10469 2003-03-02  Havoc Pennington  <hp@pobox.com>
10470
10471         * test/break-loader.c (randomly_set_extreme_ints): add test that
10472         sets really huge and small integers
10473
10474         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10475         that length of boolean array fits in the string, and that
10476         string has room for boolean value in single-bool case.
10477
10478         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10479         optional value to "ALIGN" command which is what to fill the
10480         alignment with.
10481
10482         * test/data/valid-messages/no-padding.message: add regression
10483         test for the message padding problem
10484
10485 2003-03-02  Havoc Pennington  <hp@pobox.com>
10486
10487         * dbus/dbus-message.c (decode_header_data): fix to always init
10488         message_padding, from Benjamin Dauvergne
10489
10490 2003-03-02  Havoc Pennington  <hp@pobox.com>
10491
10492         * configure.in: 0.5
10493
10494         * NEWS: Update.
10495
10496 2003-03-01  Joe Shaw  <joe@assbarn.com>
10497
10498         * configure.in: Check for "struct cmsgcred" and try to access its
10499         members for BSD-like unices.
10500
10501         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10502         _dbus_read_credentials_unix_socket().
10503         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10504         read() for reading the credential byte off the unix socket.  Use
10505         struct cmsgcred on systems that support it.
10506
10507 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10508
10509         * glib/Makefile.am:
10510         * configure.in:
10511         Make gthreads-2.0 dependency optional. Don't build thread test if
10512         its not found.
10513
10514 2003-02-27  Havoc Pennington  <hp@pobox.com>
10515
10516         * dbus/dbus-connection.c
10517         (dbus_connection_send_message_with_reply_and_block): fix doh!
10518         doh! doh! bug that resulted in never removing a reply from the
10519         queue, no wonder we called get_reply_serial so much ;-)
10520
10521         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10522         and client serial instead of demarshaling them every time
10523
10524 2003-02-27  Havoc Pennington  <hp@pobox.com>
10525
10526         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10527         more inlined, using dbus-string-private.h, speeds things up
10528         substantially
10529
10530         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10531         when freeing the string
10532         (_dbus_string_steal_data): fix for align offset
10533         (undo_alignment): new function
10534
10535 2003-02-26  Havoc Pennington  <hp@redhat.com>
10536
10537         All kinds of audit fixes from Owen, plus initial attempt to
10538         handle unaligned memory returned from malloc.
10539
10540         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10541         leave room for align_offset and nul byte
10542         (fixup_alignment): function to track an align_offset and
10543         ensure real->str is aligned
10544         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10545         to allow a nul byte plus align offset
10546         (_dbus_string_lock): fix overflow issue
10547         (_dbus_string_init_const_len): add assertions on sanity of len,
10548         assign allocated to be ALLOCATION_PADDING larger than len
10549         (set_length): fixup the overflow handling
10550         (_dbus_string_get_data_len): fix overflow in assertion
10551         (open_gap): detect overflow in size of gap to be opened
10552         (_dbus_string_lengthen): add overflow check
10553         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10554         (_dbus_string_append): add overflow check
10555         (_dbus_string_append_unichar): overflow
10556         (_dbus_string_delete): fix overflow in assertion
10557         (_dbus_string_copy_len): overflow in assertion
10558         (_dbus_string_replace_len): overflows in assertions
10559         (_dbus_string_find): change to implement in terms of
10560         _dbus_string_find_to
10561         (_dbus_string_find_to): assorted fixage
10562         (_dbus_string_equal_c_str): assert c_str != NULL,
10563         fix logic so the function works
10564         (_dbus_string_ends_with_c_str): fix overflow thingy
10565         (_dbus_string_base64_encode): overflow fix
10566         (_dbus_string_validate_ascii): overflow
10567         (_dbus_string_validate_nul): overflow
10568
10569 2003-02-26  Havoc Pennington  <hp@redhat.com>
10570
10571         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10572
10573 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10574
10575         * configure.in:
10576         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10577
10578         * dbus/dbus-connection.c:
10579         * dbus/dbus-connection.h:
10580         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10581         Add dbus_connection_set_wakeup_main_function and use it when queueing
10582         incoming and outgoing messages.
10583
10584
10585         * dbus/dbus-dataslot.c:
10586         Threadsafe usage of DBusDataSlotAllocator
10587
10588         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10589         dbus_new can fail.
10590
10591         * dbus/dbus-server-unix.c:
10592         Add todo comment
10593
10594         * glib/dbus-gmain.c:
10595         Implement the new wakeup functions for glib.
10596
10597         * glib/Makefile.am:
10598         * glib/test-thread-client.c:
10599         * glib/test-thread-server.c:
10600         * glib/test-thread.h:
10601         Initial cut at some thread test code. Not really done yet.
10602
10603 2003-02-26  Havoc Pennington  <hp@pobox.com>
10604
10605         * dbus/dbus-connection.c
10606         (dbus_connection_send_message_with_reply_and_block): fix crash
10607         where we ref'd the outgoing message instead of the returned reply
10608
10609         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10610         at the end of this function, so if we didn't need to read for
10611         authentication, we reinstall it for receiving messages
10612
10613         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10614         a NULL sender for peer-to-peer case
10615
10616         * dbus/dbus-transport-unix.c (check_read_watch): handle
10617         !authenticated case correctly
10618
10619         * glib/dbus-gmain.c: add support for DBusServer
10620
10621         * dbus/dbus-server.c: add data slot support
10622
10623         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10624         return values and handle errors
10625
10626         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10627         DBusConnection
10628
10629         * Doxyfile.in (INPUT): add glib subdir
10630
10631         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10632         setup_with_g_main instead of hookup_with_g_main; write docs
10633
10634 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10635
10636         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10637         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10638         * dbus/dbus-message.c: (dbus_message_append_boolean),
10639         (dbus_message_append_boolean_array),
10640         (dbus_message_get_args_valist), (_dbus_message_test):
10641         * dbus/dbus-message.h:
10642         * doc/dbus-specification.sgml:
10643         Various fixes as pointed out by Havoc.
10644
10645         * test/data/invalid-messages/bad-boolean-array.message:
10646         * test/data/invalid-messages/bad-boolean.message:
10647         Add invalid boolean value test cases.
10648
10649 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10650
10651         * dbus/dbus-internals.c: (_dbus_type_to_string):
10652         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10653         (_dbus_marshal_validate_arg):
10654         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10655         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10656         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10657         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10658         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10659         (dbus_message_iter_get_double),
10660         (dbus_message_iter_get_boolean_array), (message_iter_test):
10661         * dbus/dbus-message.h:
10662         * dbus/dbus-protocol.h:
10663         * doc/dbus-specification.sgml:
10664         * test/data/valid-messages/lots-of-arguments.message:
10665         Add support for boolean and boolean array types.
10666
10667 2003-02-23  Havoc Pennington  <hp@pobox.com>
10668
10669         * dbus/dbus-keyring.c: finish most of this implementation and
10670         simple unit test
10671
10672         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10673         these barf if the error isn't cleared to NULL
10674
10675         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10676         (_dbus_create_directory): new function
10677
10678         * dbus/dbus-errors.c (dbus_set_error): fix warning
10679
10680         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10681         (_dbus_string_hex_decode): new function
10682         (test_hex_roundtrip): test code
10683
10684         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10685
10686         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10687
10688         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10689         the save-to-temp/rename trick to atomically write the new file
10690         (_dbus_string_parse_uint): new function
10691
10692 2003-02-22  Havoc Pennington  <hp@pobox.com>
10693
10694         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10695
10696 2003-02-22  Havoc Pennington  <hp@pobox.com>
10697
10698         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10699         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10700
10701         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10702
10703         * dbus/test/data/sha-1: add US government test suite for SHA-1
10704
10705 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10706
10707         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10708         Make string arrays NULL-terminated.
10709
10710         * dbus/dbus-memory.c: (dbus_free_string_array):
10711         * dbus/dbus-memory.h:
10712         New function for freeing NULL-terminated string arrays.
10713
10714         * dbus/dbus-message-builder.c: (append_quoted_string),
10715         (_dbus_message_data_load):
10716         Add support for array types.
10717
10718         * dbus/dbus-message.c: (check_message_handling):
10719         Add more types as test cases.
10720
10721         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10722         (_dbus_string_parse_double):
10723         Add the start offset to the end offset.
10724
10725         * test/data/valid-messages/lots-of-arguments.message:
10726         New test message with lots of arguments.
10727
10728 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10729
10730         * dbus/dbus-message.c: (dbus_message_append_nil),
10731         (dbus_message_append_int32), (dbus_message_append_uint32),
10732         (dbus_message_append_double), (dbus_message_append_string),
10733         (dbus_message_append_int32_array),
10734         (dbus_message_append_uint32_array),
10735         (dbus_message_append_double_array),
10736         (dbus_message_append_byte_array),
10737         (dbus_message_append_string_array):
10738         Fix all out-of-memory handling in these functions.
10739
10740 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10741
10742         * dbus/dbus-message.c: (dbus_message_append_nil):
10743         Fix a silly.
10744
10745 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10746
10747         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10748         (dbus_message_append_nil), (dbus_message_append_int32_array),
10749         (dbus_message_append_uint32_array),
10750         (dbus_message_append_double_array),
10751         (dbus_message_append_byte_array),
10752         (dbus_message_append_string_array), (dbus_message_get_args_valist),
10753         (dbus_message_iter_get_int32_array),
10754         (dbus_message_iter_get_uint32_array),
10755         (dbus_message_iter_get_double_array),
10756         (dbus_message_iter_get_byte_array),
10757         (dbus_message_iter_get_string_array):
10758
10759         * dbus/dbus-message.h:
10760         Add functions for appending and getting arrays.
10761
10762 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10763
10764         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10765         element size at least 8 bytes, fixes mempool tests on
10766         64-bit machines.
10767
10768 2003-02-20  Alexander Larsson  <alexl@redhat.com>
10769
10770         * dbus/dbus-transport-unix.c (unix_do_iteration):
10771         Unlock the connection mutex during a blocking select call.
10772         Add todo about how we need a way to wake up the select.
10773
10774         * dbus/dbus-connection-internal.h:
10775         * dbus/dbus-connection.c:
10776         Add _dbus_connection_lock and _dbus_connection_unlock.
10777
10778 2003-02-19  Havoc Pennington  <hp@pobox.com>
10779
10780         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10781         Doxyfile.in, not Doxyfile
10782
10783         * dbus/dbus-keyring.c: do some hacking on this
10784
10785         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10786
10787         * dbus/dbus-errors.c (dbus_set_error_const): do not call
10788         dbus_error_init
10789         (dbus_set_error): remove dbus_error_init, check for message ==
10790         NULL *before* we sprintf into it, and add @todo about including
10791         system headers in this file
10792
10793         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10794
10795         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10796
10797         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10798         get various bits of user information based on either username
10799         or user ID
10800         (_dbus_homedir_from_username): new function
10801
10802 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
10803
10804         * configure.in:
10805         Add check for nonposix getpwnam_r
10806
10807         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10808         Align the pool element size to a sizeof (void *) boundary.
10809
10810         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10811         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10812         General Solaris fixes.
10813
10814         * test/data/valid-messages/simplest-manual.message:
10815         Explicitly state that we want little-endian packing.
10816
10817 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
10818
10819         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10820
10821         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10822         Added to create a transport connecting using a tcp/ip socket.
10823
10824         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10825         to a tcp socket at given host and port.
10826         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10827         hostname and port.
10828
10829         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10830
10831         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10832         Added to create a server listening on a TCP/IP socket.
10833
10834 2003-02-19  Havoc Pennington  <hp@pobox.com>
10835
10836         Throughout: mop up all the Doxygen warnings and undocumented
10837         stuff.
10838
10839         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10840         to search any paths.
10841
10842         * dbus/dbus-threads.c: move global mutex initializers to
10843         dbus-internals.h, multiple prototypes was confusing doxygen
10844         besides being kind of ugly
10845
10846         * Doxyfile (PREDEFINED): have Doxygen define
10847         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10848         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10849         (do not abuse the feature! it's for stuff like the autogenerated
10850         macros in dbus-md5.c, not just for things you don't feel like
10851         documenting...)
10852
10853 2003-02-18  Havoc Pennington  <hp@pobox.com>
10854
10855         * dbus/dbus-string.c (_dbus_string_zero): new function
10856
10857         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10858         wrap it in some dbus-friendly API
10859
10860         * dbus/dbus-types.h: add 16-bit types
10861
10862 2003-02-18  Joe Shaw  <joe@assbarn.com>
10863
10864         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10865         credentials from our currently running process.
10866         (get_word): Fix a buglet where we were copying the entire length
10867         instead of relative to our position.
10868
10869         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10870         keys on the stack... it's 640k of data.
10871
10872         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10873         read the credentials byte off the socket, even if we don't have
10874         SO_PEERCRED.
10875         (_dbus_poll): Implement poll() using select() for systems which
10876         don't have it.
10877
10878         * glib/test-dbus-glib.c (main): Print out an error if no
10879         parameters are given.
10880
10881         * test/data/auth/fallback.auth-script: Added.  Tests that a client
10882         can fallback to a secondary auth mechanism if the first fails.
10883
10884 2003-02-18  Havoc Pennington  <hp@pobox.com>
10885
10886         * AUTHORS: add Alex
10887
10888 2003-02-17  Havoc Pennington  <hp@pobox.com>
10889
10890         * doc/dbus-specification.sgml: lots of cosmetic
10891         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10892         env variable to DBUS_BUS_ADDRESS, s/client/application/,
10893         s/server/bus/ (except in authentication section). Add a section
10894         "Message Bus Message Routing"
10895
10896 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
10897
10898         Release 0.4
10899
10900         * NEWS: Update
10901
10902 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10903
10904         * doc/dbus-specification.sgml:
10905         Specification updates.
10906
10907 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10908
10909         * bus/activation.c: (bus_activation_init), (child_setup),
10910         (bus_activation_activate_service):
10911         * bus/activation.h:
10912         * bus/main.c: (main):
10913         Set DBUS_ADDRESS environment variable.
10914
10915         * dbus/dbus-errors.c: (dbus_set_error):
10916         Don't use va_copy since that's a C99 feature.
10917
10918         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10919         (_dbus_spawn_async):
10920         * dbus/dbus-sysdeps.h:
10921         Add child_setup_func to _dbus_spawn_async.
10922
10923         * doc/dbus-specification.sgml:
10924         Update specification.
10925
10926         * test/spawn-test.c: (setup_func), (main):
10927         Fix test.
10928
10929 2003-02-17  Alexander Larsson  <alexl@redhat.com>
10930
10931         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10932         Added todo.
10933
10934 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10935
10936         * doc/.cvsignore:
10937         * doc/Makefile.am:
10938         * doc/dbus-test-plan.sgml:
10939         Add test plan document.
10940
10941         * test/Makefile.am:
10942         Fix distcheck.
10943
10944 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10945
10946         * dbus/dbus-message.c: (decode_header_data),
10947         (_dbus_message_loader_return_buffer):
10948         Set the header padding amount when loading a message.
10949
10950 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10951
10952         * bus/dispatch.c: (send_one_message):
10953         Only send broadcast messages to registered connections.
10954
10955         * dbus/dbus-message.c: (dbus_message_name_is):
10956         * dbus/dbus-message.h:
10957         New convenience function.
10958
10959         * dbus/dbus-transport-debug.c: (do_reading):
10960         Only dispatch one message per run.
10961
10962         * test/Makefile.am:
10963         * test/bus-test.c: (new_connection_callback), (die),
10964         (test_hello_client1_handler), (test_hello_client2_handler),
10965         (test_hello_replies), (main):
10966
10967         * test/bus-test-loop.[ch]:
10968         Add these.
10969
10970 2003-02-16  Havoc Pennington  <hp@pobox.com>
10971
10972         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10973         backward conditional
10974
10975 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10976
10977         * dbus/dbus-connection.c:
10978         Implement sent_message_with_reply. (with_reply_and block is still
10979         busted).
10980         Made dispatch_message not lose message if OOM.
10981
10982         * dbus/dbus-errors.h:
10983         Add NoReply error (for reply timeouts).
10984
10985 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10986
10987         * dbus/dbus-hash.c (_dbus_hash_table_unref):
10988         Actually free keys and values when destroying hashtable.
10989
10990 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10991
10992         * dbus/dbus-auth.c: (client_try_next_mechanism):
10993         Plug a leak.
10994
10995         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
10996         Return TRUE if there's no thread implementation around.
10997
10998         * glib/dbus-gmain.c: (free_source),
10999         (dbus_connection_hookup_with_g_main):
11000         Make sure to remove the GSource when the connection is finalized.
11001
11002 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11003
11004         * bus/dispatch.c: (bus_dispatch_message_handler):
11005         * dbus/dbus-errors.h:
11006         Return an error if someone tries to send a message to a service
11007         that doesn't exist.
11008
11009 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11010
11011         * bus/activation.c: (load_directory), (bus_activation_init),
11012         (bus_activation_activate_service):
11013         * bus/activation.h:
11014         * bus/driver.c:
11015         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11016         More work on the activation handling.
11017
11018         * dbus/dbus-errors.h:
11019         Add some error messages
11020
11021         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11022         * dbus/dbus-message.h:
11023         New function that creates an error message.
11024
11025         * dbus/dbus-protocol.h:
11026         Add ACTIVATE_SERVER message.
11027
11028         * dbus/dbus-server-unix.c: (unix_handle_watch),
11029         (_dbus_server_new_for_domain_socket):
11030         Call _dbus_fd_set_close_on_exec.
11031
11032         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11033         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11034         (_dbus_fd_set_close_on_exec):
11035         * dbus/dbus-sysdeps.h:
11036         Add _dbus_fd_set_close_on exec function. Also add function that checks
11037         that all open fds are set to close-on-exec and warns otherwise.
11038
11039         * dbus/dbus-transport-unix.c:
11040         (_dbus_transport_new_for_domain_socket):
11041         Call _dbus_fd_set_close_on_exec.
11042
11043 2003-02-16  Havoc Pennington  <hp@pobox.com>
11044
11045         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11046         allow people to avoid setting SIGPIPE to SIG_IGN
11047         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11048         we've been asked not to
11049
11050 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11051
11052         * dbus/dbus-list.c: (_dbus_list_append_link),
11053         (_dbus_list_prepend_link):
11054         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11055         (dbus_realloc):
11056         Warning fixes.
11057
11058 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11059
11060         * bus/Makefile.am:
11061         * bus/activation.c: (bus_activation_entry_free),
11062         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11063         * bus/activation.h:
11064         * bus/main.c: (main):
11065         Add simple activation support, doesn't work yet though.
11066
11067 2003-02-15   Zack Rusin  <zack@kde.org>
11068
11069         * qt/dbus-qthread.cpp:  small casting fix
11070
11071 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11072
11073         * dbus/dbus-errors.c: (dbus_set_error):
11074         * dbus/dbus-errors.h:
11075         Add a few errors and make dbus_set_error void.
11076
11077         * dbus/dbus-sysdeps.c:
11078         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11079         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11080         * dbus/dbus-sysdeps.h:
11081         Add _dbus_spawn_async.
11082
11083         * test/spawn-test.c: (main):
11084         Test for _dbus_spawn_async.
11085
11086 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11087
11088         * dbus/dbus-internals.h:
11089         Fix build without tests.
11090
11091         * dbus/dbus-list.c: (alloc_link):
11092         Fix a segfault when a malloc fails.
11093
11094         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11095         (dbus_malloc0), (dbus_realloc):
11096         Add support for malloc debugging.
11097
11098 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11099
11100         * dbus/dbus-threads.c:
11101         * dbus/dbus-threads.h:
11102         Add condvars. Remove static mutext from API.
11103         Implement static mutexes by initializing them from threads_init.
11104
11105         * glib/dbus-gthread.c:
11106         * qt/dbus-qthread.cpp:
11107         Update with the thread api changes.
11108
11109
11110         * dbus/dbus-list.c:
11111         * dbus/dbus-list.h:
11112         Turn StaticMutex into normal mutex + init function.
11113         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11114         _dbus_list_append_link, _dbus_list_prepend_link
11115
11116
11117         * dbus/dbus-sysdeps.c:
11118         * dbus/dbus-sysdeps.h:
11119         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11120         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11121
11122         * dbus/dbus-protocol.h:
11123         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11124
11125         * dbus/dbus-message.c:
11126         Make ref/unref atomic.
11127         Fix some docs.
11128
11129         * dbus/dbus-connection-internal.h:
11130         * dbus/dbus-connection.c:
11131         * dbus/dbus-connection.h:
11132         Make threadsafe.
11133         Change _peek to _borrow,_return & _steal_borrowed.
11134         Change disconnect callback to event.
11135         Make dbus_connection_dispatch_messages reentrant.
11136
11137         * dbus/dbus-transport.c:
11138         Don't ref the connection on calls to the transport
11139         implementation.
11140
11141         * dbus/dbus-message-handler.c:
11142         Make threadsafe.
11143
11144         * glib/dbus-gmain.c:
11145         Don't use peek_message anymore
11146
11147         * test/Makefile.am:
11148         * test/debug-thread.c:
11149         * test/debug-thread.h:
11150         Simple thread implementation that asserts() on deadlocks in
11151         single-threaded code.
11152
11153         * test/bus-test.c:
11154         (main) Call debug_threads_init.
11155
11156         * test/watch.c:
11157         Use disconnect message instead of disconnect callback.
11158
11159         * bus/connection.c:
11160         * bus/connection.h:
11161         Don't call dbus_connection_set_disconnect_function. Instead export
11162         bus_connection_disconnect.
11163
11164         * bus/dispatch.c:
11165         Call bus_connection_disconnect when we get a disconnected message.
11166
11167 2003-02-15  Havoc Pennington  <hp@pobox.com>
11168
11169         * dbus/dbus-message.c (dbus_message_new): fool around with the
11170         docs
11171
11172 2003-02-14  Havoc Pennington  <hp@pobox.com>
11173
11174         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11175
11176         * dbus/dbus-memory.c: fail if the debug functions indicate we
11177         should
11178
11179         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11180         (_dbus_decrement_fail_alloc_counter): debug functions to
11181         simulate memory allocation failures
11182
11183 2003-02-14  Havoc Pennington  <hp@pobox.com>
11184
11185         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11186         to DBusError
11187
11188 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11189
11190         * bus/driver.c: (bus_driver_handle_hello):
11191         * bus/driver.h:
11192         * bus/services.c: (bus_service_lookup):
11193         Reorder message sending so we get a more sane order.
11194
11195         * test/bus-test.c: (message_handler):
11196         Fix tyop.
11197
11198 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11199
11200         * bus/driver.c: (bus_driver_send_service_deleted),
11201         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11202         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11203         (bus_driver_send_welcome_message),
11204         (bus_driver_handle_list_services),
11205         (bus_driver_handle_acquire_service),
11206         (bus_driver_handle_service_exists):
11207         * dbus/dbus-bus.c: (dbus_bus_register_client),
11208         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11209         * dbus/dbus-errors.c: (dbus_result_to_string):
11210         * dbus/dbus-errors.h:
11211         * dbus/dbus-message.c: (dbus_message_append_args),
11212         (dbus_message_append_args_valist), (dbus_message_get_args),
11213         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11214         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11215         (dbus_message_iter_get_byte_array),
11216         (dbus_message_iter_get_string_array), (message_iter_test),
11217         (check_message_handling), (_dbus_message_test):
11218         * dbus/dbus-message.h:
11219         * test/bus-test.c: (main):
11220         Change fields to arguments in messages, so that they won't be
11221         confused with header fields.
11222
11223         * glib/test-dbus-glib.c: (main):
11224         Remove append_fields from hello message.
11225
11226 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11227
11228         * dbus/dbus-errors.c:
11229         * dbus/dbus-message.c:
11230         * dbus/dbus-string.c:
11231         Documentation fixes.
11232
11233 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11234
11235         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11236         (remove_timeout):
11237         Implement support for timeouts in dbus-glib.
11238
11239 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11240
11241         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11242         * dbus/dbus-message.c: (process_test_subdir):
11243         * test/break-loader.c: (find_breaks_based_on):
11244         Plug some memory leaks.
11245
11246 2003-02-13  Richard Hult  <rhult@codefactory.se>
11247
11248         * bus/main.c: Fix build.
11249
11250         * dbus/dbus-errors.h:
11251         * dbus/dbus-errors.c: Fix copyright for Anders.
11252
11253 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11254
11255         * bus/Makefile.am:
11256         Add utils.[ch]
11257
11258         * bus/connection.c: (bus_connection_foreach):
11259         Fix a warning.
11260
11261         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11262         (unescape_string), (new_section), (parse_section_start),
11263         (parse_key_value), (report_error), (bus_desktop_file_load),
11264         (bus_desktop_file_get_string):
11265         * bus/desktop-file.h:
11266         Use DBusError for error reporting.
11267
11268         * bus/dispatch.c: (send_one_message),
11269         (bus_dispatch_message_handler):
11270         * bus/driver.c: (bus_driver_send_service_deleted),
11271         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11272         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11273         (bus_driver_send_welcome_message),
11274         (bus_driver_handle_list_services),
11275         (bus_driver_handle_acquire_service),
11276         (bus_driver_handle_service_exists):
11277         * bus/loop.c: (bus_loop_run):
11278         * bus/main.c:
11279         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11280
11281         * bus/utils.c: (bus_wait_for_memory):
11282         * bus/utils.h:
11283         New files with general utility functions.
11284
11285         * dbus/dbus-internals.h:
11286         Remove _DBUS_HANDLE_OOM.
11287
11288 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11289
11290         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11291         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11292         * dbus/dbus-errors.h:
11293         Add DBusError structure.
11294
11295 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11296
11297         * test/data/valid-messages/standard-acquire-service.message:
11298         * test/data/valid-messages/standard-hello.message:
11299         * test/data/valid-messages/standard-list-services.message:
11300         * test/data/valid-messages/standard-service-exists.message:
11301         Add some standard messages.
11302
11303 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11304
11305         * bus/driver.c: (bus_driver_send_welcome_message),
11306         (bus_driver_handle_list_services),
11307         (bus_driver_handle_acquire_service),
11308         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11309         Update for API changes in libdbus.
11310
11311         * dbus/dbus-message.c: (dbus_message_new_reply):
11312         * dbus/dbus-message.h:
11313         Remove the name argument. The spec states that replies shouldn't
11314         have a name.
11315
11316 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11317
11318         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11319         (report_error), (bus_desktop_file_load), (lookup_section),
11320         (lookup_line), (bus_desktop_file_get_raw),
11321         (bus_desktop_file_get_string):
11322         * bus/desktop-file.h:
11323         Some fixes, and new functions for getting a key value from a section.
11324
11325 2003-02-13  Havoc Pennington  <hp@pobox.com>
11326
11327         * test/data/auth/fail-after-n-attempts.auth-script: new test
11328
11329         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11330         reject the client.
11331
11332 2003-02-13  Havoc Pennington  <hp@pobox.com>
11333
11334         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11335         dbus_credentials_match were backward
11336
11337         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11338         NO_CREDENTIALS and ROOT_CREDENTIALS
11339
11340         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11341         into here. Never process more commands after we've reached an
11342         end state; store further data as unused bytes.
11343
11344         * test/data/auth/*: add more auth tests
11345
11346         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11347         command to match exact string and EXPECT_UNUSED to match unused
11348         bytes
11349
11350         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11351
11352 2003-02-12  Havoc Pennington  <hp@pobox.com>
11353
11354         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11355         \r off of popped lines
11356
11357         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11358         scripts
11359
11360         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11361         SEND, append \r\n
11362
11363 2003-02-12  Havoc Pennington  <hp@pobox.com>
11364
11365         * dbus/Makefile.am: remove break-loader from the build, since it
11366         moved.
11367
11368         * configure.in: add --enable-gcov to turn on coverage profiling
11369         flags and disable optimization
11370
11371 2003-02-10  Havoc Pennington  <hp@pobox.com>
11372
11373         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11374         initial cut at test framework for DBusAuth from laptop.
11375         Doesn't quite work yet but it compiles and I need to get
11376         it off the 266mhz laptop. ;-)
11377
11378         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11379         fix a memleak in error case
11380
11381 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11382
11383         * bus/Makefile.am:
11384         * bus/desktop-file.c:
11385         * bus/desktop-file.h:
11386         Add a desktop file parser.
11387
11388 2003-02-11  Zack Rusin  <zack@kde.org>
11389
11390         * qt/message.[h|cpp]: sample implementation
11391         of the KDE wrapper for DBusMessage
11392
11393 2003-02-09  Zack Rusin  <zack@kde.org>
11394
11395         * test/bus-test.c: make_it_compile
11396         * doc/dbus-specification.sgml: minimal semantic fix
11397
11398 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11399
11400         Release 0.3
11401
11402         * NEWS: Update
11403
11404 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11405
11406         * dbus/Makefile.am:
11407         * dbus/dbus-break-loader.c:
11408         * test/Makefile.am:
11409         * test/break-loader.c:
11410         Move dbus-break-loader to test/ and rename it to break-loader.
11411
11412 2003-02-02  Havoc Pennington  <hp@pobox.com>
11413
11414         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11415         for code to manage cookies in your home directory
11416
11417         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11418
11419         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11420         to authenticate, then disconnect the client.
11421
11422 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11423
11424         * dbus/dbus-message.c (dbus_message_append_fields):
11425         Correct docs.
11426
11427 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11428
11429         * doc/dbus-specification.sgml:
11430         Update address format section.
11431
11432 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11433
11434         * test/Makefile.am:
11435         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11436         (message_handler), (new_connection_callback), (loop_quit),
11437         (loop_run), (main):
11438         Add bus test.
11439
11440 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11441
11442         * bus/driver.c: (bus_driver_handle_service_exists):
11443         Simplify the code a bit.
11444
11445         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11446         Fix a silly.
11447
11448 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11449
11450         * bus/Makefile.am:
11451         Add libdbus-daemon.la and link to it.
11452
11453 2003-02-01  James Willcox  <jwillcox@gnome.org>
11454
11455         * bus/driver.c: (bus_driver_handle_own_service):
11456         Actually include the service reply code in the message.
11457
11458 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11459
11460         * bus/driver.c: (bus_driver_handle_service_exists):
11461         Don't unref the incoming message.
11462
11463 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11464
11465         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11466
11467 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11468
11469         * dbus/dbus-server.c: (dbus_server_listen):
11470         * dbus/dbus-transport.c: (_dbus_transport_open):
11471         ifdef out the calls to the debug transport and server.
11472
11473 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11474
11475         * dbus/dbus-watch.c (dbus_watch_get_flags):
11476         Add note in the docs that ERROR or HANGUP won't be returned
11477         and are assumed always on.
11478
11479         * glib/dbus-gmain.c (add_watch):
11480         Always add IO_ERR | IO_HUP
11481
11482         * dbus/dbus-message.h:
11483         Add semicolon after dbus_message_iter_get_string_array().
11484         Makes qt code build again
11485
11486 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11487
11488         * bus/driver.c: (create_unique_client_name),
11489         (bus_driver_handle_hello):
11490         Don't take a name, just use a numeric id to identify
11491         each client.
11492
11493         * dbus/Makefile.am:
11494         * dbus/dbus-bus.c: (dbus_bus_register_client),
11495         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11496         * dbus/dbus-bus.h:
11497         Add new convenience functions for communicating with the bus.
11498
11499         * dbus/dbus-message.h:
11500
11501         * dbus/dbus-protocol.h:
11502         Fix a typo.
11503
11504 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11505
11506         * dbus/dbus-message.c (dbus_message_append_fields):
11507         Add some more doc comments.
11508
11509 2003-02-01  Havoc Pennington  <hp@pobox.com>
11510
11511         * dbus/dbus-break-loader.c (randomly_modify_length): change
11512         a 4-byte value in the message as if it were a length
11513
11514         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11515         execute bit on saved files
11516
11517 2003-02-01  Havoc Pennington  <hp@pobox.com>
11518
11519         * dbus/dbus-break-loader.c (main): new program to find messages
11520         that break the loader.
11521
11522         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11523         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11524
11525         * dbus/dbus-string.c (_dbus_string_set_byte): new
11526
11527 2003-01-31  Havoc Pennington  <hp@pobox.com>
11528
11529         * dbus/dbus-message.c: refactor the test code to be more general,
11530         in preparation for writing a "randomly permute test cases to
11531         try to break the loader" program.
11532
11533 2003-01-31  Havoc Pennington  <hp@pobox.com>
11534
11535         * doc/dbus-specification.sgml: work on the specification
11536
11537         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11538         the protocol version of the message.
11539
11540         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11541         no longer specifies that.
11542         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11543         1/2/3/4)
11544
11545         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11546         "break" for DBUS_TYPE_NIL, remove @todo
11547
11548 2003-01-31  Havoc Pennington  <hp@pobox.com>
11549
11550         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11551         just set_is_error/get_is_error as this is a commonly-used
11552         function, and write docs.
11553
11554 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11555
11556         * dbus/dbus-address.c: (dbus_address_entry_free):
11557         Free key and value lists.
11558
11559         * dbus/dbus-internals.c: (_dbus_type_to_string):
11560         Add the types we didn't have.
11561
11562         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11563         (_dbus_marshal_validate_arg):
11564         Add NIL types.
11565
11566         * dbus/dbus-message.c: (dbus_message_set_sender):
11567         Remove todo about being able to set sender to NULL.
11568
11569         (dbus_message_set_is_error_reply),
11570         (dbus_message_get_is_error_reply):
11571         * dbus/dbus-message.h:
11572         New functions.
11573
11574         * dbus/dbus-protocol.h:
11575         Add error reply flag.
11576
11577         * test/data/valid-messages/opposite-endian.message:
11578         Add NIL type to test.
11579
11580 2003-01-31  Havoc Pennington  <hp@pobox.com>
11581
11582         * doc/dbus-specification.sgml: fully specify the header.  Add
11583         flags and major protocol version, and change header/body len to
11584         unsigned.
11585
11586         * dbus/dbus-message-builder.c (append_saved_length): append length
11587         as uint32
11588
11589         * dbus/dbus-message.c (dbus_message_create_header): change header
11590         length and body length to unsigned. Add the new fields from the
11591         spec
11592         (_dbus_message_loader_return_buffer): unsigned header/body len
11593
11594 2003-01-30  Havoc Pennington  <hp@pobox.com>
11595
11596         * dbus/dbus-auth.c: rework to use only REJECTED, no
11597         MECHANISMS
11598
11599         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11600         use REJECTED, suggested by Mark McLoughlin
11601
11602 2003-01-30  Havoc Pennington  <hp@pobox.com>
11603
11604         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11605         a better way to report errors here. e.g.  "unix address lacks
11606         path" or something. also "no such file" when the path doesn't
11607         exist, etc.
11608
11609         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11610         leaking list nodes
11611         (dbus_parse_address): add @todo about documenting address format,
11612         and allowing , and ; to be escaped
11613
11614 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11615
11616         * dbus/Makefile.am:
11617         Add dbus-address.[ch]
11618
11619         * dbus/dbus-address.c: (dbus_address_entry_free),
11620         (dbus_address_entries_free), (create_entry),
11621         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11622         (dbus_parse_address), (_dbus_address_test):
11623         * dbus/dbus-address.h:
11624         New files for dealing with address parsing.
11625
11626         * dbus/dbus-connection.c:
11627         Document timeout functions.
11628
11629         * dbus/dbus-message.c:
11630         Document dbus_message_new_from_message.
11631
11632         * dbus/dbus-server-debug.c:
11633         Document.
11634
11635         * dbus/dbus-server.c: (dbus_server_listen):
11636         Parse address and use correct server implementation.
11637
11638         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11639         * dbus/dbus-string.h:
11640         New function with test.
11641
11642         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11643         * dbus/dbus-test.h:
11644         Add address tests.
11645
11646         * dbus/dbus-transport-debug.c:
11647         Document.
11648
11649         * dbus/dbus-transport.c: (_dbus_transport_open):
11650         Parse address and use correct transport implementation.
11651
11652 2003-01-30  Havoc Pennington  <hp@pobox.com>
11653
11654         * dbus/dbus-message.c: use message->byte_order instead of
11655         DBUS_COMPILER_BYTE_ORDER throughout.
11656         (dbus_message_create_header): pad header to align the
11657         start of the body of the message to 8-byte boundary
11658
11659         * dbus/dbus-marshal.h: make all the demarshalers take const
11660         DBusString arguments.
11661
11662         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11663         validate message args here, so we don't have to do slow validation
11664         later, and so we catch bad messages as they are incoming. Also add
11665         better checks on header_len and body_len. Also fill in
11666         message->byte_order
11667
11668         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11669         implemented properly)
11670         (_dbus_string_validate_nul): new function to check all-nul
11671
11672         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11673         get_arg_end_pos and remove all validation
11674         (_dbus_marshal_validate_arg): actually do validation here.
11675
11676 2003-01-29  Havoc Pennington  <hp@pobox.com>
11677
11678         * dbus/dbus-message.c (check_message_handling): fix assertion
11679         failure on set_client_serial
11680
11681 2003-01-28  Havoc Pennington  <hp@pobox.com>
11682
11683         * dbus/dbus-server-debug.c: Add doc section comments
11684
11685         * dbus/dbus-transport-debug.c: add doc section comments
11686
11687 2003-01-28  Havoc Pennington  <hp@redhat.com>
11688
11689         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11690         the reverse order from how I had it
11691         (_dbus_string_base64_encode): reverse encoding order. I was
11692         basically byteswapping everything during encoding.
11693
11694 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11695
11696         * dbus/dbus-connection-internal.h:
11697         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11698         (_dbus_connection_remove_timeout):
11699         Add functions for adding and removing timeouts.
11700
11701         * dbus/dbus-message.c: (dbus_message_new_from_message):
11702         Add new function that takes a message and creates an exact
11703         copy of it, but with the refcount set to 1.
11704         (check_message_handling):
11705         Fix build error.
11706
11707         * dbus/dbus-server-protected.h:
11708         * dbus/dbus-server.c: (_dbus_server_init_base),
11709         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11710         (dbus_server_set_timeout_functions):
11711         (_dbus_server_remove_timeout):
11712         New functions so that a server can add and remove timeouts.
11713
11714         (dbus_server_listen):
11715         Add commented out call to dbus_server_debug_new.
11716
11717         * dbus/dbus-timeout.c: (_dbus_timeout_new):
11718         Actually set the handler, doh.
11719
11720         * dbus/dbus-transport.c: (_dbus_transport_open):
11721         Add commented out call to dbus_transport_debug_client_new.
11722
11723         * dbus/Makefile.am:
11724         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11725
11726 2003-01-28  Havoc Pennington  <hp@pobox.com>
11727
11728         * dbus/dbus-message.c (check_message_handling): function to check
11729         on the loaded message, iterates over it etc.
11730
11731 2003-01-28  Havoc Pennington  <hp@pobox.com>
11732
11733         * test/Makefile.am (dist-hook): fix make distdir
11734
11735         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11736
11737 2003-01-27  Havoc Pennington  <hp@pobox.com>
11738
11739         * dbus/dbus-mempool.c (time_for_size): replace printf with
11740         _dbus_verbose
11741
11742         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11743         empty lines; fix the SAVE_LENGTH stuff to be
11744         START_LENGTH/END_LENGTH so it actually works; couple other
11745         bugfixes
11746
11747         * test/Makefile.am (dist-hook): add dist-hook for .message files
11748
11749         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11750         can be constant or locked.
11751         (_dbus_string_free): allow freeing a const string as
11752         documented/intended
11753
11754         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11755
11756         * dbus/dbus-test-main.c (main): take an argument which is the
11757         directory containing test data
11758
11759         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11760         argument to this and load all the messages in test/data/
11761         checking that they can be loaded or not loaded as appropriate.
11762
11763 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
11764
11765         * bus/dispatch.c: (bus_dispatch_message_handler):
11766         Dispatch messages sent to services.
11767
11768         * bus/driver.c: (bus_driver_send_service_deleted),
11769         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11770         (bus_driver_send_service_acquired):
11771         Add helper functions for sending service related messages.
11772
11773         (bus_driver_send_welcome_message):
11774         Send HELLO_REPLY instead of WELCOME.
11775
11776         (bus_driver_handle_list_services):
11777         Send LIST_SERVICES_REPLY instead of SERVICES.
11778
11779         (bus_driver_handle_own_service),
11780         (bus_driver_handle_service_exists):
11781         New message handlers.
11782
11783         (bus_driver_handle_message):
11784         Invoke new message handlers.
11785
11786         (bus_driver_remove_connection):
11787         Don't remove any services here since that's done automatically
11788         by bus_service_remove_owner now.
11789
11790         * bus/driver.h:
11791         New function signatures.
11792
11793         * bus/services.c: (bus_service_add_owner):
11794         Send ServiceAcquired message if we're the only primary owner.
11795
11796         (bus_service_remove_owner):
11797         Send ServiceAcquired/ServiceLost messages.
11798
11799         (bus_service_set_prohibit_replacement),
11800         (bus_service_get_prohibit_replacement):
11801         Functions for setting prohibit replacement.
11802
11803         (bus_service_has_owner):
11804         New function that checks if a connection is in the owner queue of
11805         a certain service.
11806
11807         * bus/services.h:
11808         Add new function signatures.
11809
11810         * dbus/dbus-list.c: (_dbus_list_test):
11811         Add tests for _dbus_list_remove_last and traversing the list backwards.
11812
11813         * dbus/dbus-list.h:
11814         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11815         go any further, so return NULL then.
11816
11817         * dbus/dbus-protocol.h:
11818         Add new messages, service flags and service replies.
11819
11820 2003-01-26  Havoc Pennington  <hp@pobox.com>
11821
11822         * dbus/dbus-message-builder.c: implement, completely untested.
11823
11824         * test/data/*: add data to be used in testing.
11825         ".message" files are our simple loadable text format.
11826         ".message-raw" will be binary dumps of messages.
11827
11828         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11829
11830 2003-01-26  Havoc Pennington  <hp@pobox.com>
11831
11832         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11833
11834         * dbus/dbus-errors.c (dbus_result_to_string): add
11835         file errors
11836
11837         * dbus/dbus-message-builder.c: new file, will contain code to load
11838         up messages from files. Not implemented yet.
11839
11840 2003-01-26  Havoc Pennington  <hp@pobox.com>
11841
11842         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11843         the sender by setting to NULL
11844
11845 2003-01-26  Havoc Pennington  <hp@pobox.com>
11846
11847         The unit tests pass, but otherwise untested.  If it breaks, the
11848         tests should have been better. ;-)
11849
11850         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11851         the connection.
11852
11853         * dbus/dbus-message.c: redo everything so we maintain
11854         message->header as the only copy of the various fields.
11855         This avoids the possibility of out-of-memory in some cases,
11856         for example dbus_message_lock() can't run out of memory anymore,
11857         and avoids extra copying. Figured I may as well go ahead and do
11858         this since it was busted for dbus_message_lock to not return
11859         failure on OOM, and dbus_message_write_header was totally
11860         unchecked for OOM. Also fixed some random other bugs.
11861
11862         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11863         that strings are nul-terminated. Also, end_pos can be equal
11864         to string length just not greater than, I think.
11865         (_dbus_marshal_set_int32): new function
11866         (_dbus_marshal_set_uint32): new function
11867         (_dbus_marshal_set_string): new function
11868
11869         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11870         a warning, init timeout_list to NULL
11871         (dbus_connection_send_message): don't use uninitialized variable
11872         "serial"
11873
11874         * dbus/dbus-string.c (_dbus_string_replace_len): new function
11875
11876 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11877
11878         * bus/driver.c: (bus_driver_handle_hello),
11879         (bus_driver_send_welcome_message):
11880         Plug leaks
11881
11882 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11883
11884         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11885         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11886         (dbus_connection_unref):
11887         * dbus/dbus-marshal.c: (_dbus_marshal_test):
11888         * dbus/dbus-message.c: (dbus_message_unref),
11889         Plug memory leaks.
11890
11891         (dbus_message_get_fields):
11892         Remove debugging printout.
11893
11894         (_dbus_message_loader_return_buffer):
11895         Don't store the header string.
11896
11897         (_dbus_message_test):
11898         Plug leaks.
11899
11900 2003-01-26  Richard Hult  <rhult@codefactory.se>
11901
11902         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11903         the file descriptor list, since it can change under us.
11904
11905 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11906
11907         * glib/dbus-gmain.c: (dbus_connection_prepare),
11908         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11909         (remove_watch), (dbus_connection_hookup_with_g_main):
11910         Rewrite the glib handling to use its own GSource instead of a
11911         GIOChannel so we can catch messages put in the queue while waiting
11912         for a reply.
11913
11914 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11915
11916         * bus/Makefile.am:
11917         * bus/connection.c: (connection_disconnect_handler),
11918         (connection_watch_callback), (bus_connection_setup):
11919         * bus/dispatch.c: (send_one_message),
11920         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11921         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11922         * bus/dispatch.h:
11923         * bus/driver.c: (bus_driver_send_service_deleted),
11924         (bus_driver_send_service_created), (bus_driver_handle_hello),
11925         (bus_driver_send_welcome_message),
11926         (bus_driver_handle_list_services), (bus_driver_remove_connection),
11927         (bus_driver_handle_message):
11928         * bus/driver.h:
11929         Refactor code, put the message dispatching in its own file. Use
11930         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11931         is disconnected.
11932
11933 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11934
11935         * dbus/dbus-internals.h:
11936         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11937
11938         * dbus/dbus-message.c: (dbus_message_get_sender):
11939         * dbus/dbus-message.h:
11940         Implement dbus_message_get_sender.
11941
11942         * dbus/dbus-protocol.h:
11943         Add message and service defines.
11944
11945 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11946
11947         * dbus/dbus-connection.c: (dbus_connection_send_message):
11948         * dbus/dbus-message-internal.h:
11949         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11950         (dbus_message_write_header):
11951         Remove _dbus_messag_unlock and don't set the client serial on a
11952         message if one already exists.
11953
11954 2003-01-24  Havoc Pennington  <hp@pobox.com>
11955
11956         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
11957         list_pool
11958
11959         * bus/driver.c (bus_driver_handle_list_services): fix a leak
11960         on OOM
11961
11962 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11963
11964         * dbus/dbus-list.c: (alloc_link), (free_link):
11965         Use a memory pool for the links.
11966
11967 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11968
11969         * bus/connection.c: (bus_connection_foreach):
11970         * bus/connection.h:
11971         Add new bus_connection_foreach function.
11972
11973         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
11974         Add function that broadcasts a message to all clients.
11975
11976         (bus_driver_send_service_created), (bus_driver_handle_hello),
11977         (bus_driver_send_welcome_message),
11978         (bus_driver_handle_list_services), (bus_driver_message_handler):
11979         Implement functions that take care of listing services, and notifying
11980         clients when new services are created.
11981
11982         * bus/services.c: (bus_services_list):
11983         * bus/services.h:
11984         Add new function that returns an array of strings with the currently
11985         registered services.
11986
11987         * glib/dbus-glib.h:
11988         * glib/dbus-gmain.c:
11989         Update copyright year.
11990
11991 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11992
11993         * dbus/dbus-connection.c: (dbus_connection_send_message):
11994         Unlock the message in case it was sent earlier.
11995
11996         (dbus_connection_send_message_with_reply_and_block):
11997         Remove the reply message from the list.
11998
11999         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12000         Set array_len and new_pos correctly.
12001
12002         (_dbus_marshal_test):
12003         Remove debug output.
12004
12005         * dbus/dbus-message-internal.h:
12006         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12007         New function that returns the reply serial.
12008
12009         (_dbus_message_unlock):
12010         New function that unlocks a message and resets its header.
12011
12012         (dbus_message_append_string_array),
12013         (dbus_message_get_fields_valist),
12014         (dbus_message_iter_get_field_type),
12015         (dbus_message_iter_get_string_array),
12016         (dbus_message_get_fields),
12017         (dbus_message_append_fields_valist):
12018         Handle string arrays.
12019
12020         (dbus_message_set_sender):
12021         Make this function public since the bus daemon needs it.
12022
12023         (decode_header_data):
12024         Set the reply serial to -1 initially.
12025
12026         * dbus/dbus-message.h:
12027         Add dbus_message_set_sender.
12028
12029 2003-01-24  Havoc Pennington  <hp@pobox.com>
12030
12031         * doc/dbus-specification.sgml: add some stuff
12032
12033 2003-01-22  Havoc Pennington  <hp@pobox.com>
12034
12035         * doc/dbus-specification.sgml: Start to document the protocol.
12036
12037 2003-01-22  Havoc Pennington  <hp@pobox.com>
12038
12039         * dbus/dbus-connection.c
12040         (dbus_connection_send_message_with_reply_and_block): add some @todo
12041
12042         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12043
12044 2003-01-21  Havoc Pennington  <hp@pobox.com>
12045
12046         (patch untested because can't compile)
12047
12048         * bus/driver.c (create_unique_client_name): make this function
12049         never recycle client names. Also, caller should initialize
12050         the DBusString.
12051
12052         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12053
12054 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12055
12056         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12057         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12058         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12059         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12060         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12061         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12062         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12063         * dbus/dbus-marshal.h:
12064         * dbus/dbus-protocol.h:
12065         Add support for marshalling and demarshalling integer, double
12066         and string arrays.
12067
12068 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12069
12070         * bus/Makefile.am:
12071         Add driver.[ch]
12072
12073         * bus/connection.c: (connection_disconnect_handler):
12074         Remove the connection from the bus driver's list.
12075
12076         (connection_watch_callback): Dispatch messages.
12077
12078         (free_connection_data): Free connection name.
12079
12080         (bus_connection_setup): Add connection to the bus driver's list.
12081         (bus_connection_remove_owned_service):
12082         (bus_connection_set_name), (bus_connection_get_name):
12083         Add functions for setting and getting the connection's name.
12084
12085         * bus/connection.h:
12086         Add function headers.
12087
12088         * bus/driver.c: (create_unique_client_name),
12089         (bus_driver_handle_hello_message),
12090         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12091         (bus_driver_add_connection), (bus_driver_remove_connection):
12092         * bus/driver.h:
12093         * bus/main.c:
12094         * bus/services.c: (bus_service_free):
12095         * bus/services.h:
12096         New file that handles communication and registreation with the bus
12097         itself.
12098
12099 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12100
12101         * dbus/dbus-connection.c: (dbus_connection_send_message):
12102         Add a new client_serial parameter.
12103
12104         (dbus_connection_send_message_with_reply):
12105         Remove a @todo since we've implemented the blocking function.
12106
12107         (dbus_connection_send_message_with_reply_and_block):
12108         New function that sends a message and waits for a reply and
12109         then returns the reply.
12110
12111         * dbus/dbus-connection.h:
12112         Add new functions.
12113
12114         * dbus/dbus-errors.c: (dbus_result_to_string):
12115         * dbus/dbus-errors.h:
12116         Add new DBUS_RESULT.
12117
12118         * dbus/dbus-message-internal.h:
12119         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12120         (_dbus_message_set_sender), (dbus_message_write_header),
12121         (dbus_message_new_reply), (decode_header_data),
12122         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12123         * dbus/dbus-message.h:
12124         Add new functions that set the reply serial and sender.
12125         Also marshal and demarshal them correctly and add test.
12126
12127         * dbus/dbus-protocol.h:
12128         Add new DBUS_MESSAGE_TYPE_SENDER.
12129
12130         * glib/dbus-glib.h:
12131         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12132         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12133         (dbus_connection_hookup_with_g_main):
12134         * glib/test-dbus-glib.c: (main):
12135         Rewrite to use GIOChannel and remove the GSource crack.
12136
12137         * test/echo-client.c: (main):
12138         * test/watch.c: (check_messages):
12139         Update for changed APIs
12140
12141 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12142
12143         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12144
12145         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12146         Create a DBusTimeoutList.
12147         (dbus_connection_set_timeout_functions): Add new function to
12148         set timeout callbacks
12149
12150         * dbus/dbus-connection.h: Add public DBusTimeout API.
12151
12152         * dbus/dbus-message.c: (dbus_message_get_service):
12153         * dbus/dbus-message.h:  New function.
12154
12155         * dbus/dbus-server.c: Fix small doc typo.
12156
12157         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12158
12159 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12160
12161         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12162         of the string, just as long as specified.
12163
12164 2003-01-19  Havoc Pennington  <hp@pobox.com>
12165
12166         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12167         new function
12168
12169         * dbus/dbus-server.c (dbus_server_set_max_connections)
12170         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12171         keep track of current number of connections, and add API for
12172         setting a max (but haven't implemented enforcing the max yet)
12173
12174 2003-01-18  Havoc Pennington  <hp@pobox.com>
12175
12176         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12177         reading/writing if read_watch != NULL or write_watch != NULL.
12178
12179         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12180         the message loader code to actually load message->header and
12181         message->body into the newly-created message.
12182
12183         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12184         in OOM case
12185
12186         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12187         (dbus_connection_get_max_message_size)
12188         (dbus_connection_set_max_live_messages_size)
12189         (dbus_connection_get_max_live_messages_size): implement some
12190         resource limitation functions
12191
12192         * dbus/dbus-resources.c: new file implementing some of the
12193         resource limits stuff
12194
12195         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12196         missing docs, add @todo to handle OOM etc.
12197
12198         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12199         docs
12200
12201 2003-01-18  Havoc Pennington  <hp@pobox.com>
12202
12203         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12204         connection if it hasn't been already.
12205
12206         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12207         replace with DisconnectFunction.
12208
12209 2003-01-18  Havoc Pennington  <hp@pobox.com>
12210
12211         Building --disable-verbose-mode --disable-asserts --disable-tests
12212         cuts the library from 112K to 45K or so
12213
12214         * configure.in: check for varargs macro support,
12215         add --enable-verbose-mode, --enable-asserts.
12216
12217         * dbus/dbus-internals.h (_dbus_assert): support
12218         DBUS_DISABLE_ASSERT
12219         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12220
12221 2003-01-18  Havoc Pennington  <hp@pobox.com>
12222
12223         * dbus/dbus-test.c: include config.h so that tests actually run
12224
12225         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12226         so the failure mode when that assumption fails will be plenty
12227         obvious.
12228
12229 2003-01-18  Havoc Pennington  <hp@pobox.com>
12230
12231         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12232
12233         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12234         the distribution
12235
12236         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12237         since we don't want to use those in make check
12238
12239 2003-01-15  Havoc Pennington  <hp@redhat.com>
12240
12241         Release 0.2
12242
12243         * NEWS: update
12244
12245 2003-01-15  Havoc Pennington  <hp@redhat.com>
12246
12247         * test/Makefile.am: fix so that test source code ends up in the
12248         distribution on make distcheck
12249
12250 2003-01-15  Havoc Pennington  <hp@redhat.com>
12251
12252         Release 0.1.
12253
12254         * NEWS: update
12255
12256 2003-01-15  Havoc Pennington  <hp@redhat.com>
12257
12258         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12259         fix build when --disable-tests
12260
12261         * Makefile.am (EXTRA_DIST): put HACKING in here
12262
12263         * HACKING: document procedure for making a tarball release.
12264
12265 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12266
12267         * bus/connection.c: (connection_error_handler),
12268         (bus_connection_setup):
12269         * bus/main.c: (main):
12270         Make sure that the DBusConnectionData struct is NULLed
12271         out to prevent a segfault.
12272
12273         * dbus/dbus-errors.c: (dbus_result_to_string):
12274         * dbus/dbus-errors.h:
12275         * dbus/dbus-message.c: (dbus_message_get_fields),
12276         (dbus_message_get_fields_valist), (_dbus_message_test):
12277         * dbus/dbus-message.h:
12278         Make dbus_message_get_fields return a result code so we can
12279         track invalid fields as well as oom.
12280
12281 2003-01-11  Havoc Pennington  <hp@pobox.com>
12282
12283         * configure.in: change --enable-test/--enable-ansi action-if-given
12284         to enable_foo=$enableval instead of enable_foo=yes
12285
12286 2003-01-08  Havoc Pennington  <hp@pobox.com>
12287
12288         * dbus/dbus-string.c (_dbus_string_align_length): new function
12289
12290         * dbus/dbus-test-main.c: move main() for test app here
12291         * dbus/dbus-test.c
12292         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12293         symbol to run tests, because dbus-test isn't in the main
12294         library
12295
12296         Code review nitpicks.
12297
12298         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12299         for people with narrow emacs ;-). Assert client_serial was filled
12300         in. Assert message->name != NULL.
12301         (dbus_message_append_fields): have "first_field_type" arg separate
12302         from va list, needed for C++ binding that also uses varargs IIRC
12303         and helps with type safety
12304         (dbus_message_new): add @todo about using DBusString to store
12305         service/name internally
12306         (dbus_message_new): don't leak ->service and ->name on OOM later
12307         in the function
12308         (dbus_message_unref): free the service name
12309         (dbus_message_get_fields): same change to varargs
12310         i.e. first_field_type
12311         (_dbus_message_loader_return_buffer): assert that the message data
12312         is aligned (if not it's a bug in our code). Put in verbose griping
12313         about why we set corrupted = TRUE.
12314         (decode_header_data): add FIXME that char* is evil.  Was going to
12315         add FIXME about evil locale-specific string.h strncmp, but just
12316         switched to wacky string-as-uint32 optimization. Move check for
12317         "no room for field name" above get_const_data_len() to avoid
12318         assertion failure in get_const_data_len if we have trailing 2
12319         bytes or the like. Check for service and name fields being
12320         provided twice. Don't leak service/name on error. Require field
12321         names to be aligned to 4 bytes.
12322
12323         * dbus/dbus-marshal.c: move byte swap stuff to header
12324         (_dbus_pack_int32): uscore-prefix
12325         (_dbus_unpack_int32): uscore-prefix
12326         (_dbus_unpack_uint32): export
12327         (_dbus_demarshal_string): add @todo complaining about use of
12328         memcpy()
12329         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12330         handling allowing corrupt data to go unchecked
12331
12332 2003-01-08  Havoc Pennington  <hp@redhat.com>
12333
12334         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12335         to the select() as needed for authentication. (should be using
12336         _dbus_poll() not select, but for another day)
12337
12338         * dbus/dbus.h: include dbus/dbus-protocol.h
12339
12340 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12341
12342         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12343         dbus-connection.h
12344
12345 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12346
12347         * dbus/dbus-internals.c: (_dbus_type_to_string):
12348         New function that returns a string describing a type.
12349
12350         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12351         * dbus/dbus-marshal.h:
12352         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12353         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12354         (dbus_message_iter_get_byte_array):
12355         * dbus/dbus-message.h:
12356         Add new convenience functions for appending and getting message fields.
12357         Also add demarshalling routines for byte arrays.
12358
12359 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12360
12361         * dbus/dbus-connection-internal.h:
12362         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12363         (_dbus_connection_get_next_client_serial),
12364         (dbus_connection_send_message):
12365         * dbus/dbus-internals.h:
12366         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12367         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12368         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12369         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12370         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12371         (_dbus_verbose_bytes), (_dbus_marshal_test):
12372         * dbus/dbus-marshal.h:
12373         * dbus/dbus-message-internal.h:
12374         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12375         (dbus_message_write_header), (_dbus_message_lock),
12376         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12377         (dbus_message_get_name), (dbus_message_append_int32),
12378         (dbus_message_append_uint32), (dbus_message_append_double),
12379         (dbus_message_append_string), (dbus_message_append_byte_array),
12380         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12381         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12382         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12383         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12384         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12385         (decode_header_data), (_dbus_message_loader_return_buffer),
12386         (message_iter_test), (_dbus_message_test):
12387         * dbus/dbus-message.h:
12388         * dbus/dbus-protocol.h:
12389         * dbus/dbus-test.c: (main):
12390         * dbus/dbus-test.h:
12391         * glib/test-dbus-glib.c: (message_handler), (main):
12392         * test/echo-client.c: (main):
12393         * test/watch.c: (check_messages):
12394         Make messages sendable and receivable for real.
12395
12396 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12397
12398         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12399         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12400         * dbus/dbus-message.c: (dbus_message_append_int32),
12401         (dbus_message_append_uint32), (dbus_message_append_double),
12402         (dbus_message_append_string), (dbus_message_append_byte_array):
12403         Handle OOM restoration.
12404
12405 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12406
12407         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12408         (_dbus_demarshal_string), (_dbus_marshal_test):
12409         * dbus/dbus-marshal.h:
12410         * dbus/dbus-message.c: (dbus_message_get_name),
12411         Document these functions.
12412
12413         (dbus_message_append_int32), (dbus_message_append_uint32),
12414         (dbus_message_append_double), (dbus_message_append_string),
12415         (dbus_message_append_byte_array):
12416         * dbus/dbus-message.h:
12417         Add functions for adding message fields of different types.
12418
12419         * dbus/dbus-protocol.h:
12420         Add the different types.
12421
12422 2003-01-05  Havoc Pennington  <hp@pobox.com>
12423
12424         * bus/connection.c: implement routines for handling connections,
12425         first thing is keeping a list of owned services on each connection
12426         and setting up watches etc.
12427
12428         * bus/services.c: implement a mapping from service names to lists
12429         of connections
12430
12431         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12432
12433         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12434         to use static mutexes for global data
12435
12436         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12437         collection of functions to set/get application-specific data
12438         on the DBusConnection.
12439
12440 2003-01-04  Havoc Pennington  <hp@pobox.com>
12441
12442         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12443         (_dbus_poll): new function
12444
12445         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12446         copied from GLib
12447
12448         * bus/loop.c: initial code for the daemon main loop
12449
12450 2003-01-04  Havoc Pennington  <hp@pobox.com>
12451
12452         * test/watch.c (error_handler): make it safe if the error handler
12453         is called multiple times (if we s/error handler/disconnect
12454         handler/ we should just guarantee it's called only once)
12455
12456         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12457         error handler on disconnect (it's quite possible we should
12458         just change the error handler to a "disconnect handler," I'm
12459         not sure we have any other meaningful errors)
12460
12461         * configure.in: check for getpwnam_r
12462
12463         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12464         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12465         mechanism as in SASL spec, using socket credentials
12466
12467         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12468         (_dbus_send_credentials_unix_socket): new function
12469
12470         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12471         dbus_accept()
12472         (_dbus_write): only check errno if <0 returned
12473         (_dbus_write_two): ditto
12474
12475 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12476
12477         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12478         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12479         (_dbus_marshal_test):
12480         * dbus/dbus-marshal.h:
12481         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12482         to _dbus_marshal_utf8_string. Also fix some tests.
12483
12484 2002-12-28  Harri Porten  <porten@kde.org>
12485
12486         * configure.in: added check for C++ compiler and a very cheesy
12487         check for the Qt integration
12488
12489         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12490
12491         * qt/Makefile.am: added
12492
12493         * qt/.cvsignore: added
12494
12495         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12496         latter, added #ifdef QT_THREAD_SUPPORT guard.
12497
12498         * dbus/Makefile.am: added missing headers for make dist
12499
12500 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12501
12502         * dbus/Makefile.am: fixup export-symbols-regex.
12503
12504 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12505
12506         * acinclude.m4: Add this file and put the
12507         PKG_CHECK_MODULE macro in it.
12508
12509 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12510
12511         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12512         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12513         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12514         (_dbus_marshal_test):
12515         Make the demarshalling routines align the pos argument.
12516         Add string marshalling tests and fix the obvious bugs
12517         discovered.
12518
12519 2002-12-26  Havoc Pennington  <hp@pobox.com>
12520
12521         * dbus/dbus-auth.c: fixes fixes fixes
12522
12523         * dbus/dbus-transport-unix.c: wire up support for
12524         encoding/decoding data on the wire
12525
12526         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12527         (_dbus_auth_decode_data): append to target string
12528         instead of nuking it.
12529
12530 2002-12-26  Havoc Pennington  <hp@pobox.com>
12531
12532         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12533         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12534         doh
12535
12536         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12537         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12538         now). Main point is because I wanted unpack_uint32 to implement
12539         _dbus_verbose_bytes
12540         (_dbus_verbose_bytes): new function
12541
12542         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12543
12544         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12545         mechanism to handle a corrupt message stream
12546         (_dbus_message_loader_new): fix preallocation to only prealloc,
12547         not prelengthen
12548
12549         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12550         (_dbus_string_test): enhance tests for copy/move and fix the
12551         functions
12552
12553         * dbus/dbus-transport-unix.c: Hold references in more places to
12554         avoid reentrancy problems
12555
12556         * dbus/dbus-transport.c: ditto
12557
12558         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12559         leak reference count in no-message case
12560
12561         * test/watch.c (do_mainloop): handle adding/removing watches
12562         during iteration over the watches. Also, ref the connection/server
12563         stored on a watch, so we don't try to mangle a destroyed one.
12564
12565         * dbus/dbus-transport-unix.c (do_authentication): perform
12566         authentication
12567
12568         * dbus/dbus-auth.c (get_state): add a state
12569         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12570         (_dbus_auth_get_unused_bytes): append the unused bytes
12571         to the passed in string, rather than prepend
12572
12573         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12574         the auth conversation DBusAuth
12575
12576         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12577         (_dbus_transport_new_for_domain_socket): when creating a
12578         transport, pass in whether it's a client-side or server-side
12579         transport so we know which DBusAuth to create
12580
12581 2002-12-03  Havoc Pennington  <hp@pobox.com>
12582
12583         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12584         _after_ finalizing the derived members
12585         (unix_connection_set): unref watch if we fail to add it
12586
12587         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12588         transport first, so that the connection owned by the
12589         transport will be valid as the transport finalizes.
12590
12591         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12592         if necessary, and remove watches from the connection.
12593
12594         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12595
12596 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12597
12598         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12599         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12600         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12601         (_dbus_marshal_test):
12602         * dbus/dbus-marshal.h:
12603         Add string marshal functions and have the demarshal functions
12604         return the new position.
12605
12606 2002-12-25  Havoc Pennington  <hp@pobox.com>
12607
12608         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12609         it is a simple protocol that just maps directly to SASL.
12610
12611         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12612         initial implementation, not actually used yet.
12613
12614         * dbus/dbus-string.c (_dbus_string_find): new function
12615         (_dbus_string_equal): new function
12616         (_dbus_string_base64_encode): new function
12617         (_dbus_string_base64_decode): new function
12618
12619 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12620
12621         * dbus/Makefile.am:
12622         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12623         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12624         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12625         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12626         * dbus/dbus-marshal.h:
12627         * dbus/dbus-protocol.h:
12628         * dbus/dbus-test.c: (main):
12629         * dbus/dbus-test.h:
12630         Add un-optimized marshalling/demarshalling routines.
12631
12632 2002-12-25  Harri Porten  <porten@kde.org>
12633
12634         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12635
12636 2002-12-24  Zack Rusin  <zack@kde.org>
12637
12638         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12639         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12640         main loop stuff
12641
12642 2002-12-24  Havoc Pennington  <hp@pobox.com>
12643
12644         * glib/dbus-gthread.c: fix include
12645
12646         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12647         I think glib API needs to change, though, as you don't
12648         want to use DBusMessageFunction, you want to use the
12649         DBusMessageHandler object. Probably
12650         dbus_connection_open_with_g_main_loop()
12651         and dbus_connection_setup_g_main_loop() or something like that
12652         (but think of better names...) that just create a connection
12653         that has watch/timeout functions etc. already set up.
12654
12655         * dbus/dbus-connection.c
12656         (dbus_connection_send_message_with_reply): new function just to
12657         show how the message handler helps us deal with replies.
12658
12659         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12660
12661         * dbus/dbus-string.c (_dbus_string_test): free a string that
12662         wasn't
12663
12664         * dbus/dbus-hash.c: use memory pools for the hash entries
12665         (rebuild_table): be more paranoid about overflow, and
12666         shrink table when we can
12667         (_dbus_hash_test): reduce number of sprintfs and write
12668         valid C89. Add tests for case where we grow and then
12669         shrink the hash table.
12670
12671         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12672
12673         * dbus/dbus-connection.c (dbus_connection_register_handler)
12674         (dbus_connection_unregister_handler): new functions
12675
12676         * dbus/dbus-message.c (dbus_message_get_name): new
12677
12678         * dbus/dbus-list.c: fix docs typo
12679
12680         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12681         an object representing a handler for messages.
12682
12683 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12684
12685         * glib/dbus-glib.h:
12686         * glib/dbus-gthread.c: (dbus_gthread_init):
12687         Don't use the gdbus prefix for public functions.
12688
12689 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12690
12691         * Makefile.am:
12692         * configure.in:
12693         Add GLib checks and fixup .pc files
12694
12695         * glib/Makefile.am:
12696         * glib/dbus-glib.h:
12697         * glib/dbus-gmain.c: (gdbus_connection_prepare),
12698         (gdbus_connection_check), (gdbus_connection_dispatch),
12699         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12700         (dbus_connection_gsource_new):
12701         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12702         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12703         * glib/test-dbus-glib.c: (message_handler), (main):
12704         Add GLib support.
12705
12706 2002-12-15  Harri Porten  <porten@kde.org>
12707
12708         * autogen.sh: check for libtoolize before attempting to use it
12709
12710         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12711         struct.
12712
12713         * .cvsignore: ignore more stamp files
12714
12715         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12716
12717         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12718         without make install.
12719
12720 2002-12-15  Havoc Pennington  <hp@pobox.com>
12721
12722         * dbus/dbus-threads.c: add thread stubs that a higher library
12723         layer can fill in. e.g. the GLib wrapper might fill them in with
12724         GThread stuff. We still need to use this thread API to
12725         thread-safe-ize the library.
12726
12727 2002-12-12  Havoc Pennington  <hp@pobox.com>
12728
12729         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12730         below new interfaces and include fewer system headers.
12731
12732         * dbus/dbus-sysdeps.c (_dbus_read): new function
12733         (_dbus_write): new function
12734         (_dbus_write_two): new function
12735         (_dbus_connect_unix_socket): new function
12736         (_dbus_listen_unix_socket): new function
12737
12738         * dbus/dbus-message-internal.h: change interfaces to use
12739         DBusString
12740
12741 2002-12-11  Havoc Pennington  <hp@pobox.com>
12742
12743         * dbus/dbus-types.h: add dbus_unichar
12744
12745         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12746
12747         * dbus/dbus-connection.c (dbus_connection_send_message): return
12748         TRUE on success
12749
12750         * dbus/dbus-transport.c: include dbus-watch.h
12751
12752         * dbus/dbus-connection.c: include dbus-message-internal.h
12753
12754         * HACKING: add file with coding guidelines stuff.
12755
12756         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12757         handling here, for security purposes (as in vsftpd). Not actually
12758         using this class yet.
12759
12760         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12761         system/libc usage here, as in vsftpd, for ease of auditing (and
12762         should also simplify portability). Haven't actually moved all the
12763         system/libc usage into here yet.
12764
12765 2002-11-25  Havoc Pennington  <hp@pobox.com>
12766
12767         * dbus/dbus-internals.c (_dbus_verbose): fix to not
12768         always print the first verbose message.
12769
12770 2002-11-24  Havoc Pennington  <hp@pobox.com>
12771
12772         * test/echo-client.c, test/echo-server.c: cheesy test
12773         clients.
12774
12775         * configure.in (AC_CHECK_FUNCS): check for writev
12776
12777         * dbus/dbus-message.c (_dbus_message_get_network_data): new
12778         function
12779
12780         * dbus/dbus-list.c (_dbus_list_foreach): new function
12781
12782         * dbus/dbus-internals.c (_dbus_verbose): new function
12783
12784         * dbus/dbus-server.c, dbus/dbus-server.h: public object
12785         representing a server that listens for connections.
12786
12787         * dbus/.cvsignore: create
12788
12789         * dbus/dbus-errors.h, dbus/dbus-errors.c:
12790         public API for reporting errors
12791
12792         * dbus/dbus-connection.h, dbus/dbus-connection.c:
12793         public object representing a connection that
12794         sends/receives messages. (Same object used for
12795         both client and server.)
12796
12797         * dbus/dbus-transport.h, dbus/dbus-transport.c:
12798         Basic abstraction for different kinds of stream
12799         that we might read/write messages from.
12800
12801 2002-11-23  Havoc Pennington  <hp@pobox.com>
12802
12803         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12804         _DBUS_INT_MAX
12805
12806         * dbus/dbus-test.c (main): add list test, and include
12807         dbus-test.h as intended
12808
12809         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12810         (_dbus_hash_table_remove_int): return value indicates
12811         whether the entry existed to remove
12812
12813         * dbus/dbus-list.c: add linked list utility class,
12814         with docs and tests
12815
12816         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12817         array sometimes.
12818
12819 2002-11-23  Havoc Pennington  <hp@pobox.com>
12820
12821         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12822         DBUS_END_DECLS to nothing, that should fix this once and for all
12823
12824         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12825
12826         * dbus/dbus-message.c, dbus/dbus-hash.c:
12827         add some missing @brief
12828
12829 2002-11-23  Havoc Pennington  <hp@pobox.com>
12830
12831         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12832         to avoid confusing Doxygen
12833
12834         * dbus/dbus-hash.c: @} not }@
12835
12836         * dbus/dbus-message.c (struct DBusMessage): split out
12837         internals docs
12838
12839 2002-11-23  Havoc Pennington  <hp@pobox.com>
12840
12841         * configure.in: pile on more warning flags if using gcc
12842
12843         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12844         to document static functions
12845
12846         * configure.in: add summary to end of configure so it
12847         looks nice and attractive
12848
12849         * dbus/dbus-hash.c: finish implementation and write unit
12850         tests and docs
12851
12852         * configure.in: add --enable-tests to enable unit tests
12853
12854         * dbus/dbus-test.c: test program to run unit tests
12855         for all files in dbus/*, initially runs a test for
12856         dbus-hash.c
12857
12858         * dbus/dbus-internals.h: file to hold some internal utility stuff
12859
12860 2002-11-22  Havoc Pennington  <hp@redhat.com>
12861
12862         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12863         "ported" away from Tcl
12864
12865         * dbus/dbus-types.h: header for types such as dbus_bool_t
12866
12867 2002-11-22  Havoc Pennington  <hp@redhat.com>
12868
12869         * dbus/dbus.h: fixups for doc warnings
12870
12871         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12872         macros
12873         (QUIET): make it quiet so we can see warnings
12874
12875         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12876
12877 2002-11-22  Havoc Pennington  <hp@redhat.com>
12878
12879         * Makefile.am: include "Doxyfile" target in all-local
12880
12881         * configure.in: generate the Doxyfile
12882
12883         * Doxyfile.in: move Doxyfile here, so we can use
12884         configure to generate a Doxyfile with the right
12885         version number etc.
12886
12887 2002-11-22  Havoc Pennington  <hp@redhat.com>
12888
12889         * dbus/dbus-message.c: move inline docs into .c file
12890
12891         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12892         so all docs are under doc/
12893         (MAN_EXTENSION): generate man pages. Use extension
12894         ".3dbus" which matches ".3qt" on my system,
12895         I guess this is OK, I don't know really.
12896         (FILE_PATTERNS): look for .c files not .h, makes sense
12897         for plain C I think
12898
12899 2002-11-22  Havoc Pennington  <hp@pobox.com>
12900
12901         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12902         because any app can be a server, and any app can be a client,
12903         the bus is a special kind of server.
12904
12905 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
12906
12907         * Doxyfile : adding. Still needs Makefile rules to be generated
12908         automatically (just run "doxygen" in the toplevel dir for now to
12909         generate docs)
12910
12911         * dbus/dbus-message.h : Adding sample docs (javadoc since
12912         resembles gtk-doc a little more)
12913
12914         * dbus/dbus.h : Adding sample docs
12915
12916 2002-11-21  Havoc Pennington  <hp@redhat.com>
12917
12918         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12919         so we can allow ourselves to include files directly,
12920         instead of having to use dbus.h
12921
12922         * dbus/dbus.h: fill in
12923
12924         * dbus/dbus-message.h: sketch out a sample header file.
12925         Include griping if you include it directly instead of
12926         via dbus.h
12927
12928         * dbus/dbus-macros.h: new file with macros for extern "C",
12929         TRUE/FALSE, NULL, etc.
12930
12931         * doc/file-boilerplate.c: put include guards in here
12932
12933 2002-11-21  Havoc Pennington  <hp@redhat.com>
12934
12935         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12936
12937         * COPYING: include the GPL as well, and license code
12938         under both AFL and GPL.
12939
12940 2002-11-21  Havoc Pennington  <hp@redhat.com>
12941
12942         * acconfig.h: get rid of this
12943
12944         * autogen.sh (run_configure): add --no-configure option
12945
12946         * configure.in: remove AC_ARG_PROGRAM to make
12947         autoconf complain less. add AC_PREREQ.
12948         add AC_DEFINE third arg.
12949
12950 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
12951
12952         * doc/Makefile.am:
12953         Fix references so we can distcheck.
12954
12955 2002-11-21  Havoc Pennington  <hp@redhat.com>
12956
12957         * Initial module creation
12958