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         * bus/connection.c (bus_connections_expect_reply): Make
4         pending reply limit not common to all connections (Bug #5416)
5         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
6
7 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
8
9         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
10
11 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
12
13         * gcj/Makefile.am: point to correct jar command (Bug #4529)
14         patch from Doug Goldstein <cardoe at gentoo.org>
15
16 2006-02-09  Joe Shaw  <joeshaw@novell.com>
17
18         * mono/Arguments.cs: Fix a magic number in the mono bindings
19         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
20
21 2006-01-27  Robert McQueen  <robot101@debian.org>
22
23         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
24         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
25         when generating the client-side methods, instead of overloading
26         CSymbol which broke everything horribly. My apologies.
27
28 2006-01-27  Robert McQueen  <robot101@debian.org>
29
30         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
31         by me and Rob Taylor to add a simple_free function to D-Bus map
32         and collection types, which allows those types which can be freed
33         with a GDestroyNotify (such as GHashTables and GArrays, but not
34         GPtrArrays) to be stored as the values in hashtables.
35
36         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
37         Patch by Rob Taylor to add nested dicts to the glib tests to check
38         the above code works, and appears not to leak when called repeatedly.
39
40 2006-01-27  Robert McQueen  <robot101@debian.org>
41
42         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
43         to free a D-Bus allocated string with dbus_free () instead of
44         g_free ().
45
46 2006-01-27  Iain Holmes  <iain@openedhand.com>
47
48         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
49         method from being called multiple times.
50
51 2006-01-19  Robert McQueen  <robot101@debian.org>
52
53         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
54         <rob.taylor@collabora.co.uk> to add support for generating bindings
55         to arrays that are represented as GPtrArrays rather than GArrays (ie
56         size-variable things, such as strings, objects, structs, etc).
57
58 2006-01-05  Robert McQueen  <robot101@debian.org>
59
60         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
61         <ricardo.kekki@movial.fi> to make it possible to inherit from
62         DBusGProxy, by splitting the DBusGProxy struct into a public part and
63         a private part, and moving the setting of the DBusGProxyManager into a
64         connection property, allowing proper GObject construction.
65
66 2006-01-05  Robert McQueen  <robot101@debian.org>
67
68         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
69         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
70         annotations when generating glib client bindings.
71
72 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
73
74         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
75
76         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
77
78 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
79
80         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
81
82 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
83
84         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
85
86 2005-12-19  Ross Burton  <ross@openedhand.com>
87
88         * doc/dbus-tutorial.xml:
89         Document the Glib client-side bindings, and list all possible annotations.
90
91 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
92
93         * dbus/bus.c (dbus_bus_release_name): Add documentation
94
95 2005-12-06  Robert McQueen  <robot101@debian.org>
96
97         * python/service.py: s/sucessful/successful/ so we're allocating to
98         and reading from the same variable. Oops.
99
100 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
101
102         * Released 0.60
103
104 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
105
106         * test/qt/Makefile.am: build from srcdir
107
108         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
109         Note - this code is wrong and needs to be fixed by the Qt binding
110         developers.  The flags should be treated as bitfields and not enums.
111
112         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
113
114 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
115
116         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
117           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
118           in production code
119
120 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
121
122         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
123         method for getting messages off the bus in the absence of a
124         mainloop.  This method is much like 
125         dbus_connection_read_write_dispatch except it does not dispatch
126         the messages to a registered filter function.  Instead it
127         allows a developer to process messages by directly popping
128         them off the bus.
129
130 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
131
132         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
133         the parser to continue instead of returning error
134         (bus_desktop_file_load): Do not free parser data when
135         parse_section_start or parse_key_value fails because it was 
136         already freed by parser_free (patch from Carlos Garcia Campos  
137         <carlosgc at gnome.org>)
138
139 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
140
141         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
142         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
143         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
144         test/test-segfault.c, test/test-utils.c,
145         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
146         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
147         Various cleanup of dead code and compiler warnings (patch from
148         Kjartan Maraas <kmaraas at gnome.org>) 
149
150 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
151
152         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
153         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
154
155 2005-11-27  Robert McQueen  <robot101@debian.org>
156
157         * python/dbus_bindings.pyx: Repair my previous commit which reverted
158         part of the preceding one. Oops. Merge patch by Johan Hedberg
159         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
160         on big-endian platforms.
161
162         * test/python/test-client.py: Add some 16-bit integers to the test
163         values.
164
165 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
166
167         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
168         method return message for property getters
169
170 2005-11-27  Robert McQueen  <robot101@debian.org>
171
172         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
173         with type v of an instance of dbus.Variant(foo, type='x') caused
174         it to be boxed twice before sending over the bus.
175
176         * python/dbus_bindings.pyx, python/service.py,
177         test/python/test-client.py: Update the constants for the new
178         request_name flags, and update comments/test cases now that queueing
179         is the default action.
180
181 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
182
183         * configure.in:
184         - Change version to 0.60 for impending release
185         - upped the sonames because of ABI and API breakage
186
187 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
188
189         * configure.in: Add test/name-test/Makefile to the generated
190         Makefile list
191
192         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
193         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
194         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
195         not to queue an ower if it can't be the primary owner
196
197         * bus/bus.h: Add new internal BusOwner struct
198
199         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
200         to bus_registry_ensure and don't set the prohibit_replacement flag
201         since they are now set per BusOwner and not per name.
202         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
203         that returns the list of connections in a name's connection queue
204         
205         * bus/services.c (struct BusService): remove prohibit_replacement field
206         (struct BusOwner): new struct for keeping track of queued connections
207         and their associated flags for the queue
208         (struct BusRegistry): add a BusOwner memory pool
209         (bus_registry_new): initialize the BusOwner memory pool
210         (bus_registry_unref): free the BusOwner memory pool
211         (_bus_service_find_owner_link): new internal method for
212         searching the queue for a specific connection
213         (bus_owner_set_flags): new method for adding setting the flags on a
214         bus owner
215         (bus_owner_new): new method that creates a BusOwner object from the
216         pool and sets its flags
217         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
218         (bus_registry_ensure): Add the flags parameter
219         (bus_registry_acquire_service): Switch from using raw connections to
220         using the BusOwner struct
221         Add new state machine for dealing with the new set of flags
222         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
223         cancel_ownership, free_ownership_cancel_data, 
224         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
225         restore_ownership, free_ownership_restore_data, 
226         add_restore_ownership_to_transaction): Switch to using BusOwner 
227         instead of raw connections
228         (bus_service_add_owner): Add flags parameter
229         Switch to using BusOwner instead of raw connections
230         Add state machine for dealing with the new set of flags
231         (bus_service_swap_owner): Swaps the first and second owners in the
232         queue.  Used to make sure proper signals are sent when a service looses 
233         or gains primary ownership.  We never insert an owner at the top of the
234         queue.  Instead we insert it in the second position and then swap.
235         (bus_service_remove_owner): Remove the owner from the queue sending
236         out the NameLost and NameOwnerChanged signals if the we were the 
237         primary owner
238         (bus_service_get_primary_owners_connection): New method that extracts
239         the connection from the primary owner
240         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
241         connection
242         (bus_service_get_allow_replacement): Changed from the old 
243         bus_service_get_prohibit_replacement method.  Checks the flags of the 
244         primary owner and returns if it can be replaced or not
245         (bus_service_set_prohibit_replacement): removed
246         (bus_service_has_owner): returns TRUE if and owner with
247         the specified connection exists in the queue
248         
249         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
250         method that only compiles if tests are enabled.  Allows us to get the 
251         unique name of a connection so we can check it against the queue when
252         doing regression tests
253
254         * bus/activation.c (bus_activation_send_pending_auto_activate),
255         bus/dispatch.c (bus_dispatch),  
256         bus/driver.c (bus_driver_handle_get_service_owner, 
257         bus_driver_handle_get_connection_unix_user, 
258         bus_driver_handle_get_connection_unix_process_id,
259         bus_driver_handle_get_connection_selinux_security_context),
260         bus/signals.c (connection_is_primary_owner): 
261         use bus_service_get_primary_owners_connection instead of
262         bus_service_get_primary_owner
263
264         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
265         _dbus_listen_unix_socket): Calculate the length of the socket
266         path and use that instead of using a fixed length which was
267         causing socket names to contain many trailing Nul bytes.
268
269         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
270         (dbus_g_method_get_sender): New method for extracting the sender 
271         from a DBusGMethodInvocation
272         (dbus_g_method_return_get_reply): changed name to 
273         dbus_g_method_get_reply
274         (dbus_g_method_return_send_reply): changed name to
275         dbus_g_method_send reply
276
277         * doc/dbus-specification.xml: New docs that describe how the new
278         queueing system works and talks about the changes to the how
279         we specify socket names
280
281         * glib/examples/example-service.c, 
282         glib/examples/example-signal-emitter.c,
283         glib/examples/statemachine/statemachine-server.c:
284         Changed the RequestName flags to the new system
285
286         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
287         regression test suite for testing various states of the new
288         queueing system
289         
290 2005-11-15  Robert McQueen  <robot101@debian.org>
291
292         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
293         Taylor to add two methods, dbus_g_method_return_get_reply and
294         dbus_g_method_return_send_reply, to allow you to get the reply
295         message from a DBusGMethodInvocation, append arbitrary stuff to it,
296         and send it. The GLib bindings can't marshal a return value of
297         something like a(s) if the array is empty - ultimately they should be
298         made to heed the signature of the out arguments as the Python bindings
299         now can, but this is a workable interim solution which might have
300         other applications.
301
302 2005-11-15  Robert McQueen  <robot101@debian.org>
303
304         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
305         method to org.freedesktop.DBus to release a bus name or give up
306         waiting in the queue for it.
307
308         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
309         dbus_bus_release_name method to send the ReleaseName method calls.
310         Add constants for the return values to dbus/dbus-shared.h.
311
312         * doc/dbus-specification.xml: Document the new ReleaseName method
313         in the specification.
314
315         * python/dbus_bindings.pyx: Add a low-level python binding for the
316         release name method.
317
318         * python/exceptions.py, python/service.py: Make freeing BusName
319         objects release the name. Add a NameExistsException, and fix a
320         bug with creating UnknownMethodException.
321
322         * test/python/test-client.py: Add tests for freeing BusName
323         objects causing names to be released.
324
325 2005-11-14  Robert McQueen  <robot101@debian.org>
326
327         * python/service.py: Include the traceback in the error reply when we
328         send an exception over the bus. _BEST_ _PATCH_ _EVER_
329
330 2005-11-14  David Zeuthen  <davidz@redhat.com>
331
332         Patch from Timo Hoenig <thoenig@suse.de>.
333
334         * bus/bus.c: I've recently investigated why the automatic reload
335         of configuration files does not work as expected.
336
337         Currently, reloading configuration files does only work when
338         running dbus-daemon with --nodaemon.  If we are running as daemon
339         we're hitting a dnotify bug once we fork the process.
340
341         We're initializing the dnotify fds before calling fork().  Once
342         the child process forked it does still have the fds (and they
343         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
344         getting SIGIO as changes are made to the configuration files.
345
346         The attached patch moves the initialization of the dnotify fds to
347         process_config_postinit().  This is safe for all current code
348         paths and solves the dnotify disfunction.  If we're running
349         dbus-daemon as daemon the fds for dnotify are now being
350         initialized after fork() for the child process.
351
352         * configure.in: The current configure.in check for dnotify probes
353         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
354         match for 'xlinux', too. Additionally I have adapted the configure
355         option's style to match with the others.
356
357 2005-11-14  Robert McQueen  <robot101@debian.org>
358
359         * python/decorators.py, python/service.py: Add a new argument to the
360         dbus.service.method decorator called sender_keyword, which if set,
361         specifies the name of an argument which will be provided the bus
362         name of the method caller.
363
364         * test/python/test-client.py, test/python/test-service.py: Add a
365         method and test to check the sender_keyword functionality.
366
367 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
368
369         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
370         empty reply so blocking calls don't block forever (Patch from Sjoerd 
371         Simons <sjoerd at luon.net>)
372
373         * AUTHORS: Add Robert McQueen for his work on the Python
374         Bindings and other parts of D-Bus
375
376 2005-11-07  Robert McQueen  <robot101@debian.org>
377
378         * python/decorators.py: Change emit_signal function to use the
379         signature annotation of the signal when marhsalling the arguments from
380         the service. Fix a bug where the code checking signature length
381         against argument length referenced the wrong variable.
382
383         * python/introspect_parser.py: Avoid adding the type signature of
384         signal arguments to any methods which occur after them in the
385         introspection data (!) by making the parser a little more careful
386         about its current state.
387
388         * python/service.py: Remove debug prints from last commit (again :D).
389
390         * test/python/test-client.py, test/python/test-service.py: Add test
391         signals with signature decorators to test the strict marshalling code
392         gives errors at the right time. Could do with checking the signals
393         actually get emitted too, given that the test does nothing with
394         signals at the moment...
395
396 2005-11-07  Robert McQueen  <robot101@debian.org>
397
398         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
399         instances to stop madness of creating new instances representing
400         the same bus connection all the time, rendering any tracking of
401         match rules and bus names quite meaningless. Caught a bug where
402         the private argument to SessionBus() and friends was being passed
403         in as use_default_mainloop by mistake. Still some problems with
404         multiple dbus_binding.Connection instances representing the same
405         low-level connection (eg when you use both SessionBus() and
406         StarterBus() in same process), but it's a lot better now than it
407         was.
408
409         * python/dbus_bindings.pyx: Add constants with the return values
410         for bus_request_name().
411
412         * python/service.py: Store bus name instances in a per-dbus.Bus cache
413         and retrieve the same instances for the same name, so deletion can be
414         done with refcounting. Also now throws some kind of error if you
415         don't actually get the name you requested, unlike previously...
416
417         * test/python/test-client.py: Add tests for instance caching of buses
418         and bus name objects.
419
420 2005-11-04  Robert McQueen  <robot101@debian.org>
421
422         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
423         marshalling of boolean values. Add some booleans to the values in
424         the test client.
425
426         * python/decorators.py, python/service.py: Add an 'async_callbacks'
427         argument to the dbus.service.method decorator, which allows you to
428         name arguments to take two callback functions for replying with
429         return values or an exception.
430
431         * test/python/test-client.py, test/python/test-service.py: Add test
432         case using asynchronous method reply functions, both return values and
433         errors, and from within both the function itself and from a mainloop
434         callback.
435
436         * python/decorators.py, python/service.py: Perform checking that the
437         number of method/signal arguments matches the number of types in the
438         signature at class loading time, not when you first introspect the
439         class.
440
441         * python/service.py: Remove debug print left by the last commit.
442
443 2005-11-03  Robert McQueen  <robot101@debian.org>
444
445         * python/service.py: Heavy refactoring of method invocation, with
446         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
447         in favour of a new _message_cb that uses seperate functions for
448         looking up the method to call, marshalling the return values, and
449         sending exceptions as errors, and is easier to follow as a
450         consequence.  Fixes some corner cases about returning things that
451         don't match your declared out_signature, allows exceptions to define
452         _dbus_error_name and have it be sent over the bus as the error name,
453         and paves the way for cool stuff like heeding the message no reply
454         flag, asynchronous method implementations, informing the method of the
455         sender, and including backtraces in the error messages.
456
457         * test/python/test-client.py: Catch and print exceptions thrown in the
458         async callback tests, rather than passing them to the low-level
459         bindings to be ignored in a noisy and frustrating manner.
460
461 2005-11-03  Robert McQueen  <robot101@debian.org>
462
463         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
464         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
465         tweak others to be consistent.
466
467         * test/python/test-client.py: Tweak output of testInheritance.
468
469 2005-10-29  Robert McQueen  <robot101@debian.org>
470
471         * python/service.py: Major changes to allow multiple inheritance
472         from classes that define D-Bus interfaces:
473         
474          1. Create a new Interface class which is the parent class of
475             Object, and make the ObjectType metaclass into InterfaceType.
476         
477          2. Patch written with Rob Taylor to replace use of method_vtable
478             with code that walks the class's __MRO__ (method resolution order)
479             to behave like Python does when invoking methods and allow
480             overriding as you'd expect. Code is quite tricky because
481             we have to find two methods, the one to invoke which has the
482             right name and isn't decorated with the /wrong/ interface,
483             and the one to pick up the signatures from which is decorated
484             with the right interface.
485         
486             The same caveats apply as to normal multiple inheritance -
487             this has undefined behaviour if you try and inherit from two
488             classes that define a method with the same name but are
489             decorated with different interfaces. You should decorate
490             your overriding method with the interface you want.
491         
492          3. Replace grungy introspection XML generation code in the metaclass
493             with dictionaries that cope correctly with multiple inheritance
494             and the overriding of methods. This also uses the signature
495             decorations to provide correct introspection data, including
496             the debut appearance of the types of your return values. :D
497
498         * test/python/test-client.py, test/python/test-service.py: Add a test
499         case to try invoking an method that overrides one inherited from a
500         D-Bus interface class.
501
502 2005-10-29  Robert McQueen  <robot101@debian.org>
503
504         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
505         Add checking for the end of struct character when marshalling a
506         struct in MessageIter.append_strict.
507
508         * python/examples/example-service.py,
509         python/examples/gconf-proxy-service.py,
510         python/examples/gconf-proxy-service2.py: Update to use gobject
511         mainloop directly rather than appearing to depend on gtk.
512
513         * python/test/test-client.py, python/test/test-server.py: Remove
514         obsolete and broken test scripts for old bindings. We have up to date
515         and working tests in test/python/.
516
517 2005-10-29  Robert McQueen  <robot101@debian.org>
518
519         * python/decorators.py: Add optional arguments to the method and
520         signal decorators to allow you to specify the signature of arguments
521         and return values. Preserve the doc strings of signal functions in the
522         decorated version, for pydoc and friends.
523
524         * python/dbus_bindings.pyx, python/proxies.py: Replace the
525         parse_signature_block function with an iterable dbus.Signature()
526         type. Fix a bug in MessageIter.append_strict where you could append
527         anything by claiming it was a string.
528
529         * python/service.py: Use the out_signature decoration on methods to
530         marshal return values, meaning you no longer require dbus.Array()
531         or dbus.Dictionary() to indicate the type when returning empty
532         arrays or dictionaries. Fix a bug where exceptions which are defined
533         in __main__ are not turned into error replies.
534
535         * test/python/test-client.py, test/python/test-service.py: Add test
536         for correct marshalling of return values according to out_signature.
537         Fix a bug in the async call test where the error_handler is missing a
538         self argument.
539
540 2005-10-29  Robert McQueen  <robot101@debian.org>
541
542         * glib/Makefile.am, glib/examples/Makefile.am,
543         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
544         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
545
546         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
547
548         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
549         from Ubuntu by Daniel Silverstone to allow specifying match rules on
550         the command line.
551
552 2005-10-27  Ross Burton  <ross@openedhand.com>
553
554         * dbus/dbus-marshal-header.c:
555         Remove dead code.
556
557         * glib/dbus-gobject.c:
558         Stop compiler warning.
559
560 2005-10-25  Ross Burton  <ross@openedhand.com>
561
562         * dbus/dbus-auth.c:
563         * dbus/dbus-server-unix.c:
564         * dbus/dbus-transport-unix.c:
565         * glib/dbus-gmain.c:
566         * glib/dbus-gobject.c:
567         Add some const keywords.
568
569 2005-10-25  Ross Burton  <ross@openedhand.com>
570
571         * doc/dbus-specification.xml:
572         Document the NoReply annotation.
573
574         * glib/dbus-binding-tool-glib.h:
575         * glib/dbus-binding-tool-glib.c:
576         Respect the NoReply annotation.
577
578 2005-10-24  Robert McQueen <robot101@debian.org>
579
580         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
581         derive from unicode instead of str, and encode/decode UTF-8 when
582         marshalling/unmarshalling bus messages
583
584         * python/introspect_parser.py: encode introspection data as UTF-8
585         before passing the buffer into libxml2
586
587         * test/python/test-client.py: add unicode test strings
588
589         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
590         ignore generated python test files
591
592 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
593
594         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
595         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
596         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
597
598         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
599         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
600         when constructing struct signatures
601
602         * python/_dbus.py (Bus): handle private connections using the
603         private keyword in the constructor. defaults to private=False
604         (Bus::close): new method to close a connection to the bus
605
606         * python/dbus_bindings.pyx (Connection::close): renamed method
607         was previously called disconnect
608         (bus_get): now supports getting a private connection
609
610         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
611         keyword is set to True.  if it is, execute the method without waiting
612         for a reply
613         (ProxyObject::_introspect_execute_queue): new method for executing
614         all the pending methods that were waiting for the introspect to
615         finish.  this is called when introspect either succeeds or fails
616         (ProxyObject::_introspect_error_handler): call queued methods
617
618 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
619
620         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
621         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
622
623         * python/service.py (Object::_message_cb): handle exceptions correctly
624         by sending them over the wire to the calling app.  This makes sure
625         the client returns immediately instead of waiting the 15 seconds to
626         timeout.
627
628         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
629         Add a test to benchmark how long it takes to introspect a service and 
630         call a method which returns a large element (pretty fast)
631
632         * test/python/test-service.py (TestObject::GetComplexArray): new test 
633         method which pushes a lot of data
634
635 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
636
637         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
638         reclaim memory outside of the loop and use del istead of just setting
639         the key to None
640
641 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
642
643         * python/service.py (ObjectType::_reflect_on_signal): Always close
644         signal tag even when there are no arguments
645
646 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
647
648         * configure.in: Set mono, mono-docs and Qt3 to default
649         to no instead of auto when building.  These bindings do not
650         have full time maintainers and will not be supported for the
651         1.0 release.
652
653 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
654
655         patches from Michael Krivoruchko <misha at sun.com>: 
656         
657         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
658         _dbus_connection_message_sent, 
659         _dbus_connection_send_preallocated_unlocked_no_update, 
660         _dbus_connection_pop_message_link_unlocked): handle the case when path 
661         is NULL when calling _dbus_verbose
662
663         * configure.in: check for functions getpeerucred and getpeereid
664
665         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
666         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
667         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
668         Patch was only tested on Solaris 10 x86 so it might be issues
669         with other platforms (i.e. BSDs and MacOSX)
670         
671
672 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
673
674         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
675         instead of marshal basic so we can handle recursive types in a variant
676
677         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
678         in variants
679
680         * test/glib/test-service-glib.c, test-service-glib.xml
681         (my_object_echo_variant [EchoVariant], 
682         my_object_process_variant_of_array_of_ints123
683         [ProcessVariantOfArrayOfInts123]): 
684         Add two test methods
685
686         * python/introspect_parser.py: New module for parsing introspect
687         data.
688
689         * python/dbus_bindings.pyx:
690         (various places): when throwing errors fix to use errormsg instead 
691         of message local variable because Pyrex can get confused with other 
692         message variables (initial patch by Robert McQueen 
693         <robert.mcqueen at collabora.co.uk>)
694         (MessageIter::parse_signature_block): new method for getting the next
695         block in a signiture.
696         (MessageIter::append_strict): new method for appending values strictly
697         using the passed in signature instead of guessing at the type
698         (MessageItter:: append_dict, append_struct, append_array): use 
699         signatures to marshal children if the signature is available
700         
701         * python/exceptions.py (IntrospectionParserException): new exception
702
703         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
704         introspected signatures if available, else we fall back to the
705         old way of doing things.
706         (ProxyObject::_introspect_reply_handler ): parse introspection data
707         
708         * python/service.py (ObjectType::_reflect_on_method): Properly
709         terminate <method> if there are no args in the reflection data
710
711         * test/python/test-client.py: add tests for talking with the GLib
712         test server.  This gives us better coverage for introspection since
713         python to python will always generate arguments as variants.  It also
714         allows us to test the robustness of the GLib bindings and interlanguage
715         communications.
716
717         
718 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
719
720         * bus/driver.c (bus_driver_handle_introspect): Add signals
721         to the introspect data. (patch from Daniel P. Berrange 
722         <dan at berrange.com>)
723
724         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
725         
726         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
727         _dbus_connection_run_builtin_filters): Changed these to
728         be unlock_no_update functions and call 
729         _dbus_connection_send_unlocked_no_update instead of
730         dbus_connection_send to avoid locking errors.
731         
732         * doc/TODO: Removed the make Ping test TODO
733         
734 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
735
736         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
737         We now copy the message from a DBusError and then free 
738         the error object befor throwing the error
739
740         * glib/dbus-glib-tool.c: removed extra comma at the end of the
741         DBusBindingOutputMode enum which was causing a warning.
742         #include <time.h> so using time_t is explicitly defined
743
744 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
745
746         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
747         - dbus/dbus-bus.c
748         (internal_bus_get): new method that take over the heavy lifting
749         of dbus_bus_get and adds the ability to get a private connection
750         to the bus
751         (dbus_bus_get): wrapper to internal_bus_get that provides the same
752         interface as in previous versions
753         (dbus_bus_get_private): new method that is a wrapper to 
754         internal_bus_get to get a private connection to the bus
755
756         - dbus/dbus-bus.h
757         (dbus_bus_get_private): add as a public libdbus interface
758
759         - dbus-1.pc.in: output system_bus_default_address and 
760         sysconfdir variables so apps can use them when compiling
761
762 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
763         * dbus/qt: New Qt bindings
764
765 2005-09-12  Waldo Bastian  <bastian@kde.org>
766
767         * dbus/dbus-marshal-validate.c,
768         doc/dbus-specification.xml, test/Makefile.am,
769         test/test-names.c: allow hyphens in bus names.
770
771 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
772
773         * test/data/auth/fallback.auth-script: we don't
774         retry the EXTERNAL method when we know its going
775         to fail anymore.
776
777 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
778
779         * dbus/dbus-connection-internal.h: rename
780         (add|remove|toggle)_(watch|timeout) to unlocked()
781         
782         * dbus/dbus-connection.c: ditto.
783         
784         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
785         Update some callers for the renaming.
786
787 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
788
789         * dbus/dbus-auth.c: (record_mechanisms): don't
790         retry the first auth mechanism because we know
791         we're just going to get rejected again.
792         
793         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
794         Fix thinko ... and what a nasty little bugger to
795         track down you were ...
796
797         * dbus/dbus-connection.c:
798         (_dbus_connection_add_watch),
799         (_dbus_connection_remove_watch): add note about
800         these needing the connection to be locked.
801         (_dbus_connection_get_dispatch_status_unlocked):
802         set status to DATA_REMAINS when we queue the
803         disconnected message.
804         
805         * bus/dispatch.c:
806         (bus_dispatch): fix warning.
807         (check_existent_service_no_auto_start):
808         Expect ChildSignaled error too.
809         (check_existent_hello_from_self): fix another
810         couple of warnings.
811         
812 2005-09-08  Joe Shaw  <joeshaw@novell.com>
813
814         Patches from James Willcox <snorp@snorp.net>
815
816         * mono/Makefile.am: Add Int16.cs and UInt16.cs
817
818         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
819         support array "out" parameters.
820
821         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
822         for 16-bit int support.
823
824 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
825
826         * Released 0.50
827
828         * Patch from Steve Grubb:
829         - bus/activation.c (bus_activation_service_reload_test): clean up
830         some indentation
831         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
832         - dbus/dbus-message-factory.c (generate_special): fix a couple of
833         buffer overflows in the test suite.  This is non critical because
834         it can not be exploited and this code is only run when doing a 
835         make check.
836
837         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
838         - configure.in: Don't check and link against kdecore, only qt headers
839         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
840         - gcj/org/freedesktop/dbus/Makefile.am:
841         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
842         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
843         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
844         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
845         - tools/Makefile.am: Add platform extentions to binaries 
846         (i.e. .exe on windows)
847
848         * configure.in: 
849         - Make it so if no suitable version of python is found we only 
850         disable building python instead of exiting the configure script
851         - Require version 2.4 of glib for glib bindings
852         - Up version to 0.50
853
854         * python/__init__.py: Sync version with libdbus to (0,50,0)
855         
856 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
857
858         * dbus/dbus-object-tree.c (find_subtree_recurse):
859         a couple of optimizations (bug #710):
860         - do a binary search in the tree
861         - insert a new child at the right place directly, no need for
862           qsort anymore
863         - do the "double alloc" thing when allocating children
864
865 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
866
867         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
868
869         * python/dbus_bindings.pyx: Memory management foo
870         (global): remove hacky _user_data_references global list
871         (GIL_safe_cunregister_function_handler): userdata now stuffed into
872         tuples. Unref user_data
873         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
874         (Connection::__del__): Remove and replace with __dealloc__ method
875         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
876         to keep tuple from being deallocated instead of the global var hack
877         (Connection::register_object_path): Stuff user_data into a tuple.
878         Use Py_INCREF to keep tuple from being deallocated instead of the 
879         global var hack
880         (Connection::register_fallback): Stuff user_data into a tuple.
881         Use Py_INCREF to keep tuple from being deallocated instead of the 
882         global var hack
883         (GIL_safe_pending_call_notification): Don't unref the message
884         because it gets unreffed when going out of scope.  Py_XDECREF
885         the user_data
886         (PendingCall::__del__): Remove and replace with __dealloc__ method
887         (PendingCall::set_notify): ref the pending call because we will
888         need it to stick around for when the notify callback gets called
889         (Message::__del__): Remove and replace with __dealloc__ method
890
891         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
892         gthreads_init to match up with the dbus call
893
894         * python/glib.py (init_threads): Changed to threads_init to match
895         up with gobject.threads_init().  init_threads is kept for backwards
896         compat but will most likely be deprecated in the future
897
898         * test/python/test-client.py: 
899         - revamp to use Python's unittest functionality
900         - add async call tests
901         - setup threads in glib and dbus so we make sure locks are working
902         
903 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
904
905         * python/dbus_bindings.pyx 
906         (_pending_call_notification, cunregister_function_handler, 
907         cmessage_function_handler): All callback functions have been rearranged 
908         to workaround a bug in Pyrex when working with the GIL which is Python's 
909         global lock when dealing with threads.  They have been split into
910         a wrapper function (which assumes the name of the old function) and
911         a _GIL_safe_<function name> function which contains the functionality
912         of the old function.  This ensures that Pyrex does not write code
913         the lock is released.
914         
915
916 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
917
918         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
919         GIL global lock when calling back into Python
920
921 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
922
923         * Release 0.36.2
924
925         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
926
927         * bus/policy.c (bus_policy_allow_user): change default "user is
928         allowed" to be "user has same uid as the bus itself"; any
929         allow/deny rules will override.
930
931         * bus/session.conf.in: don't allow all users, since now by default
932         the user that ran the bus can connect.
933
934 2005-08-26  Colin Walters  <walters@verbum.org>
935
936         * tools/dbus-print-message.c (print_message): Flush stdout
937         after printing a message, so that redirecting to a file, then
938         hitting Ctrl-C works.
939
940 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
941
942         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
943         (EmptyMessage): new class that subclasses Message.  This is a workaround
944         to a Pyrex bug that fails to call __del__ when the Message object goes out
945         of scope.  For some reason subclassing Message fixes this bug
946         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
947         - s/Message(_create=0)/EmptyMessage everywhere else
948         
949         * test/python/test-{server|client}.py: add the python/.libs directory
950         to the lookup path so dbus_bindings and dbus_glib_bindings don't
951         get picked up from the system
952
953 2005-08-25  Colin Walters  <walters@verbum.org>
954
955         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
956         to Ryan Lortie for the suggestion.
957
958 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
959
960         * test/python: Add python regression test
961
962         * configure.in: Add test/python/Makefile
963
964         * test/Makefile.am: Add the python directory to SUBDIRS
965
966 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
967
968         * Release 0.36.1
969
970         * python/_dbus.py: 
971         (Interface::connect_to_signal): propigate keywords for match on args
972         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
973
974         * python/proxies.py (ProxyObject::connect_to_signal):
975         propigate keywords for match on args
976
977         * Makefile.am: point everything to pyexecdir since python borks
978         on multilib
979
980 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
981
982         * Release 0.36
983
984 2005-08-23  Colin Walters  <walters@verbum.org>
985
986         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
987
988 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
989
990         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
991         to fix some wranings. We now use dbus_bindings.DBusConnection instead
992         of defining DBusConnection ourselves.
993
994 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
995
996         * python/dbus.pth: New path file to fix up problems when installing
997         c libraries to lib64 and python files to lib.
998
999         * python/Makefile.am: install dbus.pth in the correct spot
1000
1001 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1002         * ChangeLog: clean up my last entry a bit
1003
1004         * doc/introspect.xsl: New stylesheet for converting introspection data
1005         into browser renderable xhtml. Contributed by Lennart Poettering.
1006
1007         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1008         Poettering.
1009
1010         * doc/dbus-tutorial.xml: 
1011         - Add Colin Walter to the Authors section for authoring the GLib
1012         section
1013         - Add descriptions of the new signature and type functionality
1014         in the Python complex type mapping section
1015         - Add a sidenote on the new args matching functionality in 
1016         the Python bindings
1017         - Fixed up some of the examples to use the gobject.MainLoop
1018         instead of gtk.main
1019         
1020         * python/_dbus.py:
1021         (Bus::_create_args_dict): New. Converts a hash of arg matches
1022         to a more useable format
1023         (Bus::add_signal_receiver): add a **keywords parameter for catching
1024         arg match parameters
1025         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1026         arg match parameters
1027         
1028         * python/matchrules.py:
1029         (MatchTree::exec_matches): Check for arg matches
1030         (SignalMatchRule::add_args_match): New method
1031         (SignalMatchRule::execute): Added args_list parameter as an optimization
1032         so we don't have to marshal the args more than once
1033         (SignalMatchRule::match_args_from_list): New method that checks to see
1034         if the rule's arg matches match an argument list.  Only arguments
1035         set in the rule are checked.
1036         (SignalMatchRule::match_args_from_rule): New method that checks to see
1037         if the rule's arg matches match another rule's.  All args have to match
1038         in order for this method to return true.  If either rule has more args
1039         then it is not a match.
1040         (SignalMatchRule::is_match): Add args match
1041         (SignalMatchRule::repr): Add args to the final output if they exist
1042
1043 2005-08-17  Ross Burton  <ross@burtonini.com>
1044
1045         * glib/dbus-gproxy.c:
1046         (dbus_g_proxy_call_no_reply): unref the message once sent.
1047         (dbus_g_proxy_call): protect against NULL proxy.
1048
1049 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1050
1051         * python/__init__.py: Version updated (0, 43, 0)
1052         
1053         * python/dbus_bindings.pyx: 
1054         - Fixed type objects to have self passed into __init__
1055         - Added the Variant type
1056         - Add the ability to specify types or signatures for Array, Variant 
1057         and Dictionary
1058         (Connection::send_with_reply_handlers): return a PendingCall object
1059         (_pending_call_notification): handle the case when an error is returned 
1060         without an error message in the body
1061         (MessageIter::get_boolean): return True or False instead of an integer
1062         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1063         and add checks for objects with embeded signatures or types (Array, 
1064         Variant and Dictionary)
1065         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1066         (MessageIter::append_dict): handle embeded types or signatures
1067         (MessageIter::append_array): handle embeded types or signatures
1068         (MessageIter::append_variant): new method
1069         
1070         * python/proxies.py:
1071         (DeferedMethod): New. Dummy executable object used when queuing calls 
1072         blocking on introspection data
1073         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1074         or shorter timeouts for method calls
1075         (ProxyObject): Add first pass at an introspection state machine
1076         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1077         introspection. 
1078         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1079         the usual mechanisms for sending messages.  This is to avoid a deadlock
1080         where the Intospect call would be queued waiting for the Introspect 
1081         call to finish ;-)
1082         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1083         when introspection returns with no error
1084         (ProxyObject::_introspect_error_handler): New.  This method is called 
1085         when introspection encounters an error
1086         (ProxyObject::__getattr__): Code to handle different introspection 
1087         states.  Queue async calls or block blocking calls if we are 
1088         introspecting.  Pass through as normal if we are not or are done with 
1089         introspecting.
1090         
1091         * python/service.py: Import signal and method from decorators.py
1092
1093         * python/types.py: Add Variant type
1094
1095 2005-08-16  Colin Walters  <walters@verbum.org>
1096
1097         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1098         DBusError message is NULL.
1099
1100 2005-08-09  Havoc Pennington  <hp@redhat.com>
1101
1102         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1103         malloc'd copy of the name parameter
1104
1105 2005-08-09  Havoc Pennington  <hp@redhat.com>
1106
1107         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1108         warning if the reply serial is set to 0
1109
1110 2005-08-04  Colin Walters  <walters@verbum.org>
1111
1112         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1113         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1114         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1115         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1116         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1117         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1118         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1119         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1120         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1121         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1122         
1123         Prefix name with _ to ensure they're not exported.  All callers
1124         updated.
1125
1126         * glib/dbus-gvalue.c (typecode_to_gtype)
1127         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1128         (signature_iter_to_g_type_dict)
1129         (signature_iter_to_g_type_array)
1130         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1131         (dbus_gtypes_from_arg_signature):
1132         Move to dbus-gsignature.c.
1133
1134         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1135         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1136         (dbus_binding_tool_output_glib_client): Ditto.
1137
1138         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1139         and dbus-gsignature.h
1140
1141         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1142         unused variable.
1143
1144 2005-08-03  Colin Walters  <walters@verbum.org>
1145
1146         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1147         catch any incompatible changes accidentally made.
1148
1149 2005-08-03  Havoc Pennington  <hp@redhat.com>
1150
1151         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1152         typo, from Julien Puydt
1153
1154         * bus/connection.c (bus_connection_disconnected): we were always
1155         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1156
1157 2005-08-01  Colin Walters  <walters@verbum.org>
1158
1159         Patch from Joe Markus Clarke:   
1160         
1161         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1162         use-after-free.
1163
1164 2005-08-01  Colin Walters  <walters@verbum.org>
1165         
1166         Patch from Joe Markus Clarke:   
1167         
1168         * tools/dbus-send.c (main): 
1169         
1170         Don't use C99 style initializers (bug #3933).
1171         
1172 2005-08-01  Colin Walters  <walters@verbum.org>
1173
1174         Patch from Joe Markus Clarke:   
1175
1176         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1177         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1178         * glib/dbus-gobject.c (write_interface):
1179
1180         Don't use C99 style initializers (bug #3933).
1181
1182 2005-07-31  Havoc Pennington  <hp@redhat.com>
1183
1184         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1185         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1186
1187 2005-07-30  Havoc Pennington  <hp@redhat.com>
1188
1189         * fix a bunch of Doxygen warnings and mistakes
1190
1191 2005-07-30  Havoc Pennington  <hp@redhat.com>
1192
1193         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1194         DBUS_BUILD_TESTS since it's now used in production code
1195
1196 2005-07-29  Havoc Pennington  <hp@redhat.com>
1197
1198         * test/glib/test-profile.c (write_junk): initialize the junk
1199         buffer so valgrind doesn't have a breakdown
1200
1201 2005-07-29  Havoc Pennington  <hp@redhat.com>
1202
1203         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1204         (match_rule_matches): remove unused arg
1205         (test_matching): add tests for match_rule_matches()
1206
1207         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1208         do arg0='foo' arg5='bar' in the match rules
1209         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1210
1211         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1212
1213 2005-07-29  Ross Burton  <ross@openedhand.com>
1214
1215         * dbus/dbus-connection.c:
1216         Don't create a DBusCondVar which is never used.
1217
1218 2005-07-27  Ross Burton  <ross@openedhand.com>
1219
1220         * dbus/dbus-message.c:
1221         Reduce the size of the maximum cached message to 10K.
1222
1223 2005-07-25  Ross Burton  <ross@openedhand.com>
1224
1225         * glib/dbus-gproxy.c:
1226         Remove matches when all proxies are unregistered.
1227
1228 2005-07-24  Colin Walters  <walters@verbum.org>
1229
1230         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1231         typedata; recursive arrays won't have it.
1232
1233         * test/glib/test-dbus-glib.c:
1234         * test/glib/test-service-glib.c:
1235         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1236         
1237 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1238
1239         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1240         proxies.py, service.py: Cleanup of code after running it through the
1241         pyflakes code checker mostly dealing with undefined names.  
1242         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1243
1244 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1245
1246         * NEWS: Update to 0.35.2
1247
1248 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1249
1250         * python/_dbus.py: Remove import of the dbus.services
1251         module as it no longer exists (patch from Dimitur Kirov)
1252
1253         * python/service.py (Object::__init__): Fixed typo
1254         s/name/bus_name (patch from Dimitur Kirov)
1255
1256         * python/examples/example-signal-emitter.py: import dbus.glib
1257         to get the main loop and use glib mainloop instead of gtk so
1258         X doesn't have to be running.
1259
1260         * python/examples/example-signal-recipient.py: import dbus.glib
1261         to get the main loop and use glib mainloop instead of gtk so
1262         X doesn't have to be running. Import the decorators module
1263         directly.
1264
1265         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1266         didn't pick up on but are needed to build
1267
1268         * configure.in: upped version to 0.35.2
1269
1270         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1271         added Colin Walters' SELinux API rename patch from head 
1272         s/unix sercurity context/selinux security context/
1273
1274 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1275
1276         * python/Makefile.am: dbus_binding.pxd.in should be included 
1277         in EXTRA_DIST not dbus_binding.pxd
1278         fix up $(srcdir) hopefully for the last time
1279
1280         * NEWS: Update to 0.35.1
1281
1282 2005-07-16  Colin Walters  <walters@verbum.org>
1283
1284         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1285         from bus_driver_handle_get_connection_unix_security_context.  Update for
1286         error usage.
1287         (message_handlers): Update for renames.
1288
1289         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1290         _dbus_string_init failure correctly.
1291         (bus_selinux_append_context): Convert SID to context.  Append it
1292         as a byte array.
1293         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1294         hasn't been called.
1295
1296         * bus/selinux.h: Update prototype.
1297
1298         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1299         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1300
1301 2005-07-15  Colin Walters  <walters@verbum.org>
1302
1303         * doc/TODO: Add note about convenience wrappers.
1304
1305 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1306
1307         * NEWS: Update to 0.35
1308
1309 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1310
1311         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1312         so distcheck doesn't fail
1313
1314         * glib/examples/Makefile.am: Add example-service.xml and 
1315         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1316
1317         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1318         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1319
1320         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1321         compiler looks in the right places during distcheck
1322
1323 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1324
1325         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1326         to fail
1327
1328 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1329
1330         * python/examples/example-service.py,
1331         python/examples/example-signal-emitter.py: Fixed up examples
1332         for API changes
1333
1334 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1335
1336         * python/__init__.py: Upped to version (0,42,0) because of
1337         the API change
1338
1339 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1340
1341         * ChangeLog: fix date in last entry
1342
1343         * configure.in, bus/system.conf.in: add the ability to configure 
1344         the system bus user at compiletime with the --with-dbus-user flag
1345         (patch from Kristof Vansant)
1346
1347 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1348
1349         * bus/dispatch.c, test/test-service.c: Add testcase
1350         for sending messages to oneself (TODO item).
1351
1352         * python/service.py (class Object): Swap ordering of bus_name 
1353         and object_path parameters to better support inheritance.
1354
1355         * doc/dbus-tutorial.xml: change Python docs to reflect change
1356         in parameter ordering and fix the inheritance section.
1357
1358         * doc/TODO: remove sending message to oneself TODO item
1359
1360 2005-07-15  Ross Burton  <ross@openedhand.com>
1361
1362         * glib/dbus-gproxy.c:
1363         Fix a leak when calling methods via the proxy.
1364
1365 2005-07-15  Colin Walters  <walters@verbum.org>
1366
1367         * bus/selinux.c (bus_selinux_append_context): Wrap in
1368         HAVE_SELINUX.
1369
1370 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1371
1372         * python/_dbus.py (Bus::remove_signal_receiver):
1373         don't add a callback to the match if none has been passed in
1374         
1375         * python/matchrules.py (SignalMatchTree::remove): if the rule
1376         being matched does not have a callback treat it as a wildcard
1377         fix matching logic
1378
1379         * doc/dbus-tutorial.xml: Add Python tutorial
1380
1381 2005-07-14  Colin Walters  <walters@verbum.org>
1382
1383         * bus/driver.c
1384         (bus_driver_handle_get_connection_unix_security_context): New function.
1385         (message_handlers): Add.
1386
1387         * bus/selinux.c (bus_selinux_append_context): New function; appends
1388         security context to message.
1389
1390         * bus/selinux.h: Prototype.
1391
1392         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1393
1394 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1395
1396         * bus/activation.c: clean up all tabs to be 8 spaces 
1397         (bus_activation_activate_service): make sure we clean up
1398         if activation fails
1399
1400         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1401         (check_shell_fail_service_auto_start): New function
1402         tests to make sure we get fail properly when trying to auto start a service
1403         with a faulty command line
1404         (check_shell_service_success_auto_start): New function tests to make sure
1405         auto started services get the arguments on the command line
1406
1407         * test/test-shell-service.c: Added service for testing auto-starting with 
1408         command line arguments
1409
1410         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1411         test/data/valid-service-files/debug-shell-echo-success.service.in:
1412         Added service files for testing auto-starting with command line arguments
1413
1414         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1415
1416 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1417
1418         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1419         
1420         * dbus/Makefile.am: added new files to build.
1421
1422         * bus/activation.c (bus_activation_activate_service): support
1423         activation commands with parameters.
1424
1425         * test/shell-test.c: added test program for the shell parsing
1426         code.
1427
1428 2005-07-13  David Zeuthen  <davidz@redhat.com>
1429
1430         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1431         64 bit signed and unsigned parameters
1432
1433 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1436
1437         * python/service.py (class Name): renamed BusName to make it clearer
1438         what the object is for (a name on the bus)
1439
1440         * python/examples/example-service.py,
1441         python/examples/example-signal-emitter.py: change the Name object to
1442         BusName
1443
1444 2005-07-12  Colin Walters  <walters@verbum.org>
1445
1446         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1447
1448         * tools/dbus-launch.c: Include sys/select.h.
1449
1450 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1451         * python/dbus_bindings.pyx.in: removed
1452
1453         * python/dbus_bindings.pyx: Added.
1454         - Fixed some memleaks (patch from 
1455         Sean Meiners <sean.meiners@linspireinc.com>)
1456         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1457         own pxd file (Pyrex definition)
1458         - Broke out glib dependancies into its own pyx module
1459         
1460         * python/dbus_bindings.pdx: Added.
1461         - Defines C class Connection for exporting to other modules
1462
1463         * python/dbus_glib_bindings.pyx: Added.
1464         - New module to handle lowlevel dbus-glib mainloop integration
1465
1466         * python/glib.py: Added.
1467         - Registers the glib mainloop when you import this module
1468
1469         * python/services.py: Removed (renamed to service.py)
1470         
1471         * python/service.py: Added.
1472         - (class Server): renamed Name
1473
1474         * python/__init__.py: Bump ro version (0,41,0)
1475         -don't import the decorators or service module
1476         by default.  These now reside in the dbus.service namespace
1477
1478         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1479         setup function on creation 
1480
1481         * python/examples/example-service.py,
1482         python/examples/example-signal-emitter.py: update examples
1483
1484         * python/examples/gconf-proxy-service.py,
1485         python/examples/gconf-proxy-service2.py: TODO fix these up
1486
1487         * doc/TODO: Addition
1488         - Added a Python Bindings 1.0 section
1489         - added "Add match on args or match on details to match rules"
1490
1491
1492 2005-07-12  Colin Walters  <walters@verbum.org>
1493
1494         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1495         (statemachine-glue.h): 
1496         * glib/examples/Makefile.am (example-service-glue.h) 
1497         (example-signal-emitter-glue.h): 
1498         * glib/Makefile.am (dbus-glib-error-switch.h): 
1499         Add libtool --mode=execute so we use the built library instead
1500         of any installed one.
1501
1502 2005-07-11  Colin Walters  <walters@verbum.org>
1503
1504         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1505         (dbus_g_value_types_init): Remove assertion.
1506         (dbus_g_value_get_g_type, dbus_g_value_open)
1507         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1508         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1509         functions related to DBusGValue.  Now we marshal/demarshal
1510         structures as GValueArray.
1511         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1512         structures.
1513         (signature_iter_to_g_type_array): Don't call
1514         signature_iter_to_g_type_struct.
1515         (signature_iter_to_g_type_struct): Delete.
1516         (dbus_gvalue_to_signature): Delete.
1517         (dbus_gvalue_to_signature): New function with same name as other
1518         one; we can convert structures to signatures.
1519         (demarshal_valuearray): New function.
1520         (get_type_demarshaller): Use it.
1521         (demarshal_recurse): Delete.
1522         (marshal_proxy): New function.
1523         (marshal_map): Warn if we can't determine signature from type.
1524         (marshal_collection_ptrarray): Ditto.
1525         (marshal_collection_array): Ditto.
1526         (get_type_marshaller): Use marshal_valuearray.
1527         (marshal_recurse): Delete.
1528         (_dbus_gvalue_test): Add some tests.
1529
1530         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1531         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1532         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1533         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1534         (dbus_g_value_free): Remove prototypes.
1535
1536         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1537         G_TYPE_VALUE_ARRAY.
1538
1539         * glib/examples/example-service.c:
1540         * glib/examples/example-client.c: Implement GetTuple.
1541
1542         * test/glib/test-dbus-glib.c:
1543         * test/glib/test-service-glib.c:
1544         * test/glib/test-service-glib.xml: Add structure tests.
1545
1546 2005-07-10  Colin Walters  <walters@verbum.org>
1547
1548         * doc/TODO: Knock off some GLib items with this patch.
1549
1550         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1551         (_dbus_gvalue_signals_error): New functions.
1552
1553         * glib/dbus-gvalue-utils.h: Prototype them.
1554
1555         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1556         and change to not output const/retval flags for input args.  All
1557         callers updated.
1558         (invoke_object_method): Refactor to handle return values.  Add
1559         some more comments in various places.  Remove debug g_print.
1560
1561         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1562
1563         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1564         Handle G_TYPE_NONE.
1565         (compute_gsignature): New function; refactored from code from
1566         compute_marshaller and compute_marshaller_name.  Enhance to
1567         handle return values and async ops more cleanly.  Update for
1568         async ops returning NONE instead of BOOLEAN.
1569         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1570         and output appropriate string.
1571         (generate_glue): Handle return value annotation.  Also don't dump
1572         constness flag for input arguments.
1573
1574         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1575         files shared between installed library and utilities.
1576         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1577         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1578         binding tool can access gtype utility functions.
1579
1580         * test/glib/test-service-glib.c: 
1581         * test/glib/test-service-glib.xml: 
1582         * test/glib/test-dbus-glib.c: Add some tests for return values.
1583
1584 2005-07-09  Colin Walters  <walters@verbum.org>
1585
1586         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1587         argument if available, not method.
1588
1589         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1590         (invoke_object_method): First, remove some redundant
1591         GValues (object_value, error_value) in favor of working on
1592         array directly.  Second, rework constness to be less buggy.
1593         Now we iterate directly over the argument metadata instead
1594         of parallel iterating over output signature and metadata.
1595
1596         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1597
1598         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1599         annotation on input args.
1600         
1601 2005-07-09  Colin Walters  <walters@verbum.org>
1602
1603         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1604         Define.
1605
1606         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1607         annotation.
1608
1609         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1610         (method_dir_signature_from_object_info): Handle arg_iterate change.
1611         (write_interface): Ditto.
1612         (lookup_object_info): Don't barf if format_version is > 0.
1613         (invoke_object_method): Handle arg constness.
1614
1615         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1616         (arg_info_new): Create.
1617         (arg_info_unref): Destroy.
1618         (arg_info_get_annotations, arg_info_get_annotation) 
1619         (arg_info_add_annotation): New functions.
1620
1621         * glib/dbus-gidl.h: Prototype them.
1622
1623         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1624         args, disallow them in properties.
1625         (parse_annotation): Handle arg annotations.
1626
1627         * test/glib/test-service-glib.xml: 
1628         * test/glib/test-service-glib.c: Update to make some methods
1629         const.
1630
1631 2005-07-08  Colin Walters  <walters@verbum.org>
1632
1633         * test/glib/test-service-glib.xml: 
1634         * test/glib/test-service-glib.c:
1635         * test/glib/test-dbus-glib.c: Test a{sv}.
1636
1637         * glib/examples/statemachine/statemachine.c:
1638         * glib/examples/statemachine/statemachine-server.c:
1639         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1640         add progress bar, etc.
1641
1642         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1643         needed anymore due to generic array/map marshalling.
1644         (dbus_g_value_types_init): Don't register basic arrays or the
1645         string/string hash.
1646         (dbus_gtype_from_signature_iter): Don't try to recurse into
1647         variants.
1648         (dbus_gtype_to_signature): Check collection/map before type
1649         metadata.
1650         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1651         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1652         generic map creation/append functions instead of hash table
1653         specifically.
1654         (get_type_demarshaller): Handle maps.
1655         (demarshal_collection): Dispatch on collection type to either
1656         demarshal_collection_ptrarray or demarshal_collection_array.
1657         (get_type_marshaller): Handle maps.
1658         (marshal_collection): Dispatch collection type to either
1659         marshal_collection_ptrarray or marshal_collection_array.
1660         (_dbus_gvalue_test): New test.
1661
1662         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1663         (hash_free_from_gtype): Use it to free GValues.
1664         (hashtable_append): New function.
1665         (ptrarray_append): Fix prototype.
1666         (slist_append): Ditto.
1667         (_dbus_gvalue_utils_test): Extend tests.
1668
1669         * glib/dbus-gtype-specialized.c
1670         (dbus_g_type_specialized_init_append): Renamed from
1671         dbus_g_type_specialized_collection_init_append.  Remove const from
1672         value, since we steal it.
1673         (dbus_g_type_specialized_map_append): New function.
1674
1675         * glib/dbus-gtype-specialized.h: Update prototypes.
1676         Add DBusGTypeSpecializedMapAppendFunc.
1677
1678         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1679         _dbus_gvalue_test.
1680         
1681         * glib/dbus-gtest.h: Prototype it.
1682
1683 2005-07-08  Ross Burton  <ross@openedhand.com>
1684
1685         * dbus/dbus-glib.h:
1686         Add DBysGAsyncData for the async bindings.
1687
1688         * glib/dbus-binding-tool-glib.c:
1689         Re-enable the async bindings.
1690
1691         * test/glib/test-dbus-glib.c:
1692         Add a test for the generated async bindings.
1693
1694 2005-07-08  Colin Walters  <walters@verbum.org>
1695
1696         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1697         connection concept.
1698         
1699 2005-07-08  Colin Walters  <walters@verbum.org>
1700         
1701         * tools/Makefile.am: Kill of print-introspect in favor of using
1702         dbus-send --print-reply=literal.
1703
1704         * test/glib/test-service-glib.xml: 
1705         * test/glib/test-service-glib.c (my_object_get_objs): New test
1706         for "ao".
1707
1708         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1709         (main): Test GetObjs.
1710
1711         * glib/examples/statemachine/Makefile.am:
1712         * glib/examples/statemachine/sm-marshal.list:
1713         * glib/examples/statemachine/statemachine-client.c:
1714         * glib/examples/statemachine/statemachine-server.c:
1715         * glib/examples/statemachine/statemachine-server.xml:
1716         * glib/examples/statemachine/statemachine.c:
1717         * glib/examples/statemachine/statemachine.h:
1718         * glib/examples/statemachine/statemachine.xml:
1719
1720         New example.
1721
1722         * glib/examples/example-service.c (main): Move invocation
1723         of dbus_g_object_type_install_info earlier, to emphasize it
1724         should only be done once.
1725
1726         * glib/examples/example-signal-emitter.c (main): Ditto.
1727
1728         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1729
1730         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1731         (dbus_gvalue_marshal): Update prototypes.
1732
1733         * glib/dbus-gvalue.c: Update all marshalling functions to take
1734         const GValue instead of GValue.
1735         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1736         types.
1737         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1738         change.
1739         (dbus_gtype_to_signature): Handle generic collecitons and maps.
1740         Return a newly-allocated string.
1741         (demarshal_proxy, demarshal_object_path, demarshal_object)
1742         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1743         we get the wrong types from message.
1744         (get_type_demarshaller): New function, extracted from
1745         dbus_gvalue_demarshal.
1746         (demarshal_collection): New function, demarshals generic
1747         collection.
1748         (dbus_gvalue_demarshal): Just invoke result of
1749         get_type_demarshaller.  Throw error if we don't have one.
1750         (marshal_garray_basic): Abort on OOM.
1751         (get_type_marshaller): New function, extracted from
1752         dbus_gvalue_marshal.
1753         (collection_marshal_iterator, marshal_collection): New functions;
1754         implements generic marshalling for an iteratable specialized
1755         collection.
1756         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1757
1758         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1759         G_TYPE_STRING.
1760         (ptrarray_value_from_gvalue): Ditto.
1761         (ptrarray_append, ptrarray_free): New functions.
1762         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
1763         (slist_append, slist_end_append, slist_free): New functions.
1764         (dbus_g_type_specialized_builtins_init): Add append fuctions
1765         for GPtrArray and GSList.  Register GSList.
1766         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1767
1768         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1769         New.
1770         (dbus_g_type_specialized_collection_init_append)
1771         (dbus_g_type_specialized_collection_append)
1772         (dbus_g_type_specialized_collection_end_append): Prototype.
1773         (DBusGTypeSpecializedCollectionVtable): Add append_func and
1774         end_append_func.
1775
1776         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
1777         (dbus_g_type_specialized_collection_append) 
1778         (dbus_g_type_specialized_collection_end_append): New functions.
1779         (dbus_g_type_map_value_iterate): Take const GValue.
1780         (dbus_g_type_collection_value_iterate): Ditto.
1781
1782         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1783         _dbus_gvalue_utils_test.
1784         
1785         * glib/dbus-gtest.h: Prototype it.
1786
1787         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1788         using uninitialized owner_list.
1789         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1790         public API.
1791         (dbus_g_proxy_end_call_internal): Update to use error set
1792         from dbus_gvalue_demarshal instead of setting it here.
1793         (dbus_g_proxy_begin_call): Move return_if_fail here.
1794
1795         * glib/dbus-gobject.c (write_interface): Update for
1796         dbus_gtype_to_signature returning new string.
1797
1798         * configure.in: Add glib/examples/statemachine.
1799
1800 2005-07-08  Joe Shaw  <joeshaw@novell.com>
1801
1802         * configure.in: Add a configure option, --with-console-auth-dir
1803         
1804         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1805         new setting.  Patch from Kay Sievers.
1806
1807 2005-07-06  Colin Walters  <walters@verbum.org>
1808
1809         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1810         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1811         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1812         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1813         Delete in favor of dbus_g_proxy_begin_call and
1814         dbus_g_proxy_cancel_call.
1815         (DBusGProxyCall, DBusGProxyCallNotify): New.
1816         (dbus_g_proxy_begin_call): Change prototype to take callback, user
1817         data, and destroy function.  This replaces
1818         dbus_g_pending_call_set_notify.
1819         (dbus_g_proxy_cancel_call): Prototype.
1820         (DBusGAsyncData): Delete, shouldn't be needed anymore.
1821
1822         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1823         pending_calls map.
1824         (struct _DBusGProxyManager): Add bus_proxy member, which is an
1825         internal proxy for calls to the bus. Remove
1826         pending_nameowner_calls, now the internal proxy keeps track.
1827         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1828         pending_nameowner_calls.
1829         (got_name_owner_cb): Update prototype, and use
1830         dbus_g_proxy_end_call.
1831         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1832         (dbus_g_proxy_manager_register): Delete directly libdbus code in
1833         favor of using internal proxy.
1834         (dbus_g_proxy_manager_unregister): Update to use
1835         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1836         (dbus_g_proxy_init): Initialize pending calls map.
1837         (dbus_g_proxy_constructor): New.
1838         (dbus_g_proxy_class_init): Add get/set property functions,
1839         constructor, and add NAME, PATH, and INTERFACE properties.
1840         (cancel_pending_call): New function.
1841         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1842         cancel them.
1843         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1844         (GPendingNotifyClosure): New structure.
1845         (d_pending_call_notify, d_pending_call_free): Moved here from
1846         dbus-glib.c.
1847         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1848         ordering.
1849         (manager_begin_bus_call): New internal function for talking to
1850         internal bus proxy.
1851         (dbus_g_proxy_new): Construct object using GObjet properties.
1852         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1853         Create closure of same, and insert call into map of pending calls.
1854         (dbus_g_proxy_end_call_internal): Take call id instead of pending
1855         call.  Look up pending call in current set.  Remove it when we've
1856         completed.
1857         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1858         (dbus_g_proxy_begin_call): Change API to take callback, user data,
1859         and destroy function directly.
1860         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1861         (dbus_g_proxy_call): Invoke with NULL callback.
1862         (dbus_g_proxy_cancel_call): New function, replaces
1863         dbus_g_pending_call_cancel.
1864
1865         * glib/dbus-gparser.c (validate_signature): Fix call to
1866         dbus_set_g_error.
1867
1868         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1869         New quark for attaching metadata to GType.
1870         (info_hash): Delete.
1871         (lookup_object_info): Look up using quark.
1872         (dbus_g_object_type_install_info): Check that a type is classed,
1873         not that it's an object.  Also just install type data using quark
1874         instead of using global hash.
1875
1876         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
1877         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1878         (GPendingNotifyClosure): Delete.
1879         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1880         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1881
1882         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1883         client method generation until we can fix it...
1884         
1885         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1886         (load_from_service_thread_func): Ditto.
1887
1888         * tools/dbus-names-model.c (struct NamesModel): Hold
1889         DBusGProxyCall.
1890         (have_names_notify): Update prototype, use
1891         dbus_g_proxy_cancel_call.
1892         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1893
1894         * tools/dbus-monitor.c (filter_func): Update for print_message
1895         API change.
1896
1897         * test/glib/test-dbus-glib.c: Add more tests for async
1898         invocations.  Update many begin_call/end_call pairs to just use
1899         dbus_g_proxy_call.
1900
1901         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
1902         allows us to dump print-introspect.c.
1903
1904         * tools/dbus-print-message.h (print_message): Add literal argument
1905         to print_message which is intended to allow printing arguments without
1906         metadata like "string=".
1907
1908         * tools/dbus-print-message.c (print_iter): Add literal argument.
1909         (print_message): Allow printing string messages literally.
1910
1911 2005-07-05  Colin Walters  <walters@verbum.org>
1912
1913         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1914         Remove value refcount leak, original patch from Jorn Baayen
1915         <jorn@openedhand.com>.  Also remove useless extra value in favor
1916         of prepending to value array directly.
1917
1918 2005-07-02  Colin Walters  <walters@verbum.org>
1919
1920         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1921
1922 2005-07-01  Colin Walters  <walters@verbum.org>
1923
1924         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1925         
1926         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1927         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1928         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1929         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1930
1931 2005-06-30  Colin Walters  <walters@verbum.org>
1932
1933         * test/glib/test-dbus-glib.c:
1934         * test/glib/test-service-glib.c:
1935         * test/glib/test-service-glib.xml: Update tests for new error
1936         setting bits, also add async tests (patch from Ross Burton).
1937
1938         * test/glib/Makefile.am (test_service_glib_LDADD): Add
1939         DBUS_GLIB_THREADS_LIBS.
1940
1941         * glib/dbus-gproxy.c (get_name_owner)
1942         (dbus_g_pending_call_end_valist): Ditto.
1943
1944         * glib/dbus-gobject.c (error_metadata): New mapping from GError
1945         domain (GQuark) to DBusGErrorInfo.  
1946         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
1947         quark in error_metadata.  Take message interface as default
1948         error message interface.
1949         (gerror_to_dbus_error_message): Pass message interface.
1950         (dbus_set_g_error): Resurrected.
1951         (dbus_g_error_info_free): New function.
1952         (dbus_g_object_type_install_info): Use g_type_class_ref instead
1953         of _peek to actually create the object class if it hasn't been
1954         created yet.
1955         (dbus_g_error_domain_register): New function.
1956
1957         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
1958
1959         * glib/dbus-gparser.c (validate_signature): Ditto.
1960
1961         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
1962         (dbus_g_error_domain_register): Prototype.
1963
1964         * glib/dbus-glib.c (dbus_g_error_set): Delete.
1965         Update tests.
1966
1967 2005-06-29  Colin Walters  <walters@verbum.org>
1968
1969         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
1970         DBUS_TYPE_G_OBJECT_PATH.
1971
1972         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
1973         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
1974         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
1975         (dbus_g_object_path_get_g_type): New function.
1976         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
1977         to DBUS_TYPE_G_OBJECT_PATH by default.
1978         (demarshal_proxy): Remove unused name variable.
1979         (demarshal_object_path, marshal_object_path): New functions.
1980         (demarshal_proxy_array, marshal_proxy_array): Delete.
1981         
1982         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
1983         DBUS_TYPE_G_OBJECT_PATH to char *.
1984         (dbus_g_type_get_lookup_function): Map builtin
1985         DBUS_TYPE_G_OBJECT_PATH.
1986
1987         * test/glib/test-dbus-glib.c
1988         * test/glib/test-service-glib.c (my_object_objpath): 
1989         Adapt tests to new object path marshalling.
1990
1991 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
1992
1993         * configure.in: force check for Python >= 2.4
1994
1995 2005-06-29  Colin Walters  <walters@verbum.org>
1996         
1997         Patch from Ross Burton <ross@openedhand.com>
1998         
1999         * glib/dbus-gobject.c (invoke_object_method): Unset object
2000         value in all cases, not only in async case.
2001
2002 2005-06-29  Colin Walters  <walters@verbum.org>
2003
2004         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2005         name_call for keeping track of any outgoing GetNameOwner call.
2006         Also add for_owner and associated.
2007         (struct _DBusGProxyManager): Add owner_names, which is hash table
2008         that maps a base name to a list of names it owns (that we're
2009         interested in).  Add pending_nameowner_calls which is a list of
2010         all outstanding GetNameOwner; avoids us having to iterate over
2011         every proxy.  Add unassociated_proxies which keeps track of name
2012         proxies with no associated name owner.
2013         (dbus_g_proxy_manager_unref): Destroy owner_names.
2014         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2015         name refcounts.
2016         (find_name_in_info, name_owner_foreach)
2017         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2018         (dbus_g_proxy_manager_monitor_name_owner)
2019         (dbus_g_proxy_manager_unmonitor_name_owner)
2020         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2021         New functions; they manipulate the owner_names mapping.
2022         (got_name_owner_cb): New function.
2023         (get_name_owner): New function, extracted from
2024         dbus_g_proxy_new_for_name_owner.
2025         (dbus_g_proxy_manager_register): For now we need to keep track of
2026         all NameOwnerChanged.  Also if the proxy is for a name, if we
2027         don't already know the name owner, queue a new GetNameOwner
2028         request and add it to our list of unassociated proxies.  Otherwise
2029         inc the refcount.
2030         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2031         cancel any pending GetNameOwner call, etc.
2032         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2033         the owner_names mapping to look up the current names for the
2034         signal source, and dispatch to any proxies for that name.
2035         (dbus_g_proxy_new): Initialize new members.
2036         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2037         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2038         (dbus_g_pending_call_end_valist): New function, extracted from
2039         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2040         but want to use the GLib infrastructure.  Also note how many
2041         arguments in reply were over.
2042         (dbus_g_pending_call_end): New function, just call
2043         dbus_g_pending_call_end_valist.
2044         (dbus_g_proxy_end_call_internal): Just call
2045         dbus_g_pending_call_end_valist.
2046
2047         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2048         of builtin marshaller for STRING_STRING_STRING.
2049
2050         * test/glib/test-dbus-glib.c: 
2051         * test/glib/test-service-glib.c:
2052         * test/glib/test-service-glib.xml:
2053         Extend tests to cover name proxies, destruction of owner proxies,
2054         etc.
2055         
2056         * glib/examples/example-signal-recipient.c
2057         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2058         
2059         * tools/dbus-send.c (main): Print D-BUS error name in addition
2060         to message.
2061
2062 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2063
2064         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2065         cmessage_function_handler): Patch from 
2066         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2067         by using the Py_GILState_Ensure/Release to synchronize with the
2068         python runtime.
2069         
2070 2005-06-28  Ray Strode  <rstrode@redhat.com>
2071
2072         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2073         babysitter helper process on last unref, bug #2813.
2074
2075 2005-06-27  Colin Walters  <walters@verbum.org>
2076
2077         * test/glib/test-dbus-glib.c: 
2078         * test/glib/test-service-glib.c:
2079         * test/glib/test-service-glib.xml:
2080         Test hash table signal emitting.
2081
2082         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2083         types to their fundamental basis types, since this is what
2084         marshallers operate on.  Also add an entry for VOID__BOXED.
2085         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2086
2087 2005-06-26  Havoc Pennington  <hp@redhat.com>
2088
2089         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2090         from Don Park
2091
2092 2005-06-26  Colin Walters  <walters@verbum.org>
2093
2094         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2095         (dbus_g_error_set): New public function from its ashes; used by
2096         both service-side method implementation and GLib bindings
2097         internals.
2098         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2099         (_dbus_glib_test): Add some tests.
2100
2101         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2102
2103         * test/glib/test-service-glib.c (my_object_throw_error): Use
2104         dbus_g_error_set.
2105
2106         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2107         errors thrown by dbus_g_error_set.
2108
2109         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2110
2111         * glib/dbus-gparser.c (validate_signature): Ditto.
2112
2113         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2114         (dbus_g_proxy_end_call_internal): Ditto.
2115
2116         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2117         converts DBUS_ERROR_x to DBUS_GERROR_x.
2118         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2119
2120         * doc/TODO: Remove error TODO.
2121
2122         * doc/dbus-tutorial.xml: Update with documentation about error
2123         handling.
2124
2125         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2126         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2127         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2128
2129 2005-06-22  Colin Walters  <walters@verbum.org>
2130         
2131         Patch from Ross Burton <ross@openedhand.com>
2132
2133         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2134
2135 2005-06-20  Colin Walters  <walters@verbum.org>
2136
2137         * configure.in: Add glib/examples.
2138
2139         * glib/Makefile.am: Add examples/
2140
2141         * glib/examples/.cvsignore
2142         * glib/examples/Makefile.am
2143         * glib/examples/example-client.c
2144         * glib/examples/example-service.c
2145         * glib/examples/example-service.xml
2146         * glib/examples/example-signal-emitter.c
2147         * glib/examples/example-signal-emitter.xml
2148         * glib/examples/example-signal-recipient.c:
2149         New files; GLib binding examples, ported from
2150         python/examples.
2151
2152 2005-06-20  Colin Walters  <walters@verbum.org>
2153
2154         * dbus/dbus-glib.h: 
2155         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2156         dbus_g_proxy_call.
2157
2158         * glib/dbus-binding-tool-glib.c: 
2159         * doc/dbus-tutorial.xml: 
2160         * test/glib/test-dbus-glib.c: Update for rename.
2161         
2162 2005-06-20  Colin Walters  <walters@verbum.org>
2163
2164         Patch suggested by Ross Burton <ross@openedhand.com>
2165
2166         * glib/dbus-gobject.c (export_signals): Free signal name.
2167         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2168         memory leak.  Add a bit of documentation.
2169         (dbus_g_method_return_error): Free context, and note we do
2170         so.
2171
2172 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2173
2174         * dbus/dbus-glib.h:
2175         * glib/dbus-gobject.c:
2176         * glib/dbus-gproxy.c:
2177         * glib/dbus-gvalue.c: Predeclare structs as 
2178         typedef struct _Something Something instead of 
2179         typedef struct Something Something, so we can 
2180         redeclare the prototypes. Other GNOME libraries 
2181         do this already.
2182
2183 2005-06-17  Colin Walters  <walters@verbum.org>
2184
2185         * tools/dbus-names-model.c (have_names_notify): Fix call
2186         to dbus_g_proxy_end_call.
2187         
2188 2005-06-17  Colin Walters  <walters@verbum.org>
2189
2190         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2191         spew warnings if we get malformed remote signals.
2192
2193         * glib/dbus-gobject.c (propsig_iterate): New function.
2194         (lookup_object_info): New function, extracted from
2195         lookup_object_and_method.
2196         (introspect_properties, introspect_signals): Delete; these
2197         are merged into write_interface.
2198         (write_interface): Write out signals and properties here;
2199         dump the org.gtk.object stuff and use the interface given
2200         in the introspection data blob.  Also fix up property XML.
2201         (lookup_values): New function.
2202         (introspect_interfaces): Gather a mapping from interface to a
2203         list of its methods, signals, and properties, then write out
2204         each interface.
2205         (lookup_object_and_method): Use lookup_object_info.
2206         (struct DBusGSignalClosure): Add interface.
2207         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2208         we can just use the constant data.
2209         (dbus_g_signal_closure_finalize): Don't free signal name.
2210         (signal_emitter_marshaller): Use interface from signal closure.
2211         (export_signals): Only export signals mentioned in introspection
2212         blob.
2213         (dbus_g_connection_register_g_object): Warn if we have no
2214         introspection data for an object.
2215         (funcsig_equal): Remove unused variable.
2216         (dbus_g_object_register_marshaller): Take varargs instead of
2217         list.
2218         (dbus_g_object_register_marshaller_array): New function,
2219         extracted from old dbus_g_object_register_marshaller.
2220
2221         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2222         signals and property data.
2223         (write_quoted_string): New function, extracted from generate_glue.
2224         (generate_glue): Write signals and properties to introspection
2225         blob.
2226
2227         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2228         exported_signals and exported_properties.
2229         (dbus_g_object_register_marshaller): Update prototype.
2230         (dbus_g_object_register_marshaller_array): Prototype.
2231         
2232         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2233
2234         * test/glib/test-service-glib.c: Add new test signals and method
2235         to emit them.
2236
2237         * test/glib/test-service-glib.xml: Add some test signals.
2238
2239         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2240         and my-object-marshal.h
2241         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2242         my-object-marshal.c.
2243         (my-object-marshal.c, my-object-marshal.h): Implement.
2244
2245         * test/glib/.cvsignore: Update.
2246
2247         * doc/TODO: Remove two GLib TODO items fixed by this
2248         patch.
2249
2250 2005-06-16  Colin Walters  <walters@verbum.org>
2251
2252         * doc/TODO: Update for GLib bindings.
2253         
2254 2005-06-16  Colin Walters  <walters@verbum.org>
2255
2256         * glib/dbus-binding-tool-glib.c:
2257         * glib/dbus-gobject.c:
2258         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2259         from Ross Burton, for his GLib bindings work.
2260
2261 2005-06-16  Colin Walters  <walters@verbum.org>
2262
2263         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2264         to iterate instead of walking to G_TYPE_INVALID.
2265
2266         Patch based on a patch from Ryan Gammon.
2267
2268 2005-06-16  Colin Walters  <walters@verbum.org>
2269
2270         * bus/bus.c (bus_context_new): Set parser to NULL
2271         after we unref it (Patch from Chris Boscolo, #2174).
2272         
2273 2005-06-16  Colin Walters  <walters@verbum.org>
2274
2275         * python/dbus_bindings.pyx.in: Import size_t,
2276         __int64_t, __uint64_t, and __signed.
2277
2278         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2279         Define cmsg struct, output it.
2280         (_dbus_read_credentials_unix_socket):
2281         Use cmsg struct.
2282         
2283         Patch from Joe Markus Clarke for FreeBSD support.
2284         
2285 2005-06-16  Colin Walters  <walters@verbum.org>
2286
2287         * tools/dbus-send.c (append_array): Use strtok.
2288         (append_dict): New function.
2289         (type_from_name): New function, extracted from main.
2290         (main): Handle sending dicts.
2291
2292         * tools/dbus-print-message.c (print_iter): Print dict
2293         entries.
2294         
2295 2005-06-16  Colin Walters  <walters@verbum.org>
2296
2297         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2298         values as the empty string (#2948).
2299         
2300 2005-06-16  Colin Walters  <walters@verbum.org>
2301
2302         * dbus/Makefile.am:
2303         * mono/doc/Makefile.am:
2304         * test/glib/Makefile.am:
2305
2306         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2307
2308 2005-06-16  Colin Walters  <walters@verbum.org>
2309
2310         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2311         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2312
2313         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2314         Increment pointer after swapping fixed array.  Add assertion
2315         for array length.
2316                 
2317 2005-06-15  Colin Walters  <walters@verbum.org>
2318
2319         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2320         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2321         
2322 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2323
2324         * NEWS: Update to 0.34
2325
2326 2005-06-15  David Zeuthen  <davidz@redhat.com>
2327
2328         * configure.in (LT_CURRENT): Revert back to 1 as the library
2329         hasn't changed and we've certainly not committed to protocol
2330         stability yet.  All this does is to break ABI. See commit note
2331         from hp@redhat.com 2005-05-05 for details.
2332         
2333 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2334
2335         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2336         (_dbus_connection_run_builtin_filters): New method
2337         (dbus_connection_dispatch): Run the builtin filters which in turn
2338         runs the peer filter which handles Ping messages.
2339
2340         * doc/TODO: 
2341          - Ping isn't handled: This patch fixes it
2342          
2343          - Add a test case for the Ping message: added TODO item
2344
2345 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2346
2347         * dbus/dbus-message.c:
2348         (dbus_message_has_path): New method
2349         (dbus_message_has_interface): New method
2350         (dbus_message_has_member): New method
2351
2352         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2353         New method
2354
2355         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2356         the keyring directory is private to the user
2357
2358         * doc/TODO:
2359          - The convenience functions in dbus-bus.h should perhaps have
2360          the signatures that they would have if they were autogenerated
2361          stubs. e.g. the acquire service function. We should also evaluate
2362          which of these functions to include, in light of the fact that
2363          GLib/Qt native stubs will probably also exist.: Punted
2364
2365          - add dbus_message_has_path(), maybe has_member/interface:
2366          fixed in this patch
2367
2368          - in dbus-keyring.c, enforce that the keyring dir is not
2369          world readable/writable: Fixed in this patch
2370
2371 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2372
2373         * dbus/dbus-marshal-validate.h: Added a new validation
2374         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2375         out of memory errors when validating signitures
2376
2377         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2378         in places where we previously used DBUS_VALID and a FALSE return 
2379         value to indicate OOM
2380         
2381         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2382         Use a stack to track the number of elements inside containers.  The 
2383         stack values are then used to validate that dict entries have only two
2384         elements within them.
2385         (validate_body_helper): check the reason for failure when validating
2386         varients
2387         
2388         * dbus/dbus-message.c (load_message): use 
2389         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2390         DBUS_VALID and a FALSE return value to indicate OOM
2391
2392         * doc/TODO: remove "- validate dict entry number of fields" as this
2393         patch fixes it
2394
2395 2005-06-14  David Zeuthen  <davidz@redhat.com>
2396
2397         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2398         watches (if applicable) and add new watches
2399
2400         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2401         (main): Setup SIGIO signal handler if using D_NOTIFY
2402
2403         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2404
2405         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2406         (merge_included): Also merge conf_dirs list
2407         (bus_config_parser_unref): Clear conf_dirs list
2408         (include_dir): Add directory to conf_dirs list
2409         (bus_config_parser_get_conf_dirs): New function
2410
2411         * bus/dir-watch.[ch]: New files
2412
2413         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2414
2415         * configure.in: Add checks for D_NOTIFY on Linux
2416
2417 2005-06-14  Colin Walters  <walters@verbum.org>
2418
2419         * glib/dbus-binding-tool-glib.c:
2420         * glib/dbus-gobject.c:
2421         * glib/dbus-gvalue.c: Fix indentation and brace style.
2422         
2423 2005-06-14  Ross Burton <ross@openedhand.com>.
2424
2425         * glib/dbus-glib.h: Make DBusGMethodInvocation
2426         a private structure.  Rearrange prototypes a bit.
2427         
2428         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2429         documentation for first_arg_type.
2430         
2431         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2432         here, add documentation.  Move dbus_g_method_return
2433         and dbus_g_method_return_error into public API
2434         section.
2435
2436 2005-06-14  Colin Walters  <walters@verbum.org>
2437
2438         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2439         Add missing return statements, noticed by Ross Burton.
2440         
2441 2005-06-13  Ross Burton <ross@openedhand.com>.
2442
2443         * glib/dbus-gobject.c: Handle errors on message
2444         demarshalling by sending error message back.
2445         * glib/dbus-gvalue.c: Initialize return variables.
2446
2447 2005-06-13  Colin Walters  <walters@verbum.org>
2448
2449         * glib/Makefile.am: Fix thinko in last patch.
2450
2451 2005-06-13  Colin Walters  <walters@verbum.org>
2452
2453         * glib/Makefile.am: Move dbus-gtype-specialized.c
2454         and dbus-gtype-specialized.h into a _HEADERS variable,
2455         install them.
2456
2457 2005-06-12  Colin Walters  <walters@verbum.org>
2458
2459         Async signals and various bugfixes and testing by
2460         Ross Burton <ross@openedhand.com>.
2461
2462         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2463         (dbus_gvalue_genmarshal_name_from_type)
2464         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2465         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2466         (dbus_g_value_types_init, dbus_gtype_from_signature)
2467         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2468         (dbus_gtypes_from_arg_signature): New function prototypes.
2469         (dbus_gvalue_demarshal): Take context and error arguments.
2470         (dbus_gvalue_demarshal_variant): New function.
2471         (dbus_gvalue_demarshal_message): New function.
2472         (dbus_gvalue_store): Delete.
2473
2474         * glib/dbus-gvalue.c:
2475
2476         File has been almost entirely rewritten; now we special-case
2477         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2478         hash tables correctly, etc.  Full support for recursive values
2479         is not yet complete.
2480
2481         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2482         argument of signal to G_TYPE_POINTER since we now pass a
2483         structure.
2484         (lookup_g_marshaller): Delete in favor of
2485         _dbus_gobject_lookup_marshaller.
2486         (marshal_dbus_message_to_g_marshaller): Use
2487         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2488         to handle remote signal callbacks.
2489         (dbus_g_proxy_new_from_proxy): New function; creates a new
2490         DBusGProxy by copying an existing one.
2491         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2492         (dbus_g_proxy_get_path): New functions.
2493         (dbus_g_proxy_marshal_args_to_message): New function;
2494         factored out of existing code.
2495         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2496         from a varargs array.
2497         (dbus_g_proxy_begin_call_internal): New function.
2498         (dbus_g_proxy_end_call_internal): New function.
2499         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2500         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2501         after collecting args into value array.
2502         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2503         invoke dbus_g_proxy_end_call_internal.
2504         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2505         end_call_internal.
2506         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2507         types.
2508         (array_free_all): New function.
2509         (dbus_g_proxy_add_signal): Take GTypes.
2510
2511         * glib/dbus-gobject.h:
2512         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2513         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2514         Prototype.
2515
2516         * glib/dbus-gobject.c: Add a global marshal_table hash which
2517         stores mappings from type signatures to marshallers.  Change lots
2518         of invocations of dbus_gtype_to_dbus_type to
2519         dbus_gtype_to_signature.
2520         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2521         (introspect_signals): Fix test for query.return_type.
2522         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2523         (invoke_object_method): Many changes.  Handle asynchronous
2524         invocations.  Convert arguments with
2525         dbus_gvalue_demarshal_message.  Handle errors.  Use
2526         DBusSignatureIter instead of strlen on args. Handle all arguments
2527         generically.  Special-case variants.
2528         (dbus_g_method_return, dbus_g_method_return_error): New function.
2529         (DBusGSignalClosure): New structure, closes over signal
2530         information.
2531         (dbus_g_signal_closure_new): New function.
2532         (dbus_g_signal_closure_finalize): New function.
2533         (signal_emitter_marshaller): New function; is special marshaller
2534         which emits signals on bus.
2535         (export_signals): New function; introspects object signals and
2536         connects to them.
2537         (dbus_g_object_type_install_info): Take GType instead of
2538         GObjectClass.
2539         (dbus_g_connection_register_g_object): Invoke export_signals.
2540         (dbus_g_connection_lookup_g_object): New function.
2541         (DBusGFuncSignature) New structure; used for mapping type
2542         signatures to marshallers.
2543         (funcsig_hash): New function; hashes DBusGFuncSignature.
2544         (funcsig_equal): New function; compares DBusGFuncSignature.
2545         (_dbus_gobject_lookup_marshaller): New function.
2546         (dbus_g_object_register_marshaller): New function; used to
2547         register a marshaller at runtime for a particular signature.
2548
2549         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2550
2551         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2552         which notes a server method implementation should be
2553         asynchronous.
2554
2555         * glib/dbus-binding-tool-glib.c
2556         (dbus_binding_tool_output_glib_server): Call
2557         dbus_g_value_types_init.
2558         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2559         variants specially.
2560         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2561         of a lookup function.
2562         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2563         (write_untyped_out_args): New method; write output arguments.
2564         (write_formal_declarations_for_direction): Function for
2565         writing prototypes.
2566         (write_formal_parameters_for_direction): Function for
2567         writing implementations.
2568         (write_typed_args_for_direction): Function for writing
2569         arguments prefixed with GTypes.
2570         (write_async_method_client): Write out async version
2571         of method.
2572
2573         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2574         (dbus_g_type_get_marshal_name): Move mapping from GType
2575         to marshal name into here.
2576         (dbus_g_type_get_c_name): Move into here.
2577         (compute_marshaller): Convert signature to type with
2578         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2579         (compute_marshaller_name): Ditto.
2580         (compute_marshaller): Handle async signal annotations.
2581         (gather_marshallers): Return if we don't have a known
2582         prefix.
2583         (generate_glue): Collect introspection blob here, and
2584         write all of the blob at the end.  This allows an object
2585         with multiple interfaces to work.
2586         Mark async methods in introspection blob.
2587
2588         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2589         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2590         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2591
2592         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2593         avoids people accidentally using DBUS_TYPE_* which should
2594         not be necessary anymore.
2595         Do include dbus-gtype-specialized.h, which are utilities
2596         for GLib container types.
2597         Add various #defines for types such as
2598         DBUS_TYPE_G_BOOLEAN_ARRAY.
2599         (DBusGValueIterator, DBusGValue): Define, not fully used
2600         yet.
2601         (dbus_g_value_get_g_type): Type for recursive value.
2602         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2603         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2604         (dbus_g_value_free): Prototypes.
2605         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2606         (dbus_g_proxy_set_interface): Prototype.
2607         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2608         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2609         types.
2610         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2611         Accessors.
2612         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2613         doing async invocations.
2614         (dbus_g_method_return, dbus_g_method_return_error):
2615         Prototypes.
2616         * doc/dbus-tutorial.xml: Update GLib section.
2617         
2618         * tools/dbus-viewer.c (load_child_nodes): Update
2619         for new invocation type of dbus_g_proxy_end_call.
2620         (load_from_service_thread_func): Ditto.
2621
2622         * tools/print-introspect.c (main): Ditto.
2623
2624         * tools/dbus-names-model.c (have_names_notify)
2625         (names_model_reload, names_model_set_connection)
2626         Use GTypes.
2627
2628         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2629         needed since Python bindings use GLib bindings.
2630
2631         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2632         Add --prefix argument.
2633
2634         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2635         unneeded --ignore-unsupported arg.
2636         
2637         * test/glib/test-service-glib.c: 
2638         * test/glib/test-service-glib.xml:
2639         * test/glib/test-dbus-glib.c: Add many more tests.
2640
2641 2005-06-06  David Zeuthen  <davidz@redhat.com>
2642
2643         * doc/TODO: Add item about need to remove deprecated functions.
2644
2645         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2646
2647         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2648         to repair the ABI which was broken with the last commit.
2649
2650 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2651
2652         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2653         (dbus_connection_disconnect): renamed to dbus_connection_close 
2654         for API symmetry with dbus_connection_open
2655         (_dbus_connection_open_internal): 
2656         s/dbus_connection_disconnect/dbus_connection_close
2657
2658         * dbus/dbus-bus.c (dbus_bus_get):
2659         s/dbus_connection_disconnect/dbus_connection_close
2660
2661         * bus/connection.c (bus_connections_unref, 
2662         bus_connections_setup_connection, bus_connections_expire_incomplete):
2663         s/dbus_connection_disconnect/dbus_connection_close
2664
2665         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2666         kill_client_connection_unchecked, check_hello_connection):
2667         s/dbus_connection_disconnect/dbus_connection_close
2668
2669         * bus/bus.c (new_connection_callback):
2670         s/dbus_connection_disconnect/dbus_connection_close
2671
2672         * tools/dbus-send.c (main):
2673         s/dbus_connection_disconnect/dbus_connection_close
2674
2675         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2676         s/dbus_connection_disconnect/dbus_connection_close
2677         
2678         * test/test-service.c (path_message_func, filter_func):
2679         s/dbus_connection_disconnect/dbus_connection_close
2680         
2681         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2682         
2683 2005-05-25  Colin Walters  <walters@verbum.org>
2684
2685         * dbus/dbus-protocol.h: Move various bus service #defines such
2686           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2687           dbus/dbus-shared.h.
2688         * dbus/dbus-shared.h: Various defines moved here.
2689         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2690
2691 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
2692
2693         * python/__init__.py: Python bindings deserve a minor version
2694         update.  Upped to (0, 40, 2)
2695
2696 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
2697
2698         * python/decorators.py: add explicitly_pass_message decorator
2699         for passing in the dbus message as keyword for edge case signal
2700         handling
2701
2702         * python/matchrules.py (SignalMatchRule.__repr__): fix output
2703         to conform with what dbus expects for match rules
2704         (SignalMatchRule.execute): add the dbus message as a keyword
2705         if the signal handler has requested it
2706
2707         * python/examples/example/signal-recipient.py: added some more
2708         examples on how to hook up to signals
2709
2710 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
2711
2712         * python/decorators.py: import dbus_bindings
2713
2714         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
2715         SignalMatchNode): new classes that implement wildcard signal
2716         callback matching using a tree lookup. Heavily modified from a
2717         patch sent by Celso Pinto (fd.o bug #3241)
2718
2719         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2720         use new match classes to handle signals.
2721
2722 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
2723         
2724         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2725
2726 2005-05-18  Havoc Pennington  <hp@redhat.com>
2727
2728         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2729         gettext. Not really worth requiring yet perhaps, but any
2730         production quality 1.0 would require it so we should go ahead and
2731         get things set up. We do have a couple token calls to
2732         bindtextdomain in the code already.
2733
2734 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
2735
2736         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2737         when using recursive g_main_loops
2738
2739         * python/_dbus.py (class Bus): add the ProxyObjectClass
2740         alias for ProxyObject to make it easier for the Twisted 
2741         networking framework to integrate dbus.
2742
2743         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2744         alias for ProxyMethod to make it easier for the Twisted 
2745         networking framework to integrate dbus. 
2746
2747 2005-05-11  Ross Burton  <ross@openedhand.com>
2748
2749         * glib/dbus-glib-tool.c: Add --prefix argument.
2750         * glib/dbus-binding-tool-glib.h: Add prefix argument.
2751         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2752         Add prefix argument.
2753         (generate_glue): Pass prefix argument down.
2754         (dbus_binding_tool_output_glib_server): Pass prefix to
2755         glib-genmarshal.
2756         
2757 2005-05-11  Colin Walters  <walters@verbum.org>
2758
2759         * tools/dbus-send.c (append_array): New function.
2760         (append_arg): Broken out from main.
2761         (main): Add cheesy hack to send arrays and variants.
2762         (usage): Update.
2763         * tools/dbus-print-message.c (print_iter): Broken out
2764         from main.
2765
2766 2005-05-11  Colin Walters  <walters@verbum.org>
2767
2768         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2769         New function, returns signature string for signature iter.
2770         * dbus/dbus-signature.h: Prototype it.
2771         * dbus/dbus-message.c (dbus_message_iter_get_signature):
2772         New function, returns signature string for message iter.
2773         (dbus_message_iter_get_array_len): New function, returns
2774         length of array.
2775         (dbus_message_iter_get_fixed_array): Fix assertion; this
2776         function should be used when the iter is pointing to the
2777         contents of an array
2778         * dbus/dbus-message.h: Prototypes.
2779         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2780         New function; returns length of an array.
2781         * dbus/dbus-marshal-recursive.h: Prototype it.
2782         
2783 2005-05-11  Colin Walters  <walters@verbum.org>
2784
2785         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2786         compilation error.
2787         
2788 2005-05-08  Havoc Pennington  <hp@redhat.com>
2789
2790         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2791         daemon's pid, not the parent's pid, to the file descriptor.
2792         Reported by Taj Morton.
2793
2794 2005-05-05  Havoc Pennington  <hp@redhat.com>
2795
2796         * configure.in (LT_*): add notes on how the libtool versioning
2797         works to save thinking. Increment soname to indicate protocol
2798         breakage (though really the library interface hasn't changed I
2799         guess)
2800
2801         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2802         verify the GUID received from server matches what we were
2803         expecting, if we had an expectation
2804
2805         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2806         (_dbus_auth_get_guid_from_server): new function
2807         (send_begin): parse the OK args
2808
2809         * doc/dbus-specification.xml: add GUID to the auth protocol
2810
2811 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
2812
2813         * Fix my name in previous changelog ;)
2814
2815         * python/proxies.py (ProxyObject.__getattr__): add further patch
2816         from Anthony Baxter to throw an AttributeError when python 
2817         __special__ functions are called instead of marshling them over 
2818         the bus (Bug#1685 comment 3).
2819
2820 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
2821
2822         * python/Makefile.am: changed to use pyexecdir for the binding
2823         shared libraries (Bug#2494)
2824
2825         * python/exceptions.py: bring exceptions over from the bindings
2826         so they can be used in applications (Bug#2036)
2827         Make all exceptions derive from DBusException
2828
2829         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2830         of classes so that print obj doesn't throw an exception (Bug #1685)
2831
2832 2005-05-03  Ross Burton  <ross@openedhand.com>
2833
2834         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2835         Return if we get an error during registration.  Set up a
2836         weak reference on object to unregister if object is destroyed.
2837         (unregister_gobject): New function.
2838         
2839 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
2840
2841         * python/dbus_bindings.pyx.in: 
2842         - added new type classes for hinting to the marashaler what type 
2843         to send over the wire
2844         - added int16 and uint16 marshalers
2845         - Fixed a bug in the type constants that caused int32 to go out
2846         as uint16 over the wire
2847         * python/dbus.py: split up into different files and renamed _dbus.py
2848         * python/__init__.py, python/_util.py, python/decorators.py, 
2849         python/exceptions.py, python/proxies.py, python/services.py,
2850         python/types.py: new files split off from dbus.py
2851         * python/Makefile.am: Add new files, remove dbus.py and 
2852         install all python files to <python module dir>/dbus
2853         * python/examples/*: Added #!/usr/bin/env python to the top of
2854         every example.  Patch provided by Tatavarty Kalyan
2855
2856 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2857
2858         * NEWS: Update to 0.33
2859
2860 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2861
2862         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2863         method for doing async calls
2864         (_pending_call_notification): New C function for handling pendning call
2865         callbacks
2866         (set_notify): New method for setting pending call notification
2867         
2868         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2869         Async capabilities added to remote method calls
2870         (Sender): class removed
2871         (RemoteService): class removed
2872         (ObjectTree): class removed for now
2873         (RemoteObject): Renamed to ProxyObject
2874         (RemoteMethod): Renamed to ProxyMethod
2875         (method): Decorator added for decorating python methods as dbus methods
2876         (signal): Decorator added for decorating python methods as signal emitters
2877         (ObjectType): Metaclass added for generating introspection data and the
2878         method callback vtable
2879         (Interface): Wrapper class added to wrap objects in a dbus interface
2880         (Object): Uses ObjectType as its metaclass and exports Introspect
2881         of the org.freedesktop.DBus.Introspectable interface
2882         (ValidationException, UnknownMethodException): new exceptions
2883
2884         * python/examples/*: Modified to fit with the new bindings
2885
2886 2005-04-23  Havoc Pennington  <hp@redhat.com>
2887
2888         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2889         reported by Tony Houghton
2890
2891         * test/test-service.c (main): test
2892         dbus_connection_get_object_path_data()
2893
2894         * dbus/dbus-object-tree.c (find_handler): be sure we always init
2895         the exact_match
2896         (_dbus_object_tree_get_user_data_unlocked): new function used by
2897         dbus_connection_get_object_path_data()
2898         (do_register): add assertion test for get_user_data_unlocked
2899         (object_tree_test_iteration): more tests
2900
2901         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2902         new function from Dan Reed to let you get the user data from 
2903         dbus_connection_register_object_path()
2904
2905 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
2906
2907         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2908         in numerous places that did not account for the NULL terminator
2909         (signature_from_seed): changed the manual string copy loop to 
2910         just use strcpy instead
2911         make check should now pass
2912
2913 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
2914
2915         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2916         so that it allows messages that are not signals to pass in 
2917         NULL as the interface.
2918
2919 2005-04-18  David Zeuthen  <davidz@redhat.com>
2920
2921         * glib/dbus-gmain.c (io_handler_destroy_source): 
2922         (timeout_handler_destroy_source, connection_setup_free): 
2923         Also unref the source to avoid memory leaks.
2924
2925 2005-04-13  David Zeuthen  <davidz@redhat.com>
2926
2927         * bus/config-parser.c (bus_config_parser_new): Bump this to a
2928         more reasonable, yet still totally arbitrary, value :-). 
2929
2930 2005-04-13  David Zeuthen  <davidz@redhat.com>
2931
2932         * doc/TODO: Added an "important for 1.0" item about selinux
2933         allow/deny messages
2934
2935 2005-04-13  David Zeuthen  <davidz@redhat.com>
2936
2937         * bus/selinux.c: Add c-file-style to top of file
2938         (log_audit_callback): Don't free the data here anymore
2939         (bus_selinux_check): Don't take spid and tpid since appending
2940         that to auxdata may OOM.
2941         (bus_selinux_allows_acquire_service): Handle OOM and signal back
2942         to the caller if we are OOM by taking an error object.
2943         (bus_selinux_allows_send): -do-
2944
2945         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
2946         and bus_selinux_allows_send
2947
2948         * bus/bus.c (bus_context_check_security_policy): Pass error and
2949         pass on OOM thrown by bus_selinux_allows_send()
2950
2951         * bus/services.c (bus_registry_acquire_service): Pass error and
2952         pass on OOM thrown by bus_selinux_allows_acquire_service()
2953
2954 2005-04-13  Havoc Pennington  <hp@redhat.com>
2955
2956         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
2957         message at a time to avoid monopolizing the main loop, bug 
2958         #2953 from Benjamin Otte
2959
2960 2005-04-09  Havoc Pennington  <hp@redhat.com>
2961
2962         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
2963         possible overlap, fix from Daniel Reed
2964         (fixup_alignment): fix signedness warnings
2965         (_dbus_string_append_unichar): ditto
2966
2967 2005-04-09  Havoc Pennington  <hp@redhat.com>
2968
2969         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
2970
2971         * glib/dbus-glib-tool.c (main): fix warning
2972
2973         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
2974
2975         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
2976         add a new function that can be used in simple applications that
2977         don't have a main loop and are willing to block
2978
2979 2005-04-05  David Zeuthen  <davidz@redhat.com>
2980
2981         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
2982
2983         * glib/dbus-gmain.c:
2984         (io_handler_destroy_source): Remove from list of IO handlers
2985         of the ConnectionSetup object
2986         (timeout_handler_destroy_source): -do- for timeout handlers
2987         (io_handler_source_finalized): Don't remove from list since
2988         we now do that in io_handler_destroy_source(). Renamed from
2989         io_handler_source_destroyed
2990         (timeout_handler_source_destroyed): -do- for timeout handlers
2991         (connection_setup_free): It is now safe to iterate over all
2992         IO and timeout handlers as the _destroy_source removes them
2993         from the list synchronously
2994
2995 2005-03-30  Havoc Pennington  <hp@redhat.com>
2996
2997         * configure.in: change check to gtk 2.4
2998
2999         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3000         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3001         to 2.4
3002
3003 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3004
3005         * News: Update 0.32
3006
3007         * HACKING: Fixed realease instructions.  configure.in should be updated to
3008           the next release by the person who made the last release.
3009
3010 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3011
3012         * python/lvalue_cast_post_process.py - removed.  Patch has been
3013           submitted to Pyrex maintainers that fixes gcc4.0 errors
3014
3015         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3016
3017 2005-03-24  Daniel Reed  <n@ml.org>
3018
3019         * tools/Makefile.am: Make print-introspect and
3020         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3021
3022 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3023
3024         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3025
3026         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3027           had in Red Hat packages for a while but for some reason never 
3028           got merged upstream
3029           (_dbus_is_a_number): New checks if a string
3030           can be converted to a number and does the conversion if it can
3031           (_dbus_user_database_lookup): Add check to see if the given username
3032           is a udi.  This allows udi's to be used instead of usernames in the
3033           config file.
3034           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3035           is a gdi.  This allows gdi's to be used instead of groupnames in the
3036           config file.
3037
3038 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3039
3040         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3041           code so that it compiles with gcc4.0
3042
3043         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3044           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3045           results back to dbus_binding.c
3046
3047 2005-03-20  Colin Walters  <walters@verbum.org>
3048
3049         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3050
3051         * configure.in: Require GTK+ 2.6.
3052         
3053 2005-03-20  Colin Walters  <walters@verbum.org>
3054
3055         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3056
3057 2005-03-17  Tom Parker  <palfrey@tevp.net>
3058
3059         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3060         print DBUS_UID_UNSET; instead print passed username.  Also
3061         be sure to actually use gid looked up in cache.
3062         
3063         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3064         for DBUS_GID_UNSET and groupname.
3065
3066 2005-03-17  Colin Walters  <walters@verbum.org>
3067
3068         * bus/print-introspect.c: Move to tools/.
3069         * bus/run-with-tmp-session-bus.sh: Ditto.
3070         
3071         * glib/Makefile.am (dbus-glib-bindings.h): Move
3072         generation to tools/Makefile.am.
3073
3074         * test/glib/run-test.sh: Update to handle move
3075         of run-with-tmp-session-bus.sh.
3076
3077         * test/glib/test-service-glib.c: Update to handle
3078         move of dbus-glib-bindings.h.
3079
3080         * tools/print-introspect.c: Moved here
3081         from bus/, and ported to GLib bindings.
3082
3083         * tools/run-with-tmp-session-bus.sh: Moved here
3084         from bus/.
3085
3086         * tools/Makefile.am: Generate dbus-glib-bindings.h
3087         and dbus-bus-introspect.xml here.
3088
3089         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3090         Update.
3091
3092 2005-03-17  Colin Walters  <walters@verbum.org>
3093
3094         * bus/driver.c (write_args_for_direction): Use
3095         _dbus_string_get_const_data to retrieve string;
3096         _dbus_string_get_const_data_len doesn't actually return
3097         a NULL-terminated substring.
3098
3099         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3100         (main): Change to use org_freedesktop_DBus_request_name
3101         instead of using g_proxy_begin_call/end_call.
3102
3103 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3104
3105         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3106         generating the finalizer.  Fixes from Ben Maurer.
3107
3108 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3109
3110         * mono/BusDriver.cs: Update method names: ListServices
3111         becomes ListNames; GetOwner becomes GetNameOwner.
3112
3113         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3114         onto the eval stack when removing the delegate.
3115
3116 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3117
3118         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3119         LT_CURRENT.  Set it to the autoconf variable.
3120                                                                                 
3121         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3122         classes that disconnects the signal handler delegate from the
3123         service object.  Fixes a big leak of proxy objects on the
3124         client side of things.  Patch from Ben Maurer
3125         <bmaurer@ximian.com>
3126
3127 2005-03-12  Colin Walters  <walters@verbum.org>
3128
3129         * bus/driver.c (write_args_for_direction): New function,
3130         parses a type signature into arguments and outputs to
3131         XML.
3132         (bus_driver_handle_introspect): Use it instead of
3133         hardcoding XML for certain signatures.
3134         
3135         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3136         dependency on dbus-daemon.
3137
3138         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3139         argument, pass it to dbus_binding_tool_output_glib_client.
3140
3141         * glib/dbus-binding-tool-glib.c
3142         (generate_client_glue): Protect against multiple inclusion.
3143         (dbus_binding_tool_output_glib_client): Add
3144         G_BEGIN_DECLS/G_END_DECLS.
3145
3146         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3147         Change to just take iface prefix directly.
3148         (write_formal_parameters): Clarify error message.
3149         (check_supported_parameters): New function; checks to see type
3150         signatures of method parameters are supported.
3151         (generate_client_glue): Handle ignore_unsupported flag.
3152         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3153         parameter.
3154
3155         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3156         --ignore-unsupported by default until glib bindings
3157         support arrays.
3158
3159 2005-03-11  Colin Walters  <walters@verbum.org>
3160
3161         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3162         install it.
3163
3164         * bus/print-introspect.c: New file; prints introspection
3165         data for a given name and object path.
3166
3167         * bus/run-with-tmp-session-bus.sh: New file, refactored
3168         from test/glib/run-test.sh.  Creates a temporary session
3169         bus and runs another program.
3170
3171         * test/glib/run-test.sh: Refactor to invoke
3172         run-with-tmp-session-bus.sh.
3173
3174         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3175         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3176         macros instead of hardcoding.
3177
3178         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3179
3180 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3181
3182         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3183         this unref; it doesn't match up evenly in some codepaths.
3184         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3185         this evenly matches with the ref near the top of this function.
3186
3187 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3188
3189         * dbus/dbus-object-tree.c
3190         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3191         and we try to unregister a path that's not registered, still go
3192         through the process of unlocking and don't just return.
3193
3194 2005-03-09  Colin Walters  <walters@verbum.org>
3195
3196         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3197         to this are generated for client-side wrappers.  Invokes a
3198         D-BUS method and returns reply values.  
3199
3200         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3201         function; writes signature string for argument direction.
3202         (write_args_for_direction): Change to pass input values directly
3203         instead of via address, and fix indentation.
3204         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3205         make generated wrappers inlineable.
3206
3207         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3208         note about using dbus_type_is_fixed.
3209
3210         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3211         dbus/dbus-signature.c as dbus_type_is_fixed.
3212
3213         All callers updated.
3214
3215         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3216         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3217
3218         * dbus/dbus-signature.h: Prototype.
3219
3220         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3221         error printf code.
3222
3223         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3224         appropriate instead of just freeing it.
3225         (main): Free returned strings using g_free.
3226
3227         * test/glib/Makefile.am (test-service-glib-glue.h)
3228         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3229
3230         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3231         simply maps a simple D-BUS type to GType.
3232         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3233         GType.
3234         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3235         initialize the value with it.
3236         (dbus_gvalue_binding_type_from_type): Unused, delete.
3237         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3238         various types instead of unmarshalling to value data directly.
3239         Remove can_convert boolean.
3240         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3241         returning directly instead of using can_convert boolean.
3242         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3243         Stores a GValue in a pointer to a value of its corresponding C
3244         type.
3245
3246         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3247         add dbus_gvalue_store.
3248
3249 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3250
3251         Fix a bunch of lifecycle and memory management problems
3252         in the mono bindings.
3253
3254         * mono/Arguments.cs (Arguments): Implement IDisposable
3255
3256         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3257         strictly a static class.
3258
3259         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3260         delegates into this file.
3261         (Connection): Implement IDisposable.
3262         (Dispose): Disconnect the connection and set the raw connection
3263         pointer to IntPtr.Zero.
3264         (~Connection): Call Dispose().
3265         (RegisterObjectPath): Added.  Manages the registration of object
3266         paths so we can cleanly disconnect them at dispose/finalize time.
3267         (UnregisterObjectPath): Ditto.
3268         (set_RawConnection): Unregister all of the object paths when
3269         changing the underlying DBusConnection.  Add them back onto the
3270         new connection, if any.
3271
3272         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3273         more unmanaged resources anymore, so it's not necessary.  Move all
3274         the DBusObjectPathVTable stuff out of here.
3275         (Handler): Save references to our delegates so that they don't get
3276         finalized.  Call Connection.RegisterObjectPath() instead of
3277         dbus_connection_register_object_path() directly.
3278         (Message_Called): Dispose the message after we're finished with
3279         it.
3280
3281         * mono/Message.cs (Message): Implement IDisposable.
3282         (Dispose): Dispose the Arguments, and set the RawMessage to
3283         IntPtr.Zero.
3284         (SendWithReplyAndBlock): We own the ref to the reply that comes
3285         back from dbus_connection_send_with_reply_and_block() so add a
3286         comment about that and unref it after we've constructed a managed
3287         MethodReturn class around it.  Fixes a big, big leak.
3288
3289         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3290         method.
3291         (BuildSignalHandler): After we've sent the Signal message, dispose
3292         of it.
3293         (BuildMethod): Dispose of the method call and reply messages after
3294         we've sent the message and extracted the data we want from the
3295         reply.
3296
3297         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3298         anymore.
3299         (Service_FilterCalled): Dispose of the message after we're
3300         finished with it.
3301
3302 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3303
3304         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3305         After we attach our pending call to the connection, unref
3306         it.  Fixes a leak.
3307  
3308         * mono/Connection.cs (set_RawConnection): Disconnect our
3309         filter and match callbacks from the old connection and
3310         reconnect them to the new connection, if any.
3311
3312         * mono/DBusType/Array.cs: "Code" is a static member, so
3313         don't use "this" to refer to it.  Fix for stricter checking
3314         in Mono 1.1.4.
3315  
3316         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3317         object path that we pass into unmanaged code.
3318  
3319         * mono/DBusType/String.cs (Append): Don't leak the string
3320         that we pass into unmanged code.
3321
3322 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3323         * NEWS: Update for 0.31
3324
3325         * configure.in: Release 0.31
3326         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3327
3328         * qt/Makefile.am: fixed build
3329
3330         * dbus/Makefile.am: soname bump for libdbus
3331
3332         * glib/Makefile.am: soname bump for libdbus-glib
3333
3334 2005-03-05  Havoc Pennington  <hp@redhat.com>
3335
3336         * dbus/dbus-sysdeps.c:
3337         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3338         value
3339         (_dbus_generate_random_bytes_buffer): fix return value
3340
3341         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3342         checks actually work, from Tom Parker <fdo@tevp.net>
3343
3344 2005-03-01  Colin Walters  <walters@verbum.org>
3345
3346         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3347         functions copied from dbus-glib-tool.c.
3348         (main): Convert lots of error code to use them.
3349         Also add some testing for introspection bits.
3350
3351 2005-03-01  Colin Walters  <walters@verbum.org>
3352         
3353         * doc/TODO: Remove introspection signature TODO.
3354
3355 2005-02-27  Colin Walters  <walters@verbum.org>
3356
3357         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3358         Change return value to const char * instead of int so we can do
3359         full signatures.
3360         (struct PropertyInfo, struct ArgInfo): Store char *.
3361         (property_info_new, arg_info_new): Update parameters, strdup.
3362         (property_info_unref, arg_info_unref): Free.
3363
3364         * glib/dbus-gidl.h: Update prototypes.
3365
3366         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3367         (validate_signature): New function, just validates signature and
3368         sets GError.
3369         (parse_property, parse_arg): Invoke validate_signature.  Store
3370         signature instead of just type code.
3371
3372         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3373         function to return a primary type for a signature, dropping
3374         information about types in container types.
3375         (dbus_gvalue_genmarshal_name_from_type)
3376         (dbus_gvalue_binding_type_from_type)
3377         (dbus_gvalue_ctype_from_type): Update to take full signature
3378          instead of type code.
3379         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3380
3381         * glib/dbus-gvalue.h: Update prototypes for above.
3382
3383         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3384         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3385         (introspect_properties, introspect_signals, write_interface):
3386         Update to handle signatures, and remove usage of
3387         _dbus_gutils_type_to_string.
3388         (handle_introspect): Print out type codes instead of e.g. "string"
3389         in hardcoded introspection XML; also use x_AS_STRING constants
3390         instead of hardcoding in string.
3391
3392         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3393         to string.  Remove usage of _dbus_gutils_type_to_string.
3394
3395         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3396
3397         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3398         deletion.
3399         
3400         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3401         (compute_marshaller_name, generate_glue): Handle signature change
3402         to string.
3403         (write_formal_parameters, write_args_for_direction): Ditto, and
3404         remove FIXME.
3405
3406         * tools/dbus-tree-view.c (type_to_string): Delete.
3407         (info_set_func_text): Update to print full signatures.
3408
3409         * test/glib/test-service-glib.xml: Change types to new
3410         introspection format.
3411
3412 2005-02-26  Havoc Pennington  <hp@redhat.com>
3413
3414         * doc/TODO: remove the "guid" item
3415
3416         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3417         (with_bus_thread_func): use open_private
3418
3419         * dbus/dbus-connection.c (dbus_connection_open_private): new
3420         function that works like the old dbus_connection_open()
3421         (dbus_connection_open): now returns an existing connection if
3422         possible
3423
3424         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3425         through the GUID to the transport
3426
3427         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3428         GUID in hex-encoded form.
3429
3430         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3431         pass GUID argument in to the transport
3432
3433         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3434         guid argument
3435
3436         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3437
3438         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3439
3440 2005-02-25  Havoc Pennington  <hp@redhat.com>
3441
3442         * doc/dbus-specification.xml: document the GUID thing
3443
3444         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3445         globally unique ID for the server, and put a "guid=hexencoded"
3446         field in the address
3447
3448         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3449
3450         * dbus/dbus-message.c: ditto
3451
3452         * dbus/dbus-dataslot.c: ditto
3453
3454         * dbus/dbus-list.c: ditto
3455
3456         * dbus/dbus-internals.h: wait, just include
3457         dbus-threads-internal.h here
3458         
3459         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3460         use in main library
3461
3462         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3463
3464 2005-02-24  Colin Walters  <walters@verbum.org>
3465
3466         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3467
3468 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3469
3470         * glib/Makefile.am: added dbus-gobject.h to sources list
3471         so distcheck doesn't fail
3472         
3473 2005-02-24  Havoc Pennington  <hp@redhat.com>
3474
3475         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3476         you must disconnect before unref, since locking and other things
3477         are screwed up otherwise. Fix assorted other locking stuff.
3478
3479         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3480         fix compilation
3481
3482         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3483         into a private header and don't export from the library
3484
3485         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3486
3487 2005-02-24  Colin Walters  <walters@verbum.org>
3488         
3489         * dbus/dbus-signature.c: New file; implements various functions
3490         related to type signatures.  Includes an interator for parsing,
3491         validation functions.
3492         (dbus_type_is_basic): Moved here from
3493         dbus-marshal-basic.c:_dbus_type_is_basic.
3494         (dbus_type_is_container): Moved here from
3495         dbus-marshal-basic.c:_dbus_type_is_container.
3496
3497         All callers of _dbus_type_is_container and _dbus_type_is_basic
3498         updated, and include dbus-signature.h.
3499
3500         * dbus/dbus-signature.h: New file; prototypes for the above.
3501
3502         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3503         dbus-signature.h.
3504
3505         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3506         function factored out of _dbus_first_type_in_signature.
3507         (_dbus_first_type_in_signature_c_str): New function; returns first
3508         type code for a type signature character.
3509
3510         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3511         handle function moves.
3512
3513         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3514
3515         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3516         function; skips to next complete type in type signature.
3517         Implemented using previous skip_one_complete_type.  Now
3518         skip_one_complete_type just delegates to
3519         _dbus_type_signature_next.
3520
3521         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3522         to dbus-signature.c
3523         (_dbus_type_is_container): Ditto.
3524
3525         * doc/dbus-specification.xml: Update introspection sample to
3526         use real type signatures.
3527
3528         * dbus/dbus-test.h: Prototype signature test.
3529
3530         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3531         signature tests.
3532
3533         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3534
3535 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3536
3537         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3538         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3539
3540 2005-02-21  Colin Walters  <walters@verbum.org>
3541
3542         * dbus/dbus-test-main.c (main): Take optional specific test
3543         argument.
3544
3545         * dbus/dbus-test.c (run_test): New function, runs a test function
3546         with no data directory.
3547         (run_data_test): Like above, but takes data directory.
3548         (dbus_internal_do_not_use_run_tests): Take
3549         specific test argument.  Replace lots of cut n' paste code
3550         with run_test and run_data_test.
3551
3552         * dbus/dbus-test.h: Update prototype for
3553         dbus_internal_do_not_use_run_tests.
3554
3555 2005-02-20  Havoc Pennington  <hp@redhat.com>
3556
3557         Fix bugs reported by Daniel P. Berrange
3558         
3559         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3560         (protected_change_watch): new function
3561         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3562         (_dbus_server_add_watch): change to work like the
3563         dbus-connection.c equivalents; like those, probably kind of
3564         busted, but should at least mostly work for now
3565         (dbus_server_disconnect): drop the lock if we were already
3566         disconnected, patch from Daniel P. Berrange
3567
3568         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3569         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3570         same stuff
3571
3572         * doc/TODO: todo about unscrewing this mess
3573
3574 2005-02-19  Colin Walters  <walters@verbum.org>
3575
3576         * glib/dbus-binding-tool-glib.c
3577         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3578
3579         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3580         as errno.h and sys/stat.h.
3581         (lose): New function, prints error with
3582         newline and exits.
3583         (lose_gerror): Similar, but takes GError for message.
3584         (main): Add --output argument to specify output file to write to,
3585         instead of always printing to stdout.  In this mode, determine
3586         timestamps on source files to see whether any are newer than the
3587         target file.  If not, exit.  Also convert a number of error
3588         messages to use lose (since it's shorter), and switch to using
3589         g_io_channel_shutdown.
3590
3591 2005-02-19  Havoc Pennington  <hp@redhat.com>
3592
3593         * glib/dbus-gobject.c
3594         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3595
3596         * glib/dbus-glib.c: fix doxygen warnings
3597
3598         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3599         is found on an <arg>
3600
3601 2005-02-17  Colin Walters  <walters@verbum.org>
3602
3603         * glib/dbus-gobject.h: Don't export
3604         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3605         
3606         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3607         (invoke_object_method): Handle it.
3608
3609         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3610         Handle rename.
3611         
3612 2005-02-17  Colin Walters  <walters@verbum.org>
3613
3614         * bus/.cvsignore, doc/.cvsignore
3615         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3616         Update.
3617
3618 2005-02-17  Colin Walters  <walters@verbum.org>
3619         
3620         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3621         Rename to DBUS_SERVICE_DBUS.
3622         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3623         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3624         Change the value from "org.freedesktop.Local"
3625         to "org.freedesktop.DBus.Local".
3626         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3627         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3628         DBUS_INTERFACE_INTROSPECTABLE.
3629         Change the value from "org.freedesktop.Introspectable"
3630         to "org.freedesktop.DBus.Introspectable".
3631         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3632         DBUS_INTERFACE_PROPERTIES.
3633         Change the value from "org.freedesktop.Properties"
3634         to "org.freedesktop.DBus.Properties".
3635         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3636         DBUS_INTERFACE_PEER.
3637         Change the value from "org.freedesktop.Peer"
3638         to "org.freedesktop.DBus.Peer".
3639         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3640         DBUS_INTERFACE_LOCAL.
3641         Change the value from "org.freedesktop.Local"
3642         to "org.freedesktop.DBus.Local".
3643
3644         All other users of those constants have been changed.
3645
3646         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3647
3648         * glib/dbus-gobject.c (handle_introspect): Use constants.
3649
3650         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3651
3652 2005-02-17  Colin Walters  <walters@verbum.org>
3653
3654         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3655         (parse_node, parse_interface, parse_method, parse_signal)
3656         (parse_property, parse_annotation): Lose if we're currently in an
3657         annotation.
3658         (parse_annotation): New function.
3659         (parser_start_element, parser_end_element): Handle annotation.
3660         (parse_method, parse_interface): Remove support for c_name attribute,
3661         switch to annotations.
3662
3663         * glib/dbus-gidl.h (interface_info_get_binding_names)
3664         (method_info_get_binding_names)
3665         (interface_info_get_binding_name, method_info_get_binding_name)
3666         (interface_info_set_binding_name, method_info_set_binding_name):
3667         Remove.
3668         (interface_info_get_annotations, method_info_get_annotations)
3669         (interface_info_get_annotation, method_info_get_annotation)
3670         (interface_info_add_annotation, method_info_add_annotation):
3671         Prototype.
3672
3673         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3674         for "bindings".
3675         (struct MethodInfo): Ditto.
3676         Straightfoward conversion of binding methods into annotation methods
3677         as prototyped.
3678
3679         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3680
3681         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3682
3683         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3684         Use new annotation API.
3685
3686         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3687         annotation element.
3688         
3689         * doc/dbus-specification.xml: Discuss introspection annotations,
3690         include list of well-known annotations.
3691
3692         * test/glib/test-service-glib.xml: Make validate against new DTD.
3693
3694 2005-02-17  Colin Walters  <walters@verbum.org>
3695
3696         This patch is based on initial work from
3697         Paul Kuliniewicz <kuliniew@purdue.edu>.
3698
3699         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3700         initialization of GValue from dbus type to here.
3701         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3702         for the "glib-genmarshal" program from a DBus type.
3703         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3704         into the C name for it we use in the glib bindings.
3705         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3706         glib C type (not GValue).
3707         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3708
3709         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3710         from dbus-gobject.c.
3711
3712         * glib/dbus-gutils.h: Prototype it.
3713
3714         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3715         (marshal_dbus_message_to_g_marshaller): Use new shared function
3716         dbus_glib_marshal_dbus_message_to_gvalue_array.
3717
3718         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3719         Will be changed once we have annotations.
3720
3721         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3722         GStaticRWLock.  Callers updated.
3723         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
3724         (string_table_next): New function for iterating over zero-terminated
3725         string value array.
3726         (string_table_lookup): New function; retrieves specific entry in
3727         array.
3728         (get_method_data): New function; look up method data in object data chunk.
3729         (object_error_domain_prefix_from_object_info)
3730         (object_error_code_from_object_info): New functions, but not implemented yet.
3731         (method_interface_from_object_info): New function; retrieve interface name.
3732         (method_name_from_object_info): New function; retrieve method name.
3733         (method_arg_info_from_object_info): New function; retrieve argument data.
3734         (arg_iterate): New function; iterates over serialized argument data.
3735         (method_dir_signature_from_object_info): New function; returns a
3736         GString holding type signature for arguments for just one
3737         direction (input or output).
3738         (method_input_signature_from_object_info)
3739         (method_output_signature_from_object_info): New functions.
3740         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3741         converts dbus message arguments into a GValue array.  Used for both
3742         signal handling and method invocation.
3743         (struct DBusGlibWriteIterfaceData): New utility structure.
3744         (write_interface): New function; generate introspection XML for
3745         an interface.
3746         (introspect_interfaces): New function; gathers all interface->methods,
3747         generates introspection XML for them.
3748         (handle_introspect): Invoke introspect_interfaces.
3749         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3750         (lookup_object_and_method): New function; examines an incoming message
3751         and attempts to match it up (via interface, method name, and argument
3752         signature) with a known object and method.
3753         (gerror_domaincode_to_dbus_error_name): New function; converts a
3754         GError domain and code into a DBus error name.  Needs GError data
3755         added to object introspection to work well.
3756         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3757         GError.
3758         (invoke_object_method): New function to invoke an object method
3759         looked up via lookup_object_and_method.  Parses the incoming
3760         message, turns it into a GValue array, then invokes the marshaller
3761         specified in the DBusGMethodInfo.  Creates a new message with
3762         either return values or error message as appropriate.
3763         (gobject_message_function): Invoke lookup_object_and_method and
3764         invoke_object_method.
3765
3766         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3767         (enum DBusBindingOutputMode): New enum for binding output modes.
3768         (pretty_print): Print binding names.
3769         (dbus_binding_tool_error_quark): GError bits.
3770         (version): Fix typo.
3771         (main): Create GIOChannel for output.  Parse new --mode argument,
3772         possible values are "pretty-print", "glib-server", "glib-client".
3773         Use mode to invoke appropriate function.
3774         
3775         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3776
3777         * glib/dbus-glib-tool.h: New header, just includes GError bits
3778         for now.
3779
3780         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3781         maps binding style to name.
3782         (struct MethodInfo): Ditto.
3783         (get_hash_keys, get_hash_key): Utility function, returns keys for
3784         a GHashTable.
3785         (interface_info_new, method_info_new): Initialize bindings.
3786         (interface_info_unref, method_info_unref): Destroy bindings.
3787         (method_info_get_binding_names, method_info_get_binding_name)
3788         (interface_info_get_binding_names, interface_info_get_binding_name):
3789         Functions for retrieving binding names.
3790         (method_info_set_binding_name, interface_info_set_binding_name):
3791         Functions for setting binding names.
3792
3793         * glib/dbus-binding-tool-glib.h: New file, has prototypes
3794         for glib binding generation.
3795
3796         * glib/dbus-binding-tool-glib.c: New file, implements server-side
3797         and client-side glib glue generation.
3798
3799         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3800         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3801         dbus-glib-tool.h.
3802
3803         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3804         of using GClosureMarshal directly.
3805         (struct DBusGObjectInfo): Add n_infos member.
3806
3807         * test/glib/test-service-glib.xml: New file; contains introspection data
3808         for MyTestObject used in test-service-glib.c.
3809
3810         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3811         (my_object_do_nothing, my_object_increment, my_object_throw_error)
3812         (my_object_uppercase, my_object_many_args): New test methods.
3813         (main): Use dbus_g_object_class_install_info to include generated object
3814         info.
3815
3816         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3817         as well as client-side bindings.
3818
3819         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3820         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3821         using both the dbus_gproxy stuff directly as well as the generated bindings.
3822
3823 2005-02-15  Havoc Pennington  <hp@redhat.com>
3824
3825         * dbus/dbus-connection.c (dbus_connection_dispatch): always
3826         complete a pending call, don't run filters first.
3827
3828         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3829         dbus_pending_call_steal_reply
3830
3831         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3832         _dbus_connection_block_pending_call
3833         (dbus_pending_call_get_reply): change to steal_reply and return a
3834         ref
3835
3836         * dbus/dbus-connection.c
3837         (dbus_connection_send_with_reply_and_block): port to work in terms
3838         of DBusPendingCall
3839         (_dbus_connection_block_pending_call): replace block_for_reply
3840         with this
3841
3842 2005-02-14  Havoc Pennington  <hp@redhat.com>
3843
3844         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3845         properly handle looking up group information by name; fix 
3846         from j@bootlab.org
3847
3848 2005-02-13  Havoc Pennington  <hp@redhat.com>
3849
3850         * dbus/dbus-connection.c (dbus_connection_return_message) 
3851         (dbus_connection_borrow_message): hold dispatch lock while message
3852         is outstanding
3853         (_dbus_connection_block_for_reply): hold dispatch lock while we
3854         block for the reply, so nobody steals our reply
3855         (dbus_connection_pop_message): hold the dispatch lock while we
3856         pluck the message
3857
3858 2005-02-13  Havoc Pennington  <hp@redhat.com>
3859
3860         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3861         (_dbus_connection_release_dispatch)
3862         (_dbus_connection_acquire_io_path)
3863         (_dbus_connection_release_io_path): make the mutex and condvar
3864         control access to the "acquired" flag. Drop the connection lock
3865         while waiting on the condvar. Hopefully these are baby steps in
3866         roughly the right direction.
3867
3868 2005-02-13  Havoc Pennington  <hp@redhat.com>
3869
3870         * dbus/dbus-connection.c: use separate mutexes for the condition
3871         variables; this is some kind of baseline for sanity, but the
3872         condition variables still aren't used correctly afaict
3873
3874 2005-02-13  Havoc Pennington  <hp@redhat.com>
3875
3876         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3877         fix a double-unlock
3878
3879         * dbus/dbus-connection.c
3880         (_dbus_connection_detach_pending_call_unlocked): add this
3881
3882         Initial semi-correct pass through to fix thread locking; there are
3883         still some issues with the condition variable paths I'm pretty
3884         sure
3885         
3886         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3887         lock/unlock calls
3888
3889         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3890         rename to add _unlocked
3891         (struct DBusConnection): move "dispatch_acquired" and
3892         "io_path_acquired" to use only one bit each.
3893         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3894         (dbus_connection_set_watch_functions): hacky fix to reentrancy
3895         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
3896         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
3897         (_dbus_connection_remove_timeout) 
3898         (_dbus_connection_toggle_timeout): drop lock when calling out to
3899         user functions; done in a hacky/bad way.
3900         (_dbus_connection_send_and_unlock): add a missing unlock
3901         (_dbus_connection_block_for_reply): add a missing unlock
3902
3903         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3904         drop lock in a hacky probably unsafe way to call out to user
3905         function
3906
3907 2005-02-12  Havoc Pennington  <hp@redhat.com>
3908
3909         * tools/dbus-tree-view.c (info_set_func_text): display more
3910         details on args
3911
3912         * bus/driver.c (bus_driver_handle_list_services): list the bus
3913         driver
3914
3915         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3916
3917         * glib/dbus-gidl.c (signal_info_get_n_args): new function
3918         (method_info_get_n_args): new function
3919
3920 2005-02-12  Havoc Pennington  <hp@redhat.com>
3921
3922         * bus/driver.c (bus_driver_handle_introspect): add introspection
3923         for bus driver
3924
3925 2005-02-12  Havoc Pennington  <hp@redhat.com>
3926
3927         * bus/driver.c: put the signature of each bus driver method in the
3928         table of handlers and check it on incoming calls; this isn't
3929         really useful, but going to add introspect support in a minute.
3930
3931 2005-02-11  Joe Shaw  <joeshaw@novell.com>
3932
3933         * mono/Connection.cs: The unpredictability of finalizers in mono
3934         prevents us from deterministically disconnecting the filters from
3935         the Service class's finalizer, so move tracking of filters and
3936         matches here.  Add API for that.
3937
3938         * mono/Service.cs: Remove the code, add code which calls the
3939         methods now on the Connection class.
3940
3941 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
3942
3943         * python/dbus.py (class Sender): added to support dbus signals better
3944         (Bus::add_signal_receiver): added expand_args parameter which defaults
3945         to True.  When expand args is True the signal handler will pass the 
3946         message arguments as parameters to the signal handler.  If False
3947         revert to previous behavior where the signal handler must get the
3948         argument list from the message.  This is to help port applications
3949         like HAL that have a tendancy to send variable length argument lists.
3950         self._match_rule_to_receivers is now a dict of dicts.
3951         (Bus::remove_signal_receiver): pop handler off the dict intead of 
3952         removing it from a list
3953         (Bus::_signal_func): change signal handlers so that interface,
3954         signal_name, service, path and message are packed into a Sender
3955         object and that is passed to the handler.  If expand_args is True
3956         extract the args list from the message and append it to the parameter
3957         list
3958         
3959         * python/dbus_bindings.pyx.in (class Signature): added to support 
3960         signiature types
3961         (MessageIter::__init__): changed iteration limit to match D-BUS
3962         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
3963         STRUCT and VARIENT type support
3964         (MessageIter::python_value_to_dbus_sig): made recursive to support
3965         recursive types
3966         (MessageIter::append*): added Signature, dict, tuple 
3967         support
3968
3969         * python/examples/example-client.py: added examples of getting tuples
3970         and dicts
3971
3972         * python/examples/example-service.py: added examples of sending tuples
3973         and dicts
3974
3975         * python/examples/example-signal-recipient.py: Fixed to handle new
3976         signal callback format
3977
3978 2005-02-10  Havoc Pennington  <hp@redhat.com>
3979
3980         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
3981         (call dbus_g_proxy_add_signal)
3982
3983         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3984         escape the hostname
3985         (_dbus_server_new_for_domain_socket): escape the path
3986
3987         * dbus/dbus-address.c (dbus_address_escape_value): new
3988         (dbus_address_unescape_value): new
3989         (dbus_parse_address): unescape values
3990
3991         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
3992
3993         * doc/dbus-specification.xml: explain how to escape values in
3994         addresses
3995
3996 2005-02-10  Havoc Pennington  <hp@redhat.com>
3997
3998         * dbus/dbus-message-factory.c (generate_special): modify test to
3999         avoid using a non-basic dict key
4000
4001         * dbus/dbus-marshal-validate-util.c: add test for the below
4002
4003         * doc/dbus-specification.xml: require that dict keys are a basic
4004         type
4005
4006         * dbus/dbus-marshal-validate.c
4007         (_dbus_validate_signature_with_reason): require that dict key is a
4008         basic type
4009
4010 2005-02-10  Havoc Pennington  <hp@redhat.com>
4011
4012         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4013         change to be _and_unlock instead of _unlocked
4014
4015         * dbus/dbus-connection.c
4016         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4017         have no_update so we can find this bug quickly in future
4018
4019 2005-02-10  Havoc Pennington  <hp@redhat.com>
4020
4021         * dbus/dbus-message-util.c (verify_test_message): tests for string
4022         array
4023
4024         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4025         support for arrays of string/signature/path
4026
4027 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4028
4029         * dbus/dbus-connection.c
4030         (_dbus_connection_queue_received_message_link,
4031         _dbus_connection_message_sent): Add the path to
4032         the verbose output.
4033         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4034         _dbus_connection_send_preallocated_unlocked(), updated the
4035         dispatch status, and unlocks.  Fixes a bug where certain
4036         situations (like a broken pipe) could cause a Disconnect message
4037         to not be sent, tricking the bus into thinking a service was still
4038         there when the process had quit.
4039         (_dbus_connection_send_preallocated): Call
4040         _dbus_connection_send_preallocated_and_unlock().
4041         (_dbus_connection_send_and_unlock): Added.  Calls
4042         _dbus_connection_send_preallocated_and_unlock().
4043         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4044         (dbus_connection_send_with_reply): Update the dispatch status and
4045         unlock.
4046
4047         * mono/Service.cs (~Service): Added.  Removes the filter so that
4048         we don't get unmanaged code calling back into a GCed delegate.
4049         (RemoveFilter); Added.
4050
4051 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4052
4053         * dbus/dbus-message.c (dbus_message_iter_open_container):
4054         - Removed check for iterator type being an array because
4055         get_arg_type does not work with writer iterators
4056         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4057
4058 2005-02-07  Havoc Pennington  <hp@redhat.com>
4059
4060         * doc/dbus-specification.xml: some more language cleanups; add
4061         stuff about how to deal with invalid protocol and extension
4062         points; add _ to allowed chars in auth commands; add EXTENSION_
4063         auth command prefix
4064
4065 2005-02-06  Havoc Pennington  <hp@redhat.com>
4066
4067         * s/expected/required/ in a couple places for clarity
4068
4069 2005-02-07  Colin Walters  <walters@verbum.org>
4070
4071         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4072         sender or proposed_recipient.
4073
4074 2005-02-06  Havoc Pennington  <hp@redhat.com>
4075
4076         * dbus/dbus-message-factory.c (generate_special): more tests
4077
4078         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4079         array length that exceeds the maximum
4080
4081 2005-02-05  Havoc Pennington  <hp@redhat.com>
4082
4083         * dbus/dbus-message-factory.c (generate_special): more test cases,
4084         increasing coverage
4085
4086         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4087         reason why a signature was invalid
4088
4089         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4090         skip the length of the string before we look at it in validation
4091
4092         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4093         equal_substring
4094
4095         * dbus/dbus-message.c (_dbus_message_loader_new): default
4096         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4097
4098 2005-02-05  Havoc Pennington  <hp@redhat.com>
4099
4100         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4101         if the signature of a variant was empty
4102         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4103         struct with no element type)
4104
4105         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4106         mangled messages to break things
4107
4108 2005-02-04  Havoc Pennington  <hp@redhat.com>
4109
4110         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4111         g_quark_try_string() so it actually can return 0
4112         (dbus_g_proxy_connect_signal): ditto
4113
4114 2005-02-04  Havoc Pennington  <hp@redhat.com>
4115
4116         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4117         bogus warning
4118         (tristring_from_message): assert cleanly on null path/interface
4119         (should not be possible though I decided later)
4120         (dbus_g_proxy_dispose): move proxy manager unregistration here
4121         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4122         g_return_if_fail() checks
4123
4124 2005-02-04  Havoc Pennington  <hp@redhat.com>
4125
4126         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4127
4128         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4129         (with some minor changes)
4130
4131         * doc/dbus-specification.xml: add deprecated attribute to
4132         introspection format
4133
4134 2005-01-31  Havoc Pennington  <hp@redhat.com>
4135
4136         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4137         think it's sort of right
4138
4139 2005-01-30  Havoc Pennington  <hp@redhat.com>
4140
4141         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4142
4143 2005-01-30  Havoc Pennington  <hp@redhat.com>
4144
4145         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4146
4147         * autogen.sh: change to autotools 1.9
4148
4149         * glib/dbus-gproxy.c: completely change how signals work
4150         (dbus_g_proxy_add_signal): new function to specify signature of a
4151         signal
4152         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4153         and g_warning if the incoming message has the wrong signature.
4154
4155 2005-01-30  Havoc Pennington  <hp@redhat.com>
4156
4157         * tools/dbus-names-model.c (have_names_notify): fix this
4158
4159         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4160         up the string array handling a bit 
4161
4162 2005-01-30  Havoc Pennington  <hp@redhat.com>
4163
4164         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4165         (dbus_g_pending_call_cancel): new function
4166
4167         * dbus/dbus-glib.h: move GType decls for connection/message here;
4168         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4169         here, just kind of rationalizing how we handle all that
4170
4171         * tools/dbus-names-model.c: new file for a tree model listing the
4172         services on a bus
4173
4174         * tools/dbus-tree-view.c (model_new): use proper typing on the
4175         model rows
4176
4177 2005-01-30  Havoc Pennington  <hp@redhat.com>
4178
4179         * glib/dbus-gmain.c: add a custom GSource back that just checks
4180         whether the message queue has anything in it; otherwise, there are 
4181         cases where we won't see messages in the queue since there was no 
4182         IO visible to the glib main loop
4183
4184         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4185         increase default message timeout to 25 seconds
4186
4187 2005-01-30  Havoc Pennington  <hp@redhat.com>
4188
4189         * test/glib/test-profile.c (no_bus_stop_server): remove the
4190         warning about the g_warning that I just fixed
4191
4192         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4193         custom source, seems to be a lot easier to understand and work
4194         better.
4195
4196 2005-01-30  Havoc Pennington  <hp@redhat.com>
4197
4198         I think this main loop thing is conceptually broken, but here are 
4199         some band aids. I'll maybe rewrite it in a minute.
4200         
4201         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4202         custom GSource, so don't pass it in; confusing
4203         (gsource_server_finalize, gsource_connection_finalize): add
4204         finalize handlers that remove all the watches.  
4205
4206 2005-01-30  Havoc Pennington  <hp@redhat.com>
4207
4208         * glib/dbus-gobject.c (introspect_properties): fix the XML
4209         generated
4210
4211         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4212         which effectively detects the use of freed messages
4213
4214         * glib/dbus-gobject.c (handle_introspect): modify and return the
4215         reply message instead of the incoming message
4216
4217         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4218         gee, maybe it should SEND THE XML instead of just making a string
4219         and freeing it again ;-)
4220
4221         * tools/dbus-print-message.c (print_message): improve printing of
4222         messages
4223
4224         * configure.in: add debug-glib.service to the output
4225
4226 2005-01-30  Havoc Pennington  <hp@redhat.com>
4227
4228         dbus-viewer introspected and displayed the bus driver
4229         
4230         * dbus/dbus-object-tree.c 
4231         (object_tree_test_iteration): add tests for a handler registered on "/"
4232
4233         * dbus/dbus-object-tree.c
4234         (_dbus_decompose_path): fix to handle path "/" properly
4235         (run_decompose_tests): add tests for path decomposition
4236         
4237         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4238         properly
4239
4240         * glib/dbus-gobject.c (handle_introspect): fix quotes
4241
4242         * test/glib/run-test.sh: support launching the bus, then running
4243         dbus-viewer
4244
4245         * test/glib/test-service-glib.c (main): put in a trivial gobject
4246         subclass and register it on the connection
4247
4248         * bus/driver.c (bus_driver_handle_introspect): implement
4249         introspection of the bus driver service
4250
4251         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4252         identifiers, doctype decl
4253
4254         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4255         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4256         returning the service unchanged.
4257         (bus_driver_handle_message): remove old check for reply_serial in
4258         method calls, now the message type deals with that
4259         (bus_driver_handle_message): handle NULL interface
4260
4261         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4262
4263         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4264         -1 for len
4265
4266         * tools/dbus-viewer.c: add support for introspecting a service on
4267         a bus
4268
4269         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4270         (dbus_g_pending_call_unref): add
4271
4272 2005-01-29  Havoc Pennington  <hp@redhat.com>
4273
4274         * tools/dbus-tree-view.c: add support for displaying properties.
4275         (run dbus-viewer with an introspect xml file as arg, then resize
4276         the window so the tree elements show up, not sure what that is)
4277
4278         * glib/dbus-gobject.c (handle_introspect): return
4279         org.freedesktop.Properties and org.freedesktop.Introspectable
4280         interfaces when we are introspected.
4281
4282         * doc/dbus-specification.xml: allow empty interface name when 
4283         Get/Set a property
4284
4285 2005-01-29  Havoc Pennington  <hp@redhat.com>
4286
4287         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4288         though it uses glib, it could be extended for any binding in
4289         principle
4290
4291         * glib/dbus-gobject.c (gobject_message_function): change to the
4292         new way properties work
4293
4294         * dbus/dbus-protocol.h: add the new interfaces
4295
4296         * doc/dbus-specification.xml: document the introspection format,
4297         Introspectable interface, and add an org.freedesktop.Properties
4298         interface.
4299
4300         * glib/dbus-gparser.c: add support for a <property> element
4301
4302         * glib/dbus-gidl.c: add PropertyInfo
4303
4304         * glib/dbus-gobject.c (handle_introspect): put the outermost
4305         <node> outside the signal and property descriptions.
4306         (introspect_properties): export properties as <property> rather
4307         than as method calls
4308
4309 2005-01-28  Havoc Pennington  <hp@redhat.com>
4310
4311         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4312         related to authentication protocol
4313
4314 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4315
4316         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4317                 - BUS_ACTIVATION -> BUS_STARTER
4318                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4319                 - class MessageIter (__init__): Added recursion checking 
4320                 so we throw a nice error instead of just disconnecting from the
4321                 bus.
4322                 (get): Added arg_type parameter for recursion.
4323                 Removed the nil type
4324                 Added signiture type placeholder (not implemented)
4325                 Added struct type placeholder (not implemented)
4326                 Added varient type placeholder (not implemented)
4327                 Commented out dict type for now     
4328                 (get_element_type): renamed from get_array_type
4329                 (get_*): changed to use the dbus_message_iter_get_basic API
4330                 (get_*_array): removed in favor of recursive get_array method
4331                 (get_array): new recursive method which calls get to marshal
4332                 the elements of the array
4333                 (value_to_dbus_sig): New method returns the corrasponding
4334                 dbus signiture to a python value
4335                 (append): Comment out dict handling for now
4336                 Handle lists with the new recursive API
4337                 Comment out None handling for now
4338                 (append_nil): removed
4339                 (append_*): changed to use dbus_message_iter_append_basic API
4340                 (append_*_array): removed in favor of recursive append_array 
4341                 method
4342                 (__str__): Make it easier to print out recursive iterators
4343                 for debugging
4344                 - class Message (__str__): moved type inspection to the
4345                 MessageIter class' __str__ method
4346                 (get_iter): Added an append parameter wich defaults to False
4347                 If True use the new API's to create an append iterator
4348
4349         * python/dbus.py: Update to use new bindings API
4350                 - TYPE_ACTIVATION -> TYPE_STARTER
4351                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4352                 - class ActivationBus -> class StarterBus
4353                 - class RemoteObject (__call__): get an append iterator
4354                 - (_dispatch_dbus_method_call): get an append iterator
4355                 - class Object (emit_signal): get an append iterator
4356
4357         * python/examples/: Fixed up the examples to work with the new API
4358                 
4359 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4360
4361         * configure.in: Bump version up to 0.30.
4362
4363         * HACKING: Add a release item to bump the version number up after 
4364         a release.
4365
4366 2005-01-28  Havoc Pennington  <hp@redhat.com>
4367
4368         * doc/dbus-specification.xml: update to describe 16-bit types and
4369         dict entries
4370
4371         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4372         assertion
4373
4374         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4375         type
4376
4377         * dbus/dbus-marshal-recursive.c: implement
4378
4379 2005-01-27  Havoc Pennington  <hp@redhat.com>
4380
4381         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4382
4383         * configure.in: find the right type for 16 and 32 bit ints as well
4384         as 64
4385
4386         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4387         the 16-bit types so people don't have to stuff them in 32-bit or
4388         byte arrays.
4389
4390 2005-01-27  Havoc Pennington  <hp@redhat.com>
4391
4392         * dbus/dbus-message.c: byteswap the message if you init an
4393         iterator to read/write from it
4394         
4395         * dbus/dbus-marshal-byteswap.c: new file implementing 
4396         _dbus_marshal_byteswap()
4397
4398         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4399
4400 2005-01-26  Havoc Pennington  <hp@redhat.com>
4401         
4402         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4403         build, apparently - nobody noticed?)
4404         
4405 2005-01-26  Havoc Pennington  <hp@redhat.com>
4406
4407         * dbus/dbus-marshal-recursive.h: remove todo comment
4408
4409 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4410
4411         * Land the mono binding changes to conform to the new APIs.
4412
4413         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4414         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4415
4416         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4417         type code as a string.
4418         (InitAppending): Rename dbus_message_append_iter_init() to
4419         dbus_message_iter_init_append().
4420
4421         * mono/BusDriver.cs: Rename ServiceEventHandler to
4422         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4423         Rename ServiceOwnerChanged to NameOwnerChanged.
4424
4425         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4426         underlying C call.
4427
4428         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4429
4430         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4431         dbus_bus_acquire_service() to dbus_bus_request_name().
4432
4433         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4434         of Type.UnderlyingSystemType to get the correct element type for
4435         the array.
4436         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4437         dbus_message_get_{element|arg}_type() instead of
4438         dbus_message_iter_init_array_iterator().
4439         (Append): Replace dbus_message_iter_append_array() with
4440         dbus_message_iter_open_container() and
4441         dbus_message_iter_close_container().
4442
4443         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4444         types have been removed.
4445         
4446         * mono/DBusType/*.cs: Replace calls of
4447         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4448         but specify the type in the DllImport extern declaration.  Ditto
4449         for dbus_message_iter_append_[type]() ->
4450         dbus_message_iter_append_basic().
4451
4452         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4453         NameOwnerChangedHandler.
4454
4455 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4456
4457         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4458                 - get_base_service -> get_unique_name
4459                 - bus_get_base_service -> bus_get_unique_name
4460                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4461                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4462                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4463                 - bus_activate_service -> bus_start_service_by_name
4464                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4465                 - bus_acquire_service -> bus_request_name
4466                 - dbus_bus_acquire_service -> dbus_bus_request_name
4467                 - bus_service_exists -> bus_name_has_owner
4468                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4469
4470         * python/dbus.py: Rename of methods
4471                 - activate_service -> start_service_by_name
4472                 - bus_acquire_service -> bus_request_name
4473                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4474                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4475
4476         
4477 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4478
4479         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4480         signature for the method that can't be found.
4481
4482         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4483         the message has any arguments, we need to call
4484         _dbus_type_reader_get_current_type(), not
4485         _dbus_type_reader_has_next().
4486
4487 2005-01-24  Havoc Pennington  <hp@redhat.com>
4488
4489         * dbus/dbus-message-factory.c: more testing of message validation
4490
4491         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4492         header
4493
4494 2005-01-23  Havoc Pennington  <hp@redhat.com>
4495
4496         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4497         get this all working, not many tests in the framework yet though
4498
4499 2005-01-22  Havoc Pennington  <hp@redhat.com>
4500
4501         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4502         tutorial, based on work from David Wheeler.
4503
4504 2005-01-21  Havoc Pennington  <hp@redhat.com>
4505
4506         * dbus/dbus-bus.c: add more return_if_fail checks
4507
4508         * dbus/dbus-message.c (load_message): have the "no validation"
4509         mode (have to edit the code to toggle the mode for now though)
4510
4511         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4512         skips all validation; I want to use this at least for benchmark
4513         baseline, I'm not sure if it should be a publicly-available switch.
4514
4515 2005-01-21  Havoc Pennington  <hp@redhat.com>
4516
4517         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4518         toplevel doxygen group as the low-level API stuff
4519
4520         * dbus/dbus.h: note that libdbus is the low-level API
4521
4522 2005-01-20  Havoc Pennington  <hp@redhat.com>
4523
4524         * update-dbus-docs.sh: script to update docs on the web site, only
4525         works for me though. neener.
4526
4527 2005-01-20  Havoc Pennington  <hp@redhat.com>
4528
4529         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4530         code can reveal bugs in it
4531
4532 2005-01-20  Havoc Pennington  <hp@redhat.com>
4533
4534         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4535         select() version, patches from Tor Lillqvist
4536
4537 2005-01-20  Havoc Pennington  <hp@redhat.com>
4538
4539         * doc/dbus-tutorial.xml: replace > with &gt;
4540
4541         * bus/services.c (bus_registry_acquire_service): validate the name
4542         and return a better error if it's no good.
4543
4544         * doc/dbus-specification.xml: note NO_AUTO_START change
4545
4546         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4547         from AUTO_START, we're toggling the default
4548
4549         * bus/dispatch.c: adapt the tests to change of auto-start default
4550
4551 2005-01-18  Havoc Pennington  <hp@redhat.com>
4552
4553         * rename dbus-daemon-1 to dbus-daemon throughout
4554
4555 2005-01-18  Havoc Pennington  <hp@redhat.com>
4556
4557         * Throughout, grand renaming to strip out the use of "service",
4558         just say "name" instead (or "bus name" when ambiguous).  Did not
4559         change the internal code of the message bus itself, only the
4560         programmer-facing API and messages.
4561         
4562         * doc/dbus-specification.xml: further update the message bus section
4563         
4564         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4565         in error case
4566
4567 2005-01-17  Havoc Pennington  <hp@redhat.com>
4568
4569         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4570         ever
4571
4572         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4573         "invalid name character" not only non-ASCII
4574
4575         * doc/dbus-specification.xml: further update spec, message bus 
4576         parts are still out-of-date but the marshaling etc. stuff is now
4577         accurate-ish
4578
4579 2005-01-17  Havoc Pennington  <hp@redhat.com>
4580
4581         * doc/dbus-specification.xml: partially update spec
4582
4583 2005-01-17  Havoc Pennington  <hp@redhat.com>
4584
4585         * Throughout, align variant bodies according to the contained
4586         type, rather than always to 8. Should save a fair bit of space in
4587         message headers.
4588         
4589         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4590         fix handling of case where p == end
4591
4592         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4593
4594 2005-01-17  Havoc Pennington  <hp@redhat.com>
4595
4596         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4597
4598         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4599         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4600         are marshaling/unmarshaling a boolean.
4601
4602 2005-01-16  Havoc Pennington  <hp@redhat.com>
4603
4604         This is about it on what can be disabled/deleted from libdbus
4605         easily, back below 150K anyhow. Deeper cuts are more work than 
4606         just turning the code off as I've done here.
4607         
4608         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4609         signed int convenience funcs
4610
4611         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4612         verbose mode
4613
4614         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4615         things out of libdbus
4616
4617         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4618         
4619         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4620         tests-enabled-only, though it should probably be deleted)
4621
4622         * dbus/dbus-message-util.c: same stuff
4623
4624         * dbus/dbus-auth-util.c: same stuff
4625
4626 2005-01-16  Havoc Pennington  <hp@redhat.com>
4627
4628         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4629
4630         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4631         way for stripping down dbus-userdb.c stuff included in libdbus.
4632         Rename _dbus_parse_uid for consistency.
4633
4634 2005-01-16  Havoc Pennington  <hp@redhat.com>
4635
4636         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4637         name the assertion failed in
4638
4639         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4640         (_dbus_return_val_if_fail): assert that the name of the function
4641         containing the check doesn't start with '_', since we only want to 
4642         use checks on public functions
4643         
4644         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4645         checks to assertions
4646
4647         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4648         change checks to asserts for private function
4649
4650         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4651         to asserts for private function
4652
4653         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4654         broken assertion that was breaking make check
4655         (_dbus_type_reader_array_is_empty): remove this rather than fix
4656         it, was only used in assertions
4657
4658 2005-01-16  Havoc Pennington  <hp@redhat.com>
4659
4660         * test/unused-code-gc.py: hacky script to find code that's used
4661         only by the bus (not libdbus) or used only by tests or not used at
4662         all. It has some false alarms, but looks like we can clean up a
4663         lot of size from libdbus.
4664
4665         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4666         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4667         
4668 2005-01-16  Havoc Pennington  <hp@redhat.com>
4669
4670         * Add and fix docs according to Doxygen warnings throughout
4671         source.
4672         
4673         * dbus/dbus-marshal-recursive.c
4674         (_dbus_type_reader_array_is_empty): change this to just call
4675         array_reader_get_array_len() and make it static
4676
4677         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4678         from get_array_type
4679         (dbus_message_iter_init_append): rename from append_iter_init
4680
4681         * dbus/dbus-marshal-recursive.c
4682         (_dbus_type_reader_get_element_type): rename from
4683         _dbus_type_reader_get_array_type
4684
4685 2005-01-15  Havoc Pennington  <hp@redhat.com>
4686
4687         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4688
4689         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4690         when DBUS_DISABLE_ASSERT
4691         (_dbus_marshal_set_basic): be sure we align for the string length
4692
4693         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4694         this look faster
4695
4696         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4697         inline macro version
4698         (_dbus_string_set_byte): provide inline macro version
4699
4700 2005-01-15  Havoc Pennington  <hp@redhat.com>
4701
4702         * Land the new message args API and type system.
4703
4704         This patch is huge, but the public API change is not 
4705         really large. The set of D-BUS types has changed somewhat, 
4706         and the arg "getters" are more geared toward language bindings;
4707         they don't make a copy, etc.
4708
4709         There are also some known issues. See these emails for details
4710         on this huge patch:
4711         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4712         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4713         
4714         * dbus/dbus-marshal-*: all the new stuff
4715
4716         * dbus/dbus-message.c: basically rewritten
4717
4718         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4719         freed blocks to be all non-nul bytes so using freed memory is less
4720         likely to work right
4721
4722         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4723         DBUS_FAIL_MALLOC=N environment variable, so you can do
4724         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4725         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4726         thorough.
4727
4728         * qt/message.cpp: port to the new message args API
4729         (operator<<): use str.utf8() rather than str.unicode()
4730         (pretty sure this is right from the Qt docs?)
4731
4732         * glib/dbus-gvalue.c: port to the new message args API
4733
4734         * bus/dispatch.c, bus/driver.c: port to the new message args API
4735
4736         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4737         "locked" flag to TRUE and align_offset to 0; I guess we never
4738         looked at these anyhow, but seems cleaner.
4739
4740         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4741         move allocation padding macro to this header; use it to implement
4742         (_DBUS_STRING_STATIC): ability to declare a static string.
4743
4744         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4745         change to return TRUE if the interface is not set.
4746
4747         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4748         to dbus-marshal-validate.[hc]
4749
4750         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4751         dbus-internals.c
4752
4753         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4754         to dbus-marshal-*.[hc]
4755
4756         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4757         function here from dbus-marshal.c
4758
4759 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4760
4761         * NEWS: Update for 0.23.
4762
4763         * configure.in: Release 0.23.
4764
4765 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4766
4767         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
4768         dbus DLL with --debug.  Clean up after the .mdb files this leaves
4769         behind.
4770
4771         * mono/doc/Makefile.am: Need to uninstall the docs on "make
4772         uninstall"
4773
4774         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4775         is an enum, get the enum's underlying type.  Another mono
4776         1.1.3 fix.
4777
4778 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4779
4780         Patch from Sjoerd Simons <sjoerd@luon.net>
4781
4782         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4783         DESTDIR.  It breaks stuff.
4784
4785 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4786
4787         Patch from Tambet Ingo <tambet@ximian.com>
4788
4789         * mono/DBusType/Array.cs (Get): Get the underlying element type by
4790         calling type.GetElementType().  The code previously depended on
4791         broken Mono behavior, which was fixed in Mono 1.1.3.
4792
4793         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4794         Activator.CreateInstance() so that the class's constructor is
4795         called with the right parameters.
4796
4797 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4798
4799         Patch from Timo Teräs <ext-timo.teras@nokia.com>
4800
4801         * dbus/dbus-connection.c
4802         (_dbus_connection_queue_received_message_link): Call
4803         _dbus_connection_remove_timeout() instead of the _locked()
4804         variant, since it's always called from
4805         _dbus_connection_handle_watch(), which handles the locking.
4806         Removed the _locked() variant since it's no longer used.
4807
4808 2005-01-03  Havoc Pennington  <hp@redhat.com>
4809
4810         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4811         return
4812         
4813 2004-12-26  Havoc Pennington  <hp@redhat.com>
4814
4815         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4816
4817 2005-01-03  Havoc Pennington  <hp@redhat.com>
4818
4819         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4820         floating point
4821
4822         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4823
4824 2005-01-02  Havoc Pennington  <hp@redhat.com>
4825
4826         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4827
4828 2005-01-01  Havoc Pennington  <hp@redhat.com>
4829
4830         * configure.in: add -Wfloat-equal
4831
4832 2005-01-01  Havoc Pennington  <hp@redhat.com>
4833
4834         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
4835         for a variety of reasons '==' doesn't do this.
4836
4837 2004-12-31  Havoc Pennington  <hp@redhat.com>
4838
4839         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4840         I keep wishing I had
4841
4842 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4843
4844         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4845
4846 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4847
4848         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4849         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4850         dbus-protocol.h.  Because they are defines and not enums they are not
4851         autogenerated.
4852
4853 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
4854
4855         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4856         dbus_bus_activate_service
4857
4858         * python/dbus.py (Bus.activate_service): activate a service on the
4859         bus.
4860
4861 2004-12-24  Havoc Pennington  <hp@redhat.com>
4862
4863         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4864         file format has also changed and I haven't adapted to that yet
4865         
4866         * Makefile.am: load .gcno files from latest gcc
4867
4868 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
4869         * Patch from Rob Taylor <robtaylor@fastmail.fm>
4870
4871         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4872         lowlevel binding
4873
4874         * python/dbus.py (get_unix_user): Added binding to 
4875         call dbus_bindings.bus_get_unix_user
4876
4877         * python/extract.py: Modified the proto_pat regex to
4878         handle unsigned long
4879
4880 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4881
4882         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4883         better POSIX compliance.
4884
4885 2004-12-19  Havoc Pennington  <hp@redhat.com>
4886
4887         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
4888         (_dbus_string_insert_8_aligned): new functions
4889
4890         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4891
4892 2004-12-18  Havoc Pennington  <hp@redhat.com>
4893
4894         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4895         macro
4896
4897         * dbus/dbus-message.c: fix a comment, and add a still-unused
4898         not-implemented function
4899
4900         * dbus/dbus-marshal.h: fix comment
4901
4902         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4903
4904 2004-12-17  Joe Shaw  <joeshaw@novell.com>
4905
4906         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4907         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4908         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4909         Type.UnderlyingSystemType to get the actual system type
4910         underneath.  This code previously depended on the broken Mono
4911         behavior, which was fixed in 1.1.3.
4912
4913 2004-11-27  Havoc Pennington  <hp@redhat.com>
4914
4915         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4916         are disabled
4917         (_dbus_string_get_const_data): inline when asserts are disabled
4918
4919         * dbus/dbus-message.c: record the _dbus_current_generation of
4920         creation so we can complain if dbus_shutdown() is used improperly.
4921         Do this only if checks are enabled.
4922
4923         * dbus/dbus-connection.c: ditto
4924         
4925 2004-11-26  Havoc Pennington  <hp@redhat.com>
4926
4927         * test/glib/test-profile.c: add with_bus mode to profile echoes
4928         that go through the bus.
4929
4930         * test/glib/run-test.sh: add ability to run test-profile
4931
4932         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4933         config file reload.
4934
4935 2004-11-26  Havoc Pennington  <hp@redhat.com>
4936
4937         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4938         thing was implemented
4939
4940 2004-11-26  Havoc Pennington  <hp@redhat.com>
4941
4942         * test/glib/test-profile.c: tweak a bit, add support for some
4943         made-up minimal malloc overhead with plain sockets, since in 
4944         real life some sort of buffers are unavoidable thus we could 
4945         count them in the theoretical best case
4946
4947 2004-11-26  Havoc Pennington  <hp@redhat.com>
4948
4949         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
4950         where I was trying to cache one too many messages
4951
4952 2004-11-26  Havoc Pennington  <hp@redhat.com>
4953
4954         * dbus/dbus-message.c: reimplement message cache as an array which 
4955         makes the cache about twice as fast and saves maybe 1.5% overall
4956
4957 2004-11-26  Havoc Pennington  <hp@redhat.com>
4958
4959         * dbus/dbus-threads.c (init_global_locks): forgot to put the
4960         message cache lock here
4961
4962 2004-11-26  Havoc Pennington  <hp@redhat.com>
4963
4964         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
4965         the "char byte_order" next to each other to save 4 bytes
4966         (dbus_message_new_empty_header): reduce preallocation, since the
4967         message cache should achieve a similar effect
4968         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
4969         message cache that keeps a few DBusMessage around in a pool,
4970         another 8% speedup or so.
4971
4972         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
4973
4974 2004-11-25  Havoc Pennington  <hp@redhat.com>
4975
4976         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
4977         to write, without reading or blocking, try it before the poll()
4978         and skip the poll() if nothing remains to write. This is about a
4979         3% speedup in the echo client/server
4980
4981 2004-11-25  Havoc Pennington  <hp@redhat.com>
4982
4983         The primary change here is to always write() once before adding
4984         the write watch, which gives us about a 10% performance increase.
4985         
4986         * dbus/dbus-transport-unix.c: a number of modifications to cope
4987         with removing messages_pending
4988         (check_write_watch): properly handle
4989         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
4990         messages_pending stuff
4991         (check_read_watch): properly handle WAITING_FOR_MEMORY and
4992         AUTHENTICATED cases
4993         (unix_handle_watch): after writing, see if the write watch can be
4994         removed
4995         (unix_do_iteration): assert that write_watch/read_watch are
4996         non-NULL rather than testing that they aren't, since they 
4997         aren't allowed to be NULL. check_write_watch() at the end so 
4998         we add the watch if we did not finish writing (e.g. got EAGAIN)
4999
5000         * dbus/dbus-transport-protected.h: remove messages_pending call,
5001         since it resulted in too much inefficient watch adding/removing; 
5002         instead we now require that the transport user does an iteration 
5003         after queueing outgoing messages, and after trying the first
5004         write() we add a write watch if we got EAGAIN or exceeded our 
5005         max bytes to write per iteration setting
5006
5007         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5008         function
5009
5010         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5011         freed and then accessed, valgrind flagged this bug, fix it
5012
5013         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5014         as the last valid field plus 1, where really it is equal to the
5015         last valid field. Corrects some message corruption issues.
5016
5017         * dbus/dbus-mainloop.c: verbosity changes
5018
5019         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5020         instead of aborting in one of the test codepaths
5021
5022         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5023         caused not printing the pid ever again if a verbose was missing
5024         the newline at the end
5025         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5026
5027         * dbus/dbus-connection.c: verbosity changes; 
5028         (dbus_connection_has_messages_to_send): new function
5029         (_dbus_connection_message_sent): no longer call transport->messages_pending
5030         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5031         try to write() immediately, so we can avoid the write watch. This
5032         is the core purpose of this patchset
5033         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5034         dump the outgoing message queue, so nobody will get confused
5035         trying to send them or thinking stuff is pending to be sent
5036
5037         * bus/test.c: verbosity changes
5038
5039         * bus/driver.c: verbosity/assertion changes
5040
5041         * bus/dispatch.c: a bunch of little tweaks to get it working again
5042         because this patchset changes when/where you need to block.
5043
5044 2004-11-23  Havoc Pennington  <hp@redhat.com>
5045
5046         * test/glib/test-profile.c: modify to accept a plain_sockets
5047         argument in which case it will bench plain sockets instead of
5048         libdbus, for comparison purposes.
5049
5050 2004-11-22  Havoc Pennington  <hp@redhat.com>
5051
5052         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5053         threads for more time, so sysprof can get a grip on it.
5054
5055         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5056         pointless variable
5057
5058 2004-11-13  Havoc Pennington  <hp@redhat.com>
5059
5060         * test/glib/test-profile.c: fix this thing up a bit
5061
5062         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5063         preallocation sizes by a fair bit; not sure if this will be an
5064         overall performance win or not, but it does reduce reallocs.
5065
5066         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5067         the test hack that forced constant realloc if asserts are
5068         disabled, so we can profile sanely. Sprinkle in some
5069         _DBUS_UNLIKELY() which are probably pointless, but before I
5070         noticed the real performance problem I put them in.
5071         (_dbus_string_validate_utf8): micro-optimize this thing a little
5072         bit, though callgrind says it didn't help; then special-case
5073         ascii, which did help a lot; then be sure we detect nul bytes as
5074         invalid, which is a bugfix.
5075         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5076         superstition; use memset to nul the padding instead of a manual
5077         loop.
5078         (_dbus_string_get_length): inline this as a
5079         macro; it showed up in the profile because it's used for loop
5080         tests and so forth
5081
5082 2004-11-10  Colin Walters  <walters@verbum.org>
5083
5084         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5085         for extra paranoia.
5086
5087 2004-11-09  Colin Walters  <walters@verbum.org>
5088
5089         * dbus/dbus-string.c (_dbus_string_get_length): New
5090         function, writes DBusString to C buffer.
5091
5092         * dbus/dbus-string.h: Prototype it.
5093
5094         * dbus/dbus-message.c (dbus_message_type_to_string): New
5095         function, converts message type into C string.
5096
5097         * dbus/dbus-message.h: Prototype it.
5098
5099         * bus/selinux.c (bus_selinux_check): Take source pid,
5100         target pid, and audit data.  Pass audit data to
5101         avc_has_perm.
5102         (log_audit_callback): New function, appends extra
5103         audit information.
5104         (bus_selinux_allows_acquire_service): Also take
5105         service name, add it to audit data.
5106         (bus_selinux_allows_send): Also take message
5107         type, interface, method member, error name,
5108         and destination, and add them to audit data.
5109         (log_cb): Initialize func_audit.
5110         
5111         * bus/selinux.h (bus_selinux_allows_acquire_service)
5112         (bus_selinux_allows_send): Update prototypes 
5113
5114         * bus/services.c (bus_registry_acquire_service): Pass
5115         service name to bus_selinux_allows_acquire_service.
5116
5117         * bus/bus.c (bus_context_check_security_policy): Pass
5118         additional audit data.  Move assignment of dest
5119         to its own line.
5120
5121 2004-11-07  Colin Walters  <walters@verbum.org>
5122
5123         * dbus/dbus-transport-unix.c (do_authentication): Always
5124         initialize auth_completed.
5125         
5126 2004-11-07  Colin Walters  <walters@verbum.org>
5127
5128         * bus/bus.c (load_config): Break into three
5129         separate functions: process_config_first_time_only,
5130         process_config_every_time, and process_config_postinit.
5131         (process_config_every_time): Move call of
5132         bus_registry_set_service_context_table into
5133         process_config_postinit.
5134         (process_config_postinit): New function, does
5135         any processing that needs to happen late
5136         in initialization (and also on reload).
5137         (bus_context_new): Instead of calling load_config,
5138         open config parser here and call process_config_first_time_only
5139         and process_config_every_time directly.  Later, after
5140         we have forked but before changing UID,
5141         invoke bus_selinux_full_init, and then call
5142         process_config_postinit.
5143         (bus_context_reload_config): As in bus_context_new,
5144         load parse file inside here, and call process_config_every_time
5145         and process_config_postinit.
5146
5147         * bus/services.h, bus/services.c
5148         (bus_registry_set_service_context_table): Rename
5149         from bus_registry_set_sid_table.  Take string hash from config
5150         parser, and convert them here into SIDs.
5151
5152         * bus/config-parser.c (struct BusConfigParser): Have
5153         config parser only store a mapping of service->context
5154         string.
5155         (merge_service_context_hash): New function.
5156         (merge_included): Merge context string hashes instead
5157         of using bus_selinux_id_table_union.
5158         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5159         simply create a new string hash.
5160         (bus_config_parser_unref): Unref it.
5161         (start_selinux_child): Simply insert strings into hash,
5162         don't call bus_selinux_id_table_copy_over.
5163
5164         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5165         (bus_selinux_id_table_copy_over): Delete.
5166
5167 2004-11-03  Colin Walters  <walters@verbum.org>
5168
5169         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5170         variables.
5171         
5172 2004-11-03  Colin Walters  <walters@verbum.org>
5173
5174         * bus/test-main.c (test_pre_hook): Fix test logic,
5175         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5176
5177 2004-11-02  Colin Walters  <walters@redhat.com>
5178
5179         * bus/selinux.c (bus_selinux_init): Split into two functions,
5180         bus_selinux_pre_init and bus_selinux_post_init.
5181         (bus_selinux_pre_init): Just determine whether SELinux is
5182         enabled.
5183         (bus_selinux_post_init): Do everything else.
5184
5185         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5186         config file, and bus_selinux_post_init after.  This ensures that
5187         we don't lose the policyreload notification thread that
5188         bus_selinux_init created before forking previously.
5189         
5190         * bus/test-main.c (test_pre_hook): Update for split.
5191
5192 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5193
5194         Patch from Johan Fischer <linux@fischaz.com>
5195         
5196         * mono/doc/Makefile.am (install-data-local): Added directory
5197         install for DESTDIR
5198
5199 2004-10-29  Colin Walters  <walters@redhat.com>
5200
5201         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5202         parameter for fd to write pid to.       
5203
5204         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5205         
5206         * bus/bus.c (bus_context_new): Pass print_pid_fd
5207         to _dbus_become_daemon (bug #1720)
5208
5209 2004-10-29  Colin Walters  <walters@redhat.com>
5210
5211         Patch from Ed Catmur <ed@catmur.co.uk>
5212
5213         * mono/doc/Makefile.am (install-data-local): Handle
5214         DESTDIR.
5215
5216 2004-10-29  Colin Walters  <walters@redhat.com>
5217
5218         * bus/.cvsignore, qt/.cvsignore: Update.
5219
5220 2004-10-29  Colin Walters  <walters@redhat.com>
5221
5222         Patch from Kristof Vansant <de_lupus@pandora.be>
5223
5224         * configure.in: Detect Slackware.
5225         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5226         * bus/rc.messagebus.in: New file.
5227
5228 2004-10-29  Colin Walters  <walters@redhat.com>
5229
5230         * tools/dbus-monitor.c (filter_func): Return
5231         DBUS_HANDLER_RESULT_HANDLED in filter function
5232         for now.  See:
5233         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5234
5235 2004-10-29  Colin Walters  <walters@redhat.com>
5236
5237         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5238
5239         * bus/services.c (bus_registry_acquire_service): 
5240         Correctly retrieve service name from DBusString
5241         for printing.
5242
5243 2004-10-29  Colin Walters  <walters@redhat.com>
5244
5245         * dbus/dbus-glib.h: Update documentation to not
5246         refer to internal APIs.
5247
5248 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5249
5250         * mono/Arguments.cs (GetDBusTypeConstructor):
5251         type.UnderlyingSystemType will return "System.Byte" if you do it
5252         on "byte[]", which is not what we want.  So check the type.IsArray
5253         property and use System.Array instead.
5254
5255 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5256
5257         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5258         the DBusUserInfo structure since this is passed into the function.
5259         This would cause a double free when the function that allocated
5260         the structure would try to free it when an error occured.
5261
5262         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5263         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5264         for service activation to avoid 32bit/64bit parallel install issues
5265
5266 2004-10-21  Colin Walters  <walters@verbum.org>
5267
5268         * AUTHORS: Fix my email address, the @gnu.org one
5269         has been bouncing for some time.  Also add J5.
5270         
5271 2004-10-21  Colin Walters  <walters@verbum.org>
5272
5273         * dbus/dbus-transport-unix.c (do_authentication): Return
5274         authentication status to callers.
5275         (unix_handle_watch): If we completed authentication this round,
5276         don't do another read.  Instead wait until the next iteration,
5277         after we've read any pending data in the auth buffer.
5278         (unix_do_iteration): Ditto.
5279         (unix_handle_watch): Updated for new do_authentication prototype.
5280
5281 2004-10-18  Colin Walters  <walters@verbum.org>
5282
5283         * bus/selinux.c (bus_selinux_enabled): Handle
5284         --disable-selinux case.
5285         
5286 2004-10-18  Colin Walters  <walters@verbum.org>
5287
5288         * bus/selinux.h: Add bus_selinux_enabled.
5289         
5290         * bus/selinux.c (bus_selinux_enabled): Implement it.
5291         
5292         * bus/config-parser.c (struct include): Add
5293         if_selinux_enabled member.
5294         (start_busconfig_child): Parse if_selinux_enabled
5295         attribute for include.
5296         (bus_config_parser_content): Handle it.
5297
5298         * bus/session.conf.in, bus/system.conf.in: Add
5299         inclusion of context mapping to default config files;
5300         conditional on SELinux being enabled.
5301         
5302         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5303         
5304         * test/data/invalid-config-files/badselinux-1.conf, 
5305         test/data/invalid-config-files/badselinux-2.conf:
5306         Test files for bad syntax.
5307         
5308 2004-10-17  Colin Walters  <walters@verbum.org>
5309
5310         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5311         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5312         format specifier mismatches.
5313
5314 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5315
5316         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5317         format string.
5318
5319         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5320         pointer (bug #1540, Leonardo Boiko).
5321
5322 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5323
5324         * mono/BusDriver.cs: Changed BusDriver struct to remove
5325         the ServiceCreated and ServiceDeleted events and replace them
5326         with the new ServiceOwnerChanged event.
5327
5328         * mono/example/BusListener.cs: Added a new example program,
5329         which listens for and reports any ServiceOwnerChanged events
5330         on the bus driver.
5331
5332         * mono/example/Makefile.am (DESTDIR): Build changes for the
5333         new BusListener.cs example.
5334
5335 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5336
5337         * bus/signals.c (bus_match_rule_parse): validate the components of
5338         match rules (bug #1439).
5339
5340         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5341
5342 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5343
5344         * doc/dbus-specification.xml: document ServiceOwnerChanged
5345         signal.
5346         
5347         * bus/driver.c, bus/driver.h, bus/services.c: Use
5348         ServiceOwnerChanged signal instead of ServiceCreated and
5349         ServiceDeleted.
5350         
5351         * bus/dispatch.c: update testcase for the new signal.
5352
5353 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5354
5355         Patch from Nat Friedman <nat@novell.com>
5356
5357         * mono/Makefile.am: A number of small build fixes to allow "make
5358         distcheck" to succeed.
5359
5360         * mono/example/Makefile.am: "make distcheck" fixes.
5361
5362         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5363         key in @srcdir@.
5364
5365         * test/Makefile.am: "make distcheck" fixes.
5366
5367 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5368
5369         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5370
5371         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5372
5373         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5374         messages after the first one (bug #1389).
5375         
5376         * bus/dispatch.c (check_double_hello_message): add a test case for
5377         the double hello message bug.
5378         (check_existent_service_activation): fix check of spawning error.
5379         
5380 2004-09-16  David Zeuthen  <david@fubar.dk>
5381
5382         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5383
5384 2004-09-12  David Zeuthen  <david@fubar.dk>
5385
5386         Patch from Kay Sievers <kay.sievers@vrfy.org>
5387
5388         * bus/bus.c (bus_context_new):
5389         * bus/bus.h:
5390         * bus/main.c (usage)
5391         (main):
5392         Add commandline option --nofork to override configuration file
5393         setting.
5394
5395 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5396
5397         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5398         compilers don't like it (bug #974).
5399
5400 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5401
5402         * qt/connection.*: Applied patch by Jérôme Lodewyck
5403         <lodewyck@clipper.ens.fr> to integrate an existing
5404         connection into the Qt eventloop
5405
5406 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5407
5408         * mono/BusDriver.cs: Added.  This is a class for interacting with
5409         the org.freedesktop.DBus service.
5410
5411         * mono/Message.cs: Added a mechanism to expose the message that is
5412         currently being dispatched via the static Message.Current
5413         property.  Added Message.Sender and Message.Destination
5414         properties.
5415
5416         * mono/Handler.cs: Expose the dispatched message via
5417         Message.Current when handling method calls.
5418
5419         * mono/Service.cs: Expose the dispatched message via
5420         Message.Current when handling signal emissions.
5421         
5422         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5423         Connection.BaseService property.
5424
5425 2004-08-28  Havoc Pennington  <hp@redhat.com>
5426
5427         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5428
5429         More fixes from Steve Grubb
5430         
5431         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5432         (_dbus_listen_tcp_socket): fix fd leak
5433
5434         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5435         EINTR to a bit lower in the code
5436
5437 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5438
5439         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5440         TRUE if we are inquiring about the existence of the built-in
5441         org.freedesktop.DBus service.
5442
5443 2004-08-25  John Palmieri  <johnp@redhat.com>
5444         * bus/config-parser.c:
5445         (struct PolicyType): Add POLICY_CONSOLE
5446         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5447         (start_busconfig_child): Sets up console element when
5448         <policy at_console=""> is encountered in a policy file
5449         (append_rule_from_element): Convert console elements to console
5450         rules.
5451
5452         * bus/policy.c: 
5453         (bus_policy_create_client_policy): Add console rules to the client
5454         policy based on if the client is at the console
5455         (bus_policy_append_console_rule): New function for adding a
5456         console rule to a policy
5457         (bus_policy_merge): Handle console rule merging
5458
5459         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5460         where we check for console user files
5461         
5462         * dbus/dbus-sysdeps.c:
5463         (_dbus_file_exists): New function which checks if the given
5464         file exists
5465         (_dbus_user_at_console): New function which does the system
5466         specific process of checking if the user is at the console
5467
5468         * dbus/dbus-userdb.c:
5469         (_dbus_is_console_user): New function converts a UID to user name
5470         and then calls the system specific _dbus_user_at_console to 
5471         see if the user is at the console and therefor a console user
5472
5473 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5474
5475         * bus/config-parser.c (set_limit):
5476         * bus/dbus-daemon-1.1.in:
5477         * test/data/valid-config-files/many-rules.conf: set the
5478         max_match_rules_per_connection limt from the config file. 
5479
5480         * doc/busconfig.dtd: update the DTD.
5481
5482         * bus/driver.c: remove some unused variables.
5483
5484 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5485
5486         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5487         it's been replaced by dbus_g_bus_get
5488
5489 2004-08-23  Colin Walters  <walters@redhat.com>
5490
5491         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5492
5493         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5494
5495         * bus/selinux.c: Create a thread for policy reload notification.
5496         (bus_selinux_get_policy_root): Implement.
5497
5498         * bus/config-parser.c (start_busconfig_child)
5499         (bus_config_parser_content): Support SELinux-root relative
5500         inclusion.
5501
5502         * configure.in <HAVE_SELINUX>: Add -lpthread.
5503         
5504         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5505         (test_post_hook): Move memory checking into here.
5506         (test_pre_hook, test_post_hook): Move SELinux checks in
5507         here, but conditional on a DBUS_TEST_SELINUX environment
5508         variable.  Unfortunately we can't run the SELinux checks
5509         as a normal user, since they won't have any permissions
5510         for /selinux.  So this will have to be tested manually
5511         for now, until we have virtualization for most of
5512         libselinux.
5513         
5514 2004-08-23  Havoc Pennington  <hp@redhat.com>
5515
5516         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5517         drop supplementary groups, suggested by Steve Grubb
5518
5519 2004-08-20  Colin Walters  <walters@redhat.com>
5520
5521         * bus/config-parser.c (start_busconfig_child): Remove some unused
5522         variables.
5523         
5524         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5525         warning.
5526
5527 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5528
5529         * configure.in: If --enable-mono is passed in, if we can't find
5530         mono error out.
5531
5532         * mono/Makefile.am: Use /gacutil to install assemblies into the
5533         GAC and not /root.
5534
5535 2004-08-12  Havoc Pennington  <hp@redhat.com>
5536
5537         * NEWS: update for 0.22
5538
5539         * configure.in: release 0.22
5540
5541 2004-08-11  Colin Walters  <walters@redhat.com>
5542
5543         * tools/dbus-send.c (main, usage): Add --reply-timeout
5544         argument.
5545
5546 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5547
5548         * bus/bus.c (process_config_first_time_only): get rid of an unused
5549         DBusError that was causing a memoy leak (bug #989).
5550
5551         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5552         fix compilation on Solaris/Forte C (bug #974)
5553
5554         * bus/main.c (main): plug two minuscule memleaks.
5555
5556 2004-08-10  Havoc Pennington  <hp@redhat.com>
5557
5558         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5559
5560 2004-08-09  Havoc Pennington  <hp@redhat.com>
5561
5562         * COPYING: switch to Academic Free License version 2.1 instead of
5563         2.0, to resolve complaints about patent termination clause.
5564
5565 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5566
5567         * README: added documentation for the --enable-python 
5568         configure switch.
5569
5570 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5571
5572         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5573         _unref in the SELinux support.
5574
5575         * doc/busconfig.dtd: update DTD for SELinux support.
5576
5577         * bus/config-loader-libxml.c: fix error handler and parser
5578         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5579
5580         * configure.in: remove the warning about libxml2.
5581
5582         * dbus/dbus-bus.c: silence doxygen warning.
5583
5584 2004-07-31  Colin Walters  <walters@redhat.com>
5585
5586         * configure.in: Move #error in SELinux check to its own line.
5587
5588 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5589
5590         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5591         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5592         dbus_error_set.
5593
5594         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5595         broken by the change in the _SET_OOM macros.
5596
5597 2004-07-31  Colin Walters  <walters@redhat.com>
5598
5599         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5600         BUS_SET_OOM.
5601
5602 2004-07-31  Colin Walters  <walters@redhat.com>
5603
5604         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5605         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5606         AC_MSG_CHECKING.
5607
5608 2004-07-24  Havoc Pennington  <hp@redhat.com>
5609
5610         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5611
5612         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5613         functionality
5614
5615         * configure.in: add --enable-selinux
5616         
5617         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5618
5619         * bus/main.c (main): initialize and shut down selinux
5620
5621         * bus/connection.c: store SELinux ID on each connection, to avoid 
5622         repeated getting of the string context and converting it into 
5623         an ID
5624
5625         * bus/bus.c (bus_context_get_policy): new accessor, though it
5626         isn't used
5627         (bus_context_check_security_policy): check whether the security
5628         context of sender connection can send to the security context of
5629         recipient connection
5630
5631         * bus/config-parser.c: add parsing for <selinux> and <associate>
5632         
5633         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5634         implement dbus_connection_get_unix_fd()
5635
5636         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5637         function, used by the selinux stuff
5638         
5639 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5640
5641         * bus/config-loader-libxml.c: complete the implementation of
5642         libxml backend for config file loader. Doesn't work with full OOM
5643         test yet. 
5644         
5645         * configure.in: change error when selecting libxml into a warning.
5646         
5647         * test/data/invalid-config-files: add two non-well-formed XML
5648         files. 
5649         
5650         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5651         
5652         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5653         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5654         be necessary to read all the buffer. (bug #894)
5655
5656         * bus/activation.c (bus_activation_activate_service): fix a
5657         potential assertion failure (bug #896). Small optimization in the
5658         case of auto-activation messages.
5659
5660         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5661         add test case for byte-through-vararg bug (#901). patch by Kimmo
5662         Hämäläinen. 
5663
5664 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5665
5666         * python/dbus.py:
5667         * python/dbus_bindings.pyx.in:
5668         Add dbus.init_gthreads (), allow emit_signal to pass
5669         arguments to the signal.
5670         
5671 2004-07-24  Havoc Pennington  <hp@redhat.com>
5672
5673         * AUTHORS: add some people, not really comprehensively, let me
5674         know if I missed you
5675
5676 2004-07-24  Havoc Pennington  <hp@redhat.com>
5677
5678         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5679         Owen
5680
5681         * test/Makefile.am (DIST_SUBDIRS): here also
5682
5683 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5684
5685         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5686         breaking build on Solaris, reported by Farhad Saberi on the ML.
5687
5688         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5689         va_arg invocation to account for integer promotion in the case of
5690         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5691
5692         * bus/services.c (bus_service_remove_owner): fix bug #902, use
5693         _dbus_list_get_first_link, not _dbus_list_get_first.
5694
5695         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5696
5697         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5698         handler functions so that the asserts in _dbus_object_subtree_unref
5699         do not fail.
5700
5701         * dbus/dbus-transport-unix.c (do_reading):
5702         _dbus_transport_queue_messages return value is of type
5703         dbus_bool_t, not DBusDispatchStatus.
5704         
5705 2004-07-19  David Zeuthen  <david@fubar.dk>
5706
5707         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5708
5709         * bus/dispatch.c:
5710         (check_get_connection_unix_user): Debug says GetProperty; but the
5711         method is called GetConnectionUnixUser
5712         (check_get_connection_unix_process_id): New function
5713         (bus_dispatch_test): Actually call check_get_connection_unix_user();
5714         also call check_get_connection_unix_process_id()
5715         
5716         * bus/driver.c:
5717         (bus_driver_handle_get_connection_unix_process_id): New function,
5718         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5719         interface
5720         
5721         * dbus/dbus-auth.c:
5722         (handle_server_data_external_mech): Set pid from the credentials
5723         obtained from the socket
5724         
5725         * dbus/dbus-connection.c:
5726         (dbus_connection_get_unix_process_id): New function
5727         
5728         * dbus/dbus-connection.h: 
5729         Add prototype for dbus_connection_get_unix_process_id
5730         
5731         * dbus/dbus-transport.c:
5732         (_dbus_transport_get_unix_process_id): New function
5733         
5734         * dbus/dbus-transport.h:
5735         Add prototype for _dbus_transport_get_unix_process_id
5736         
5737 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5738
5739         * dbus/dbus-message.c: Message counter fix, patch by Christian
5740         Hammond <chipx86@gnupdate.org>
5741
5742 2004-07-18  Seth Nickell  <seth@gnome.org>
5743
5744         * python/dbus.py:
5745         * python/dbus_bindings.pyx.in:
5746         * python/tests/test-client.py:
5747
5748         Add dbus.ByteArray and dbus_bindings.ByteArray
5749         types so that byte streams can be passed back.
5750
5751         Give jdahlin the heaps of credit that are so
5752         rightfully his.
5753         
5754 2004-07-12  Seth Nickell  <seth@gnome.org>
5755
5756         * python/dbus.py:
5757
5758         Add message argument to the default object_method_handler
5759         function.
5760         
5761         * python/dbus_bindings.pyx.in:
5762
5763         Automatically return NIL when passed an empty list
5764         (we can't pass back a list since lists are typed
5765         and we don't have any idea what type the the client
5766         intended the list to be... :-( )
5767         
5768 2004-07-10  Seth Nickell  <seth@gnome.org>
5769
5770         * python/examples/Makefile.am:
5771
5772         Fix distcheck breakage caused by new examples.
5773
5774 2004-07-10  Seth Nickell  <seth@gnome.org>
5775
5776         * python/dbus.py:
5777
5778         Add "message" argument to service-side dbus.Object
5779         methods. This will break existing services written
5780         using the python bindings, but will allow extraction
5781         of all the message information (e.g. who its from).
5782
5783         Add improved "object oriented" signal handling/emission.
5784         
5785         * python/examples/example-service.py:
5786
5787         Nix this example.
5788         
5789         * python/examples/example-signal-emitter.py:
5790         * python/examples/example-signal-recipient.py:
5791
5792         Two new examples that show how to emit and receive
5793         signals using the new APIs.
5794         
5795         * python/examples/example-signals.py:
5796         * python/examples/gconf-proxy-service.py:
5797         * python/examples/gconf-proxy-service2.py:
5798
5799         Add "message" argument to service methods.
5800
5801 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
5802
5803         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5804         * dbus/bus.c (dbus_bus_get_unix_user)
5805         * doc/dbus-specification.xml: implement GetConnectionUnixUser
5806         method of org.freedesktop.DBus interface.
5807
5808         * bus/dispatch.c: test case
5809
5810 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
5811
5812         * python/Makefile.am: switched include directory from glib/ to dbus/
5813         since dbus-glib.h moved
5814  
5815 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5816
5817         * configure.in: prevent building the gcj stuff and libxml loader
5818         since they are broken.
5819
5820 2004-06-20  Havoc Pennington  <hp@redhat.com>
5821
5822         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
5823         codes from the dbus error names
5824         
5825         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
5826         as dbus/dbus-glib.h and that breakage is now visible due to 
5827         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5828         
5829         * glib/dbus-glib.h: s/gproxy/g_proxy/
5830
5831         * dbus/dbus-shared.h: new header to hold stuff shared with
5832         binding APIs
5833         
5834         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5835         than dbus-errors.h
5836
5837         * glib/dbus-glib.h (dbus_set_g_error): move to
5838         dbus-glib-lowlevel.h
5839
5840         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5841         of stuff to enable this
5842
5843         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5844
5845         * a bunch of other changes with the same basic "separate glib 
5846         bindings from dbus.h" theme
5847         
5848 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
5849
5850         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5851
5852         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5853
5854 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5855
5856         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5857         the reply value of the ServiceExists message.
5858
5859 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
5860
5861         * python/dbus_bindings.pyx.in: No longer need to parse path
5862         elements and pass them as arrays of strings.  The C API now
5863         accepts plain path strings.
5864         (_build_parsed_path): removed 
5865
5866 2004-06-07  Havoc Pennington  <hp@redhat.com>
5867
5868         * doc/TODO: remove auto-activation item since it's done; sort
5869         items by importance/milestone
5870
5871 2004-06-07  Havoc Pennington  <hp@redhat.com>
5872
5873         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5874         random signature when using REQUIRED_FIELDS (this hack won't work
5875         in the long term)
5876
5877         * dbus/dbus-message.c: change the signature to be a header field,
5878         instead of message->signature special-case string. Incremental
5879         step forward. Then we can fix up code to send the signature in the
5880         message, then fix up code to validate said signature, then fix up
5881         code to not put the typecodes inline, etc.
5882         (load_one_message): don't make up the signature after the fact
5883         (decode_header_data): require signature field for the known
5884         message types
5885
5886         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5887
5888         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5889
5890 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
5891
5892         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5893
5894         * mono/Handler.cs: Updated to follow new path argument for
5895         (un-)registering objects.
5896
5897         * mono/example/Makefile.am:
5898         * mono/Makefile.am:
5899         * configure.in: Bumped required version for mono and use new -pkg
5900         syntax for deps
5901
5902 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5903
5904         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5905         registration functions take the path argument as char* instead of
5906         char**.
5907
5908         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5909         split off the path decompostion part of
5910         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5911         warnings. 
5912
5913         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5914         
5915 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5916  
5917         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5918         machine approach.  A state is implemented as a function that
5919         handles incoming events as specified for that state.
5920         
5921         * doc/dbus-specification.xml: Update auth protocol state machine
5922         specification to match implementation.  Remove some leftover
5923         base64 examples.
5924
5925 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5926
5927         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5928         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5929         quiet doxygen.
5930
5931         * Doxyfile.in: remove deprecated options.
5932
5933         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5934         glib/test-thread.h, glib/test-thread-client.c,
5935         glib/test-thread-server.c, glib/test-profile.c,
5936         glib/test-dbus-glib.c: remove these unused files.
5937
5938 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5939
5940         * dbus/dbus-object-tree.c
5941         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5942         non-fallback handlers (bug #684).
5943         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5944         (find_subtree_recurse): report wether the returned subtree is an
5945         exact match or a "fallback" match higher up in the tree.
5946         (object_tree_test_iteration): update test case.
5947
5948 2004-06-01  Seth Nickell  <seth@gnome.org>
5949
5950         * python/dbus_bindings.pyx.in:
5951         * python/tests/test-client.py:
5952
5953         Round off basic type support. Add dicts (yay!), and 
5954         remaining array types.
5955
5956         Make MessageIter more general so it works for dicts too.
5957
5958         Mark all loop variables as C integers.
5959         
5960 2004-05-31  Havoc Pennington  <hp@redhat.com>
5961
5962         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
5963         "in" before "out"
5964
5965         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
5966
5967         * glib/dbus-glib-tool.c (main): set up to have a --self-test
5968         option that runs the tests, and start filling in some code
5969         including for starters just dumping the interfaces to stdout
5970
5971         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
5972
5973         * test/data/valid-introspection-files/lots-of-types.xml: test of
5974         an example introspection file
5975
5976         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
5977         "node" (I think...)
5978
5979 2004-05-31  Seth Nickell  <seth@gnome.org>
5980
5981         * python/dbus_bindings.pyx.in:
5982         * python/tests/test-client.py:
5983
5984         Test Suite: 1
5985         Python Bindings: 0
5986
5987         Fix string array memory trashing bug... oops...
5988
5989 2004-05-30  Seth Nickell  <seth@gnome.org>
5990
5991         * python/dbus.py:
5992
5993         Add a nicer-but-less-flexible alternate API for handling 
5994         calls to virtual objects in dbus.ObjectTree.
5995
5996         Screw up the argument order to the dbus.Object constructor
5997         for consistency with dbus.ObjectTree (and to make dbus_methods
5998         optional for future extension)
5999         
6000         * python/examples/Makefile.am:
6001         * python/examples/gconf-proxy-service.py:
6002         * python/examples/gconf-proxy-service2.py:
6003
6004         Alternate implementation of gconf-proxy-service using the
6005         nicer dbus.ObjectTree API.
6006         
6007         * python/examples/example-service.py:
6008         * python/tests/test-server.py
6009
6010         Reverse the argument order to deal with dbus.Object constructor
6011         changes.
6012         
6013 2004-05-30  Seth Nickell  <seth@gnome.org>
6014
6015         * python/examples/example-client.py:
6016         * python/examples/example-service.py:
6017
6018         Take it back. Lists seem to work but they're broken
6019         in the test suite. Make the base examples use
6020         lists (works fine).
6021
6022 2004-05-30  Seth Nickell  <seth@gnome.org>
6023
6024         * python/dbus_bindings.pyx.in:
6025         * python/tests/test-client.py:
6026
6027         Add some more tests and fix errors that crop up.
6028         Unfortunately, currently it seems like marshalling
6029         and unmarshalling of lists is completely broken :-(
6030
6031 2004-05-30  Seth Nickell  <seth@gnome.org>
6032
6033         * python/dbus_bindings.pyx.in:
6034
6035         Add support for ObjectPath type.
6036
6037         * python/dbus.py:
6038
6039         Refactor message handling code to a common function.
6040         
6041         * python/tests/test-client.py:
6042         * python/tests/test-server.py:
6043
6044         Add tests that check to make sure values of all types
6045         can be echoed from a service w/o mangling.
6046         
6047 2004-05-29  Seth Nickell  <seth@gnome.org>
6048
6049         * python/dbus.py:
6050
6051         Add ObjectTree class which allows implementation
6052         of trees of "virtual" objects. Basically the python
6053         wrapper for "register_fallback".
6054         
6055         * python/examples/Makefile.am
6056         * python/examples/gconf-proxy-client.py:
6057         * python/examples/gconf-proxy-service.py:
6058
6059         Implement a simple GConf proxy service that supports
6060         get/set on string and int GConf keys using the ObjectTree.
6061         
6062 2004-05-29  Seth Nickell  <seth@gnome.org>
6063
6064         * python/dbus.py:
6065         * python/examples/example-client.py:
6066         * python/examples/example-service.py:
6067         * python/examples/list-system-services.py:
6068
6069         Add SessionBus, SystemBus and ActivationBus classes
6070         so you don't need to know the special little BUS_TYPE
6071         flag.
6072         
6073 2004-05-29  Havoc Pennington  <hp@redhat.com>
6074
6075         * bus/config-parser.c (process_test_valid_subdir): temporarily
6076         stop testing config parser OOM handling, since expat has issues
6077         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6078
6079         * bus/dbus-daemon-1.1.in: change requested_reply to
6080         send_requested_reply/receive_requested_reply so we can send the
6081         replies, not just receive them.
6082
6083         * bus/config-parser.c: parse the new
6084         send_requested_reply/receive_requested_reply
6085
6086         * bus/policy.c (bus_client_policy_check_can_send): add
6087         requested_reply argument and use it
6088
6089         * bus/bus.c (bus_context_check_security_policy): pass through
6090         requested_reply status to message send check
6091
6092         * bus/system.conf.in: adapt to requested_reply change
6093         
6094 2004-05-28  Havoc Pennington  <hp@redhat.com>
6095
6096         * test/glib/test-service-glib.c (main): remove unused variable
6097
6098         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6099
6100         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6101         from the enum, no longer in use.
6102
6103         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6104         works right.
6105
6106         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6107         whether error_name passed in is a valid error name.
6108
6109 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6110
6111         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6112         OBJECT_PATH and OBJECT_PATH_ARRAY
6113
6114 2004-05-28  Seth Nickell  <seth@gnome.org>
6115
6116         * python/examples/Makefile.am:
6117
6118         Forget to add Makefile.am. Do not pass go.
6119
6120 2004-05-28  Michael Meeks  <michael@ximian.com>
6121
6122         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6123         fix no int64 case.
6124
6125         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6126
6127         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6128         (_dbus_message_iter_get_basic_type_array): impl.
6129         drastically simplify ~all relevant _get methods to use these.
6130         (_dbus_message_iter_append_basic_array),
6131         (dbus_message_iter_append_basic): impl
6132         drastically simplify ~all relevant _append methods to use these.
6133
6134         * dbus/dbus-message-builder.c (parse_basic_type) 
6135         (parse_basic_array, lookup_basic_type): impl.
6136         (_dbus_message_data_load): prune scads of duplicate /
6137         cut & paste coding.
6138
6139         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6140         (_dbus_demarshal_basic_type): implement,
6141         (demarshal_and_validate_len/arg): beef up debug.
6142         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6143
6144 2004-05-27  Seth Nickell  <seth@gnome.org>
6145
6146         * configure.in:
6147         * python/Makefile.am:
6148
6149         Include the example python apps in the tarball.
6150         
6151         * python/examples/list-system-services.py
6152
6153         Add a python new example that fetches the list of services
6154         from the system bus.
6155         
6156 2004-05-27  Seth Nickell  <seth@gnome.org>
6157
6158         * python/dbus.py:
6159         * python/dbus_bindings.pyx.in:
6160
6161         Fix failure to notify that a signal was not handled,
6162         resulted in hung functions.
6163         
6164 2004-05-25  Colin Walters  <walters@redhat.com>
6165
6166         * tools/dbus-monitor.c (main): Monitor all types of messages.
6167
6168 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6169
6170         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6171         which unregisters the object path and disposes the handler.
6172
6173 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6174  
6175         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6176          
6177         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6178         operands to && so we call dbus_message_iter_next () for the last
6179         argument also.
6180
6181 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6182
6183         * dbus/dbus-object-tree.c
6184         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6185         children even if the requested path isn't registered.
6186         (object_tree_test_iteration): test object_tree_list_registered.
6187
6188         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6189         it to 0.
6190         
6191 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6192
6193         * doc/TODO: Remove resolved items.
6194
6195         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6196         field.
6197         
6198         * bus/connection.c (bus_connections_expect_reply): Enforce the
6199         per-connection limit on pending replies.
6200         
6201         Patch from Jon Trowbridge <trow@ximian.com>:
6202  
6203         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6204         up a watch that triggers a config reload when one end of the pipe
6205         becomes readable.
6206         (signal_handler): Instead of doing the config reload in our SIGHUP
6207         handler, just write to the reload pipe and let the associated
6208         watch handle the reload when control returns to the main loop.
6209  
6210         * bus/driver.c (bus_driver_handle_reload_config): Added.
6211         Implements a ReloadConfig method for requesting a configuration
6212         file reload via the bus driver.
6213  
6214 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6215
6216         * HACKING: Updated release instructions concerning the wiki page.
6217
6218 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6219
6220         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6221         filter against auth->allowed_mechs; we only add allowed mechs in
6222         record_mechanisms().
6223  
6224         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6225         ALLOWED_MECHS to auth-script format so we can set the list of
6226         allowed mechanisms.
6227  
6228         * data/auth/client-out-of-mechanisms.auth-script: New test to
6229         check client disconnects when it is out of mechanisms to try.
6230  
6231         * dbus/dbus-auth.c (process_command): Remove check for lines
6232         longer that 1 MB; we only buffer up maximum 16 kB.
6233  
6234         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6235         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6236         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6237         assume there might be unused bytes.
6238  
6239         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6240         client-out-of-mechs, it is handled in process_reject(). Move check
6241         for max failures to send_rejected(), as it's a server-only thing.
6242
6243         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6244         send_auth(), send_data(), send_rejected(), send_error(),
6245         send_ok(), send_begin() and send_cancel().
6246
6247 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6248
6249         Remove base64 encoding, replace with hex encoding. Original patch
6250         from trow@ximian.com, added error handling.
6251
6252         * dbus/dbus-string.c (_dbus_string_base64_encode)
6253         (_dbus_string_base64_decode): Remove.
6254         (_dbus_string_hex_decode): Add end_return argument so we can
6255         distinguish between OOM and invalid hex encoding.
6256         (_dbus_string_test): Remove base64 tests and add test case for
6257         invalid hex.
6258
6259         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6260         Replace base64 with hex.
6261
6262         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6263         for invalid hex encoded data in auth protocol.
6264
6265 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6266
6267         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6268         leak.
6269
6270 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6271
6272         * mono/dbus-sharp.dll.config.in: Added for GAC
6273         * mono/dbus-sharp.snk: Added for GAC
6274         * mono/Assembly.cs.in: Added for GAC
6275         * mono/Makefile.am: Changes for GAC installation        
6276         * configure.in: Added refs for dbus-sharp.dll.config.in and
6277         Assembly.cs.in. More fixes for mono testing
6278         * mono/example/Makefile.am: Changed var to CSC
6279         * Makefile.am: Changed flag name to DBUS_USE_CSC
6280
6281 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6282
6283         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6284         * mono/doc/*: Added documentation framework
6285         * configure.in: Added monodoc check
6286         * README: Added description of mono configure flags
6287
6288 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6289
6290         * doc/dbus-specification.xml: Added a "Required" column to the 
6291         header fields table and changed the "zero or more" verbage in
6292         the above paragraph to read "The header must contain the required 
6293         named header fields and zero or more of the optional named header 
6294         fields".
6295         * test/data/invalid-messages/*.message: Added the required PATH 
6296         named header field to the tests so that they don't fail on 
6297         'Missing path field'
6298
6299 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6300
6301         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6302         the stack by implicitly defining variable and parameter types and
6303         removing the hack of defining C pointers as python objects and later
6304         casting them.
6305
6306 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6307
6308         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6309
6310 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6311
6312         * mono/DBusType/Dict.cs: Handle empty dicts
6313         * mono/DBusType/Array.cs: Handle empty arrays
6314         * mono/Arguments.cs: Handle empty arguments
6315
6316 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6317
6318         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6319         field
6320
6321 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6322
6323         * test/data/valid-messages/standard-*.message: Update message
6324         test scripts to new header field names.
6325
6326 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6327
6328         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6329         overflow to times_we_did_each_thing array which would chop off the
6330         first character of the failure_dir string. Increased the size of
6331         the array to 7 to reflect the number of random mutation functions
6332         we have.
6333
6334 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6335
6336         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6337         unix_server->watch here, it is unreffed in disconnect.
6338         (_dbus_server_new_for_tcp_socket): convert NULL host to
6339         "localhost" here so we don't append NULL to address.
6340         
6341         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6342         various addresses, including tcp with no explicit host.
6343
6344 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6345
6346         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6347         fix incorrect setting of .name_offset in the HeaderField (it was
6348         off by two bytes, positioned right after the name and typecode)
6349
6350         * bus/bus.c (bus_context_new, bus_context_unref): test before
6351         calling dbus_server_free_data_slot and _dbus_user_database_unref
6352         in case of an error.
6353
6354         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6355         by libdbus-gtool.
6356
6357 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6358
6359         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6360         _dbus_poll() instead of select().
6361
6362 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6363
6364         * bus/main.c (signal_handler): Reload the configuration files
6365         on SIGHUP.
6366         (main): Set up our SIGHUP handler.
6367
6368         * bus/bus.c (struct BusContext): Store the config file, user and
6369         fork flag in the BusContext.
6370         (process_config_first_time_only): Added.  Contains the code
6371         (previously in bus_context_new) for setting up the BusContext from
6372         the BusConfigParser that should only be run the first time the
6373         config files are read.
6374         (process_config_every_time): Added.  Contains the code (previously
6375         in bus_context_new) for setting up the BusContext from the
6376         BusConfigParser that should be run every time the config files are
6377         read.
6378         (load_config): Added.  Builds a BusConfigParser from the config
6379         files and passes the resulting structure off to
6380         process_config_first_time_only (assuming this is the first time)
6381         and process_config_every_time.
6382         (bus_context_new): All of the config-related code has been moved
6383         to process_config_first_time_only and process_config_every_time.
6384         Now this function just does the non-config-related initializations
6385         and calls load_config.
6386         (bus_context_reload_config): Added.
6387
6388 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6389
6390         * bus/driver.c (bus_driver_handle_get_service_owner):
6391         implement a GetServiceOwner method.
6392         * doc/dbus-specification.xml: document it.
6393         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6394         
6395         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6396         implement, using the bus GetServiceOwner method.
6397
6398         * test/glib/test-dbus-glib.c:
6399         use dbus_gproxy_new_for_service_owner so that we can receive the
6400         signal. 
6401
6402 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6403
6404         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6405         dbus/dbus-message.c, dbus/dbus-protocol.h
6406         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6407
6408         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6409         dbus/dbus-message.c, dbus/dbus-protocol.h
6410         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6411
6412         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6413         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6414         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6415
6416         * doc/dbus-specification.xml (Header Fields Table):
6417         s/SERVICE/DESTINATION
6418         s/SENDER_SERVICE/SENDER
6419
6420
6421 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6422
6423         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6424         a few seconds.
6425
6426 2004-04-13  Michael Meeks  <michael@ximian.com>
6427
6428         * glib/dbus-gobject.c (handle_introspect): split out
6429         (introspect_properties): this.
6430         (handle_introspect): implement this.
6431
6432         * test/glib/Makefile.am: use the absolute path so the bus
6433         daemon's chdir ("/") doesn't kill us dead.
6434
6435         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6436
6437 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6438
6439         * bus/config-parser.c (struct BusConfigParser): Added
6440         included_files field.
6441         (seen_include): Added.  Checks whether or not a file has already
6442         been included by any parent BusConfigParser.
6443         (bus_config_parser_new): Copy the parent's included_files.
6444         (include_file): Track which files have been included, and fail on
6445         circular inclusions.
6446         (process_test_valid_subdir): Changed printf to report if we are
6447         testing valid or invalid conf files.
6448         (all_are_equiv): Changed printf to be a bit clearer about
6449         what we are actually doing.
6450         (bus_config_parser_test): Test invalid configuration files.
6451
6452 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6453
6454         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6455         argument.  If non-null, the newly-constructed BusConfigParser will
6456         be initialized with the parent's BusLimits instead of the default
6457         values.
6458         (include_file): When including a config file, pass in
6459         the current parser as the parent and then copy the BusLimits
6460         from the included BusConfigParser pack to the current parser.
6461         (process_test_valid_subdir): Renamed from process_test_subdir.
6462         (process_test_equiv_subdir): Added.  Walks through a directory,
6463         descending into each subdirectory and loading the config files
6464         it finds there.  If any subdirectory contains two config files
6465         that don't produce identical BusConfigParser structs, fail.
6466         For now, the BusConfigParser's BusPolicies are not compared.
6467         (bus_config_parser_test): Call both process_test_valid_subdir and
6468         process_test_equiv_subdir.
6469
6470         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6471         argument and pass it along to the call to bus_config_parser_new.
6472         Also made a few small changes to allow this code to compile.
6473
6474         * bus/config-loader-expat.c (bus_config_load): Take a parent
6475         argument and pass it along to the call to bus_config_parser_new.
6476
6477         * bus/bus.c (bus_context_new): Load the config file
6478         with a NULL parent argument.
6479
6480 2004-03-29  Michael Meeks  <michael@ximian.com>
6481
6482         * glib/dbus-gobject.c (introspect_properties): split
6483         out, fix mangled 'while' flow control.
6484         (introspect_signals): implement.
6485         (handle_introspect): update.
6486
6487 2004-03-29  Michael Meeks  <michael@ximian.com>
6488
6489         * glib/dbus-gobject.c (set_object_property): split out / 
6490         re-work, use the property type, and not the message type(!)
6491         (get_object_property): ditto.
6492
6493         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6494         (dbus_gvalue_marshal): make this code re-usable, needed
6495         for signals too, also on both proxy and server side.
6496         Re-write for more efficiency / readability.
6497
6498 2004-03-29  Michael Meeks  <michael@ximian.com>
6499
6500         * dbus/dbus-message.c
6501         (dbus_message_new_error_printf): impl.
6502
6503         * dbus/dbus-connection.c
6504         (dbus_connection_unregister_object_path): fix warning.
6505
6506         * configure.in: fix no-mono-installed situation.
6507
6508 2004-03-27  Havoc Pennington  <hp@redhat.com>
6509
6510         Patch from Timo Teräs:
6511         
6512         * tools/dbus-send.c (main): if --print-reply, assume type is
6513         method call; support boolean type args
6514         
6515         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6516         bunch of memleak and logic bugs
6517         
6518 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6519
6520         * mono/Arguments.cs:
6521         * mono/Introspector.cs:
6522         * mono/Handler.cs:
6523         * mono/InterfaceProxy.cs:
6524         * mono/Message.cs
6525         * mono/ProxyBuilder.cs:
6526         * mono/Service.cs:
6527         Added InterfaceProxy class to avoid building proxies for every
6528         object.
6529
6530         * dbus-message.h:
6531         * dbus-message.c (dbus_message_append_args_valist)
6532         (dbus_message_iter_get_object_path)
6533         (dbus_message_iter_get_object_path_array)
6534         (dbus_message_iter_append_object_path)
6535         (dbus_message_iter_append_object_path_array):
6536         Added object_path iter functions to handle OBJECT_PATH arguments
6537         
6538 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6539
6540         First checkin of mono bindings.
6541         * configure.in:
6542         * Makefile.am:
6543         Build stuff for the bindings
6544         * dbus-sharp.pc.in: Added for pkgconfig
6545         
6546 2004-03-21  Havoc Pennington  <hp@redhat.com>
6547
6548         * test/test-service.c (main): remove debug spew
6549
6550 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6551
6552         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6553         arrays
6554
6555         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6556         (dbus_message_iter_init_array_iterator)
6557         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6558         indicate whether the iterator is empty
6559
6560         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6561         warnings
6562
6563 2004-03-19  Havoc Pennington  <hp@redhat.com>
6564
6565         * NEWS: 0.21 updates
6566
6567         * configure.in: 0.21
6568
6569         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6570         
6571         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6572         you don't need pyrex to make dist
6573
6574         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6575         sources; run moc
6576         
6577 2004-03-18  Richard Hult  <richard@imendio.com>
6578
6579         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6580         (dbus_message_set_auto_activation): Add doxygen docs.
6581
6582 2004-03-16  Richard Hult  <richard@imendio.com>
6583
6584         * bus/activation.c: (bus_activation_service_created),
6585         (bus_activation_send_pending_auto_activation_messages),
6586         (bus_activation_activate_service):
6587         * bus/activation.h:
6588         * bus/dispatch.c: (bus_dispatch),
6589         (check_nonexistent_service_auto_activation),
6590         (check_service_auto_activated),
6591         (check_segfault_service_auto_activation),
6592         (check_existent_service_auto_activation), (bus_dispatch_test):
6593         * bus/driver.c: (bus_driver_handle_activate_service):
6594         * bus/services.c: (bus_registry_acquire_service):
6595         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6596         (dbus_message_get_auto_activation):
6597         * dbus/dbus-message.h:
6598         * dbus/dbus-protocol.h: Implement auto-activation.
6599         
6600         * doc/dbus-specification.xml: Add auto-activation to the spec.
6601
6602 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6603
6604         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6605         fix a bug with CUSTOM types.
6606
6607         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6608         a unit test for this bug (used to fail).
6609
6610 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6611
6612         * bus/activation.c:
6613         (babysitter_watch_callback): notify all pending activations waiting for
6614           the same exec that the activation failed.
6615         (bus_activation_activate_service): shortcut the activation if we 
6616           already waiting for the same executable to start up.
6617
6618 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6619
6620         * bus/activation.c: 
6621         - Added service file reloading. 
6622           Each service files directory is kept in an hash table in 
6623           BusActivation and each BusActivationEntry knows what .service-file it
6624           was read from. So when you try to activate a service the bus will 
6625           check if it's been updated, removed or if new .service-files has 
6626           been installed.
6627         - Test code at the bottom for the service file reloading.
6628         * bus/test-main.c: (main):
6629         * bus/test.h:
6630         - added service reloading test.
6631         * dbus/dbus-sysdeps.c: 
6632         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6633
6634 2004-03-08  Michael Meeks  <michael@ximian.com>
6635
6636         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6637         bail immediately if disconnected, to avoid busy loop.
6638
6639         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6640         cleanup cut/paste/inefficiency.
6641
6642 2004-03-01  David Zeuthen  <david@fubar.dk>
6643
6644         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6645         bug where args were used twice. This bug resulted in a segfault
6646         on a Debian/PPC system when starting the messagebus daemon. Include
6647         dbus-sysdeps.h for DBUS_VA_COPY
6648
6649         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6650
6651         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6652         appropriate va_copy implementation. From GLib
6653         
6654 2004-02-24  Joe Shaw  <joe@ximian.com>
6655
6656         * bus/services.c (bus_registry_acquire_service): We need to pass
6657         in the service name to dbus_set_error() to prevent a crash.
6658
6659 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6660
6661         * AUTHORS: Reveal my True identity.
6662
6663 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6664
6665         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6666         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6667
6668 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6669
6670         * doc/TODO: Added not about better error check of configuration files.
6671
6672 2003-12-02  Richard Hult  <richard@imendio.com>
6673
6674         * Update AFL version to 2.0 throughout the source files to reflect
6675         the update that was done a while ago.
6676
6677 2003-12-02  Richard Hult  <richard@imendio.com>
6678
6679         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6680         wrote_dict_key to FALSE on the iter that the dict is appended to,
6681         just like when appending other types. Fixes a bug where a dict
6682         couldn't be put inside a dict.
6683         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6684         (message_iter_test, _dbus_message_test): Add test case for dict
6685         inside dict.
6686
6687 2003-12-01  David Zeuthen  <david@fubar.dk>
6688
6689         * python/dbus.py: Add the actual message when calling the reciever
6690         of a signal such that parameters can be inspected. Add the method
6691         remove_signal_receiver
6692         
6693 2003-11-26  Mikael Hallendal  <micke@imendio.com>
6694
6695         * bus/*.[ch]:
6696         * dbus/*.[ch]:
6697         * glib/*.[ch]: Made ref functions return the pointer
6698
6699 2003-11-25  Zack Rusin  <zack@kde.org>
6700
6701         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6702
6703         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
6704         wrappers,
6705
6706         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
6707         the Integrator and to better fit with the server,
6708
6709 2003-11-24  Zack Rusin  <zack@kde.org>
6710
6711         * qt/connection.h, qt/connection.cpp: removing initDbus method since
6712         the integrator handles it now
6713
6714         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6715         since QTimer wasn't really meant to be used the way DBusTimeout is
6716
6717 2003-11-24  Zack Rusin  <zack@kde.org>
6718
6719         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
6720         Integrator class which integrates D-BUS with the Qt event loop,
6721
6722         * qt/connection.h, qt/connection.cpp: Move all the code which
6723         was dealing with D-BUS integration to the Integrator class,
6724         and start using Integrator,
6725
6726 2003-11-23  Zack Rusin  <zack@kde.org>
6727
6728         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
6729         wrapper
6730
6731         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6732         switching namespaces to DBusQt, reworking the class,
6733
6734         * Makefile.cvs: switching dependencies so that it matches KDE 
6735         schematics,
6736         
6737         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
6738         the library
6739
6740 2003-11-19  Havoc Pennington  <hp@redhat.com>
6741
6742         * NEWS: update
6743
6744         * configure.in: bump version to 0.20
6745
6746         * configure.in (have_qt): add yet another place to look for qt
6747         (someone hand trolltech a .pc file...)
6748
6749 2003-11-01  Havoc Pennington  <hp@redhat.com>
6750
6751         * doc/dbus-specification.xml: add state machine docs on the auth
6752         protocol; just a first draft, I'm sure it's wrong.      
6753
6754 2003-10-28  David Zeuthen  <david@fubar.dk>
6755
6756         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6757         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6758         
6759 2003-10-28  Havoc Pennington  <hp@redhat.com>
6760
6761         * dbus/dbus-message.c (get_next_field): delete unused function
6762
6763 2003-10-28  Havoc Pennington  <hp@redhat.com>
6764
6765         * bus/expirelist.c (do_expiration_with_current_time): detect
6766         failure of the expire_func due to OOM
6767
6768         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6769
6770         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6771         NoReply error that's now created by the bus when the service exits
6772
6773 2003-10-28  Havoc Pennington  <hp@redhat.com>
6774
6775         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6776         tests for set_path, set_interface, set_member, etc.
6777
6778         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6779
6780         * dbus/dbus-message.c (set_string_field): always just delete and
6781         re-append the field; accept NULL for deletion
6782         (re_align_fields_recurse): reimplement
6783         
6784 2003-10-26  Havoc Pennington  <hp@redhat.com>
6785
6786         * dbus/dbus-connection.c: fix docs to properly describe the
6787         disconnected message
6788         (_dbus_connection_notify_disconnected): remove this function; 
6789         we can't synchronously add the disconnected message, we have to 
6790         do it after we've queued any remaining real messages
6791         (_dbus_connection_get_dispatch_status_unlocked): queue the
6792         disconnect message only if the transport has finished queueing all
6793         its real messages and is disconnected.
6794         (dbus_connection_disconnect): update the dispatch status here
6795
6796 2003-10-22  Havoc Pennington  <hp@redhat.com>
6797
6798         * bus/bus.c (bus_context_check_security_policy): fix up assertion
6799
6800         * bus/connection.c (bus_transaction_send_from_driver): set the
6801         destination to the connection's base service
6802
6803 2003-10-20  Havoc Pennington  <hp@redhat.com>
6804
6805         hmm, make check is currently not passing.
6806         
6807         * doc/dbus-specification.xml: add requirement that custom type
6808         names follow the same rules as interface names.
6809
6810         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6811         duplication and allow 'c' to be 'custom'; dict is now 'm' for
6812         'map'
6813
6814         * doc/dbus-specification.xml: update type codes to match
6815         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6816         CUSTOM. Add type OBJECT_PATH to the spec.
6817
6818 2003-10-17  Havoc Pennington  <hp@redhat.com>
6819
6820         * bus/driver.c (create_unique_client_name): use "." as separator
6821         in base service names instead of '-'
6822
6823         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6824         byte at the end of the string
6825
6826         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6827         optimization macros since string validation seems to be a slow
6828         point.
6829         
6830         * doc/dbus-specification.xml: restrict valid
6831         service/interface/member/error names. Add test suite code for the
6832         name validation.
6833
6834         * dbus/dbus-string.c: limit service/interface/member/error names 
6835         to [0-9][A-Z][a-z]_
6836
6837         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6838         format arg to verbose spew
6839
6840         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6841         memory, return instead of g_error
6842
6843         * test/test-service.c (path_message_func): support emitting a
6844         signal on request
6845
6846         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6847         activation bus type if DBUS_BUS_ACTIVATION was set; default to
6848         assuming the activation bus was the session bus so that services
6849         started manually will still register.
6850         (init_connections_unlocked): fix so that in OOM situation we get
6851         the same semantics when retrying the function
6852         
6853         * test/test-service.c (main): change to use path registration, to
6854         test those codepaths; register with DBUS_BUS_ACTIVATION rather
6855         than DBUS_BUS_SESSION
6856
6857 2003-10-16  Havoc Pennington  <hp@redhat.com>
6858
6859         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6860
6861         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6862         coverage of the tests
6863         (coverage-report.txt): don't move the .da and .bbg files around
6864
6865 2003-10-16  Havoc Pennington  <hp@redhat.com>
6866
6867         * bus/bus.c (struct BusContext): remove struct field I didn't mean
6868         to put there
6869
6870 2003-10-16  Havoc Pennington  <hp@redhat.com>
6871
6872         * bus/connection.c (bus_pending_reply_expired): either cancel or
6873         execute, not both
6874         (bus_connections_check_reply): use unlink, not remove_link, as we
6875         don't want to free the link; fixes double free mess
6876
6877         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6878         where no reply was received
6879
6880         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6881         fix a refcount leak
6882
6883         * bus/signals.c (match_rule_matches): add special cases for the
6884         bus driver, so you can match on sender/destination for it.
6885
6886         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6887         DBUS_PRINT_BACKTRACE is set
6888
6889         * dbus/dbus-internals.c: add pid to assertion failure messages
6890
6891         * dbus/dbus-connection.c: add message type code to the debug spew
6892
6893         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6894         sender=foo not service=foo
6895
6896         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6897         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
6898         DBUS_ACTIVATION_ADDRESS instead
6899
6900         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6901         DBUS_SYSTEM_BUS_ADDRESS if appropriate
6902
6903         * bus/bus.c (bus_context_new): handle OOM copying bus type into
6904         context struct
6905
6906         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6907         (dbus_message_iter_get_object_path_array): new function (half
6908         finished, disabled for the moment)
6909         
6910         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6911         DBUS_MESSAGE_TYPE_ERROR
6912
6913         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6914         avoid redirecting stderr to /dev/null
6915         (babysit): close stdin if not doing the "exit_with_session" thing
6916
6917         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6918         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6919         stdout/stdin, so things don't get confused
6920         
6921         * bus/system.conf.in: fix to allow replies, I modified .conf
6922         instead of .conf.in again.
6923
6924 2003-10-14  David Zeuthen  <david@fubar.dk>
6925
6926         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6927         argtype to arg_type when raising unknown arg type exception.
6928         Changed type list to reflect the changes in dbus-protocol.h so 
6929         the bindings actually work.
6930
6931 2003-10-14  Havoc Pennington  <hp@redhat.com>
6932
6933         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6934         to have a bug keeping it from outputting the .da files sometimes
6935         (string_get_string): don't append garbage nul bytes to the string.
6936
6937 2003-10-15  Seth Nickell  <seth@gnome.org>
6938
6939         * python/Makefile.am:
6940
6941         Include dbus_h_wrapper.h in the dist tarball.
6942
6943 2003-10-14  Havoc Pennington  <hp@redhat.com>
6944
6945         * bus/bus.c (bus_context_check_security_policy): revamp this to
6946         work more sanely with new policy-based requested reply setup
6947
6948         * bus/connection.c (bus_transaction_send_from_driver): set bus
6949         driver messages as no reply
6950
6951         * bus/policy.c (bus_client_policy_check_can_receive): handle a
6952         requested_reply attribute on allow/deny rules
6953
6954         * bus/system.conf: add <allow requested_reply="true"/>
6955
6956         * bus/driver.c (bus_driver_handle_message): fix check for replies
6957         sent to the bus driver, which was backward. How did this ever work
6958         at all though? I think I'm missing something.
6959
6960         * dbus/dbus-message.c (decode_header_data): require error and
6961         method return messages to have a reply serial field to be valid
6962         (_dbus_message_loader_queue_messages): break up this function;
6963         validate that reply serial and plain serial are nonzero; 
6964         clean up the OOM/error handling.
6965         (get_uint_field): don't return -1 from this
6966         (dbus_message_create_header): fix signed/unsigned bug
6967
6968         * bus/connection.c (bus_connections_expect_reply): save serial of
6969         the incoming message, not reply serial
6970
6971 2003-10-14  Havoc Pennington  <hp@redhat.com>
6972
6973         * bus/connection.c: implement pending reply tracking using
6974         BusExpireList
6975
6976         * bus/bus.c (bus_context_check_security_policy): verify that a
6977         reply is pending in order to allow a reply to be sent. Deny 
6978         messages of unknown type.
6979
6980         * bus/dbus-daemon-1.1.in: update to mention new resource limits
6981
6982         * bus/bus.c (bus_context_get_max_replies_per_connection): new
6983         (bus_context_get_reply_timeout): new
6984
6985 2003-10-13  Seth Nickell  <seth@gnome.org>
6986
6987         * python/Makefile.am:
6988
6989         Pass "make distcheck": remove a couple files from DIST_FILES
6990         that weren't included in the final version.
6991
6992 2003-10-12  Havoc Pennington  <hp@pobox.com>
6993
6994         Added test code that 1) starts an actual bus daemon and 2) uses
6995         DBusGProxy; fixed bugs that were revealed by the test. Lots 
6996         more testing possible, but this is the basic framework.
6997         
6998         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
6999         empty proxy lists from the proxy list hash
7000
7001         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7002         couple of return_if_fail checks
7003
7004         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7005         to allocate, so everything is cleared to NULL as it should be.
7006
7007         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7008         source as data to dbus_connection_set_timeout_functions() as the 
7009         timeout functions expected
7010
7011         * test/glib/run-test.sh: add a little script to start up a message
7012         bus and run tests using it
7013
7014         * tools/dbus-launch.1: updates
7015
7016         * tools/dbus-launch.c (main): add --config-file option
7017
7018         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7019         that could never be reached.
7020
7021         * dbus/dbus-message.c (dbus_message_new_method_return) 
7022         (dbus_message_new_error, dbus_message_new_signal): set the
7023         no-reply-expected flag on all these. Redundant, but may
7024         as well be consistent.
7025
7026 2003-10-11  Havoc Pennington  <hp@pobox.com>
7027
7028         * test/decode-gcov.c (function_solve_graph): make broken block
7029         graph a nonfatal error since it seems to be broken. Need to debug
7030         this.
7031
7032         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7033         can't just check type > INVALID < LAST anymore
7034
7035         * dbus/dbus-message.c (dbus_message_get_signature): new function
7036         (dbus_message_has_signature): new function
7037         (struct DBusMessage): add signature field (right now it isn't sent
7038         over the wire, just generated on the fly)
7039         (dbus_message_copy): copy the signature, and init strings to
7040         proper length to avoid some reallocs
7041         (dbus_message_iter_init_array_iterator): return void, since it
7042         can't fail
7043         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7044         (_dbus_message_loader_queue_messages): add silly temporary hack to
7045         fill in message->signature on load
7046
7047         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7048         characters, so they are relatively human-readable.
7049
7050 2003-10-11  Havoc Pennington  <hp@pobox.com>
7051
7052         * dbus/dbus-message.c (_dbus_message_test): add more test
7053         coverage, but #if 0 for now since they uncover a bug 
7054         not fixed yet; I think in re_align_field_recurse()
7055         (re_align_field_recurse): add FIXME about broken assertion
7056
7057         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7058
7059         * bus/connection.c: share a couple code bits with expirelist.c
7060
7061         * bus/expirelist.h, bus/expirelist.c: implement a generic
7062         expire-items-after-N-seconds facility, was going to share between
7063         expiring connections and replies, decided not to use for expiring
7064         connections for now.
7065
7066         * COPYING: include AFL 2.0 (still need to change all the file headers)
7067
7068 2003-10-09  Havoc Pennington  <hp@redhat.com>
7069
7070         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7071         gcc 3.3. Not that we do anything about it yet.
7072
7073         * bus/signals.c (bus_match_rule_parse): impose max length on the
7074         match rule text
7075
7076         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7077
7078 2003-10-09  Havoc Pennington  <hp@redhat.com>
7079
7080         Make matching rules theoretically work (add parser).
7081         
7082         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7083         the case where destination is explicitly specified as bus driver
7084         and someone else is eavesdropping.
7085         
7086         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7087         definition of eavesdropping and assertion
7088
7089         * tools/dbus-send.c (main): use dbus_message_type_from_string
7090
7091         * bus/signals.c (bus_match_rule_parse): implement
7092
7093         * dbus/dbus-message.c (dbus_message_type_from_string): new
7094
7095         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7096
7097 2003-10-02  Havoc Pennington  <hp@pobox.com>
7098
7099         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7100         dbus_gproxy_oneway_call
7101
7102         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7103         (dbus_server_setup_with_g_main): fix to allow calling them more
7104         than once on the same args
7105         (dbus_bus_get_with_g_main): new function
7106
7107 2003-10-02  Havoc Pennington  <hp@redhat.com>
7108
7109         * doc/dbus-tutorial.xml: write some stuff
7110
7111 2003-09-29  Havoc Pennington  <hp@pobox.com>
7112
7113         * configure.in: split checks for Doxygen from XML docs, check for
7114         xmlto
7115
7116         * doc/Makefile.am: XML-ify all the docs, and add a blank
7117         dbus-tutorial.xml
7118
7119 2003-09-29  Havoc Pennington  <hp@pobox.com>
7120
7121         * Merge dbus-object-names branch. To see the entire patch 
7122         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7123         it's huuuuge though.
7124         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7125         
7126 2003-09-28  Havoc Pennington  <hp@pobox.com>
7127
7128         * HACKING: update to reflect new server
7129
7130 2003-09-26  Seth Nickell  <seth@gnome.org>
7131
7132         * python/dbus.py:
7133         * python/examples/example-signals.py:
7134
7135         Start implementing some notions of signals. The API
7136         is really terrible, but they sort of work (with the
7137         exception of being able to filter by service, and to
7138         transmit signals *as* a particular service). Need to
7139         figure out how to make messages come from the service
7140         we registered :-(
7141         
7142         * python/dbus_bindings.pyx.in:
7143
7144         Removed duplicate message_handler callbacks.
7145         
7146 2003-09-25  Havoc Pennington  <hp@redhat.com>
7147
7148         * bus/session.conf.in: fix my mess
7149
7150 2003-09-25  Havoc Pennington  <hp@pobox.com>
7151
7152         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7153
7154 2003-09-25  Seth Nickell  <seth@gnome.org>
7155
7156         * python/examples/example-service.py:
7157
7158         Johan notices complete wrong code in example-service, but
7159         completely wrong in a way that works exactly the same (!).
7160         Johan is confused, how could this possibly work? Example
7161         code fails to serve purpose of making things clear.
7162         Seth fixes.
7163
7164 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7165
7166         * doc/dbus-specification.sgml: don't require header fields
7167         to be 4-byte aligned and specify that fields should be
7168         distinguished from padding by the fact that zero is not
7169         a valid field name.
7170         
7171         * doc/TODO: remove re-alignment item and add item to doc
7172         the OBJECT_PATH type.
7173         
7174         * dbus/dbus-message.c:
7175         (HeaderField): rename the original member to value_offset
7176         and introduce a name_offset member to keep track of where
7177         the field actually begins.
7178         (adjust_field_offsets): remove.
7179         (append_int_field), (append_uint_field),
7180         (append_string_field): don't align the start of the header
7181         field to a 4-byte boundary.
7182         (get_next_field): impl finding the next marhsalled field
7183         after a given field.
7184         (re_align_field_recurse): impl re-aligning a number of
7185         already marshalled fields.
7186         (delete_field): impl deleting a field of any type and
7187         re-aligning any following fields.
7188         (delete_int_or_uint_field), (delete_string_field): remove.
7189         (set_int_field), (set_uint_field): no need to re-check
7190         that we have the correct type for the field.
7191         (set_string_field): ditto and impl re-aligning any
7192         following fields.
7193         (decode_header_data): update to take into account that
7194         the fields aren't 4-byte aligned any more and the new
7195         way to distinguish padding from header fields. Also,
7196         don't exit when there is too much header padding.
7197         (process_test_subdir): print the directory.
7198         (_dbus_message_test): add test to make sure a following
7199         field is re-aligned correctly after field deletion.
7200         
7201         * dbus/dbus-string.[ch]:
7202         (_dbus_string_insert_bytes): rename from insert_byte and
7203         allow the insert of multiple bytes.
7204         (_dbus_string_test): test inserting multiple bytes.
7205
7206         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7207         warning note to docs about having to re-align any
7208         marshalled values following the string.
7209         
7210         * dbus/dbus-message-builder.c:
7211         (append_string_field), (_dbus_message_data_load):
7212         don't align the header field.
7213         
7214         * dbus/dbus-auth.c: (process_test_subdir): print the
7215         directory.
7216         
7217         * test/break-loader.c: (randomly_add_one_byte): upd. for
7218         insert_byte change.
7219         
7220         * test/data/invalid-messages/bad-header-field-alignment.message:
7221         new test case.
7222         
7223         * test/data/valid-messages/unknown-header-field.message: shove
7224         a dict in the unknown field.
7225
7226 2003-09-25  Seth Nickell  <seth@gnome.org>
7227
7228         * python/dbus.py:
7229         * python/dbus_bindings.pyx.in:
7230
7231         Handle return values.
7232         
7233         * python/examples/example-client.py:
7234         * python/examples/example-service.py:
7235
7236         Pass back return values from the service to the client.
7237         
7238 2003-09-24  Seth Nickell  <seth@gnome.org>
7239
7240         * python/dbus.py:
7241
7242         Connect Object methods (when you are sharing an object) up... pass
7243         in a list of methods to be shared. Sharing all the methods just
7244         worked out too weird. You can now create nice Services over the
7245         DBus in Python. :-)
7246         
7247         * python/dbus_bindings.pyx.in:
7248
7249         Keep references to user_data tuples passed into C functions so 
7250         Python doesn't garbage collect on us.
7251
7252         Implement MethodReturn and Error subclasses of Message for creating
7253         DBusMessage's of those types.
7254         
7255         * python/examples/example-client.py:
7256         * python/examples/example-service.py:
7257
7258         Simple example code showing both how create DBus services and objects,
7259         and how to use them.
7260
7261 2003-09-23  Havoc Pennington  <hp@pobox.com>
7262
7263         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7264
7265 2003-09-23  Havoc Pennington  <hp@redhat.com>
7266
7267         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7268         (dbus_gproxy_disconnect_signal): implement
7269         (dbus_gproxy_manager_remove_signal_match): implement
7270         (dbus_gproxy_manager_add_signal_match): implement
7271         (dbus_gproxy_oneway_call): implement
7272
7273 2003-09-23  Havoc Pennington  <hp@pobox.com>
7274
7275         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7276         subclass. This means dropping the transparent thread safety of the
7277         proxy; you now need a separate proxy per-thread, or your own
7278         locking on the proxy. Probably right anyway.
7279         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7280
7281 2003-09-22  Havoc Pennington  <hp@redhat.com>
7282
7283         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7284
7285 2003-09-21  Seth Nickell  <seth@gnome.org>
7286
7287         First checkin of the Python bindings.
7288         
7289         * python/.cvsignore:
7290         * python/Makefile.am:
7291         * python/dbus_bindings.pyx.in:
7292         * python/dbus_h_wrapper.h:
7293
7294         Pieces for Pyrex to operate on, building a dbus_bindings.so
7295         python module for low-level access to the DBus APIs.
7296         
7297         * python/dbus.py:
7298
7299         High-level Python module for accessing DBus objects.
7300
7301         * configure.in:
7302         * Makefile.am:
7303
7304         Build stuff for the python bindings.
7305
7306         * acinclude.m4:
7307
7308         Extra macro needed for finding the Python C header files.
7309
7310 2003-09-21  Havoc Pennington  <hp@pobox.com>
7311
7312         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7313         implementing the proxy manager, didn't get very far.
7314
7315         * dbus/dbus-bus.c (dbus_bus_add_match): new
7316         (dbus_bus_remove_match): new
7317
7318         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7319         path_name argument; adjust the other not-yet-implemented 
7320         gproxy constructors to be what I think they should be.
7321
7322 2003-09-21  Havoc Pennington  <hp@pobox.com>
7323
7324         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7325         by default for message bus connections.
7326
7327         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7328         exit_on_disconnect flag is set and we process the disconnected
7329         signal.
7330         (dbus_connection_set_exit_on_disconnect): new function
7331
7332 2003-09-21  Havoc Pennington  <hp@pobox.com>
7333
7334         Get matching rules mostly working in the bus; only actually
7335         parsing the rule text remains. However, the client side of
7336         "signal connections" hasn't been started, this patch is only the
7337         bus side.
7338         
7339         * dbus/dispatch.c: fix for the matching rules changes
7340         
7341         * bus/driver.c (bus_driver_handle_remove_match)
7342         (bus_driver_handle_add_match): send an ack reply from these
7343         method calls
7344
7345         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7346         arguments, reported by Seth Nickell
7347
7348         * bus/config-parser.c (append_rule_from_element): support
7349         eavesdrop=true|false attribute on policies so match rules 
7350         can be prevented from snooping on the system bus.
7351
7352         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7353         and "destination" in attribute names; fix some docs bugs; 
7354         add eavesdrop=true|false attribute
7355
7356         * bus/driver.c (bus_driver_handle_add_match)
7357         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7358         messages
7359
7360         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7361         rid of broadcast service concept, signals are just always broadcast
7362
7363         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7364         mostly implement matching rules stuff (currently only exposed as signal
7365         connections)
7366
7367 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7368
7369         * doc/dbus-specification.sgml: Change the header field name
7370         to be an enum and update the rest of the spec to reference
7371         the fields using the conventinal name.
7372
7373         * dbus/dbus-protocol.h: update to reflect the spec.
7374
7375         * doc/TODO: add item to remove the 4 byte alignment requirement.
7376         
7377         * dbus/dbus-message.c: Remove the code to generalise the
7378         header/body length and serial number header fields as named
7379         header fields so we can reference field names using the 
7380         protocol values.
7381         (append_int_field), (append_uint_field), (append_string_field):
7382         Append the field name as a byte rather than four chars.
7383         (delete_int_or_uint_field), (delete_string_field): reflect the
7384         fact that the field name and typecode now occupy 4 bytes instead
7385         of 8.
7386         (decode_string_field), (decode_header_data): update to reflect
7387         protocol changes and move the field specific encoding from
7388         decode_string_field() back into decode_header_data().
7389         
7390         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7391         Add utility to aid debugging.
7392         
7393         * dbus/dbus-message-builder.c:
7394         (append_string_field), (_dbus_message_data_load): Update to
7395         reflect protocol changes; Change the FIELD_NAME directive
7396         to HEADER_FIELD and allow it to take the field's conventional
7397         name rather than the actual value.
7398         
7399         * test/data/*/*.message: Update to use HEADER_FIELD instead
7400         of FIELD_NAME; Always align the header on an 8 byte boundary
7401         *before* updating the header length.
7402
7403 2003-09-15  Havoc Pennington  <hp@pobox.com>
7404
7405         * dbus/dbus-pending-call.c: add the get/set object data
7406         boilerplate as for DBusConnection, etc. Use generic object data
7407         for the notify callback.
7408
7409         * glib/dbus-gparser.c (parse_node): parse child nodes
7410
7411         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7412         
7413         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7414         contain functions shared between the convenience lib and the
7415         installed lib
7416
7417         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7418         -export-symbols-regex to the GLib library
7419
7420         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7421         fix the locking in here, and add a default handler for
7422         Introspect() that just returns sub-nodes.
7423
7424 2003-09-14  Havoc Pennington  <hp@pobox.com>
7425
7426         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7427         rather than gfoo consistent
7428
7429         * glib/dbus-gproxy.h: delete for now, move contents to
7430         dbus-glib.h, because the include files don't work right since we
7431         aren't in the dbus/ subdir.
7432         
7433         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7434         (dbus_gproxy_end_call): finish
7435         (dbus_gproxy_begin_call): finish
7436
7437         * glib/dbus-gmain.c (dbus_set_g_error): new
7438
7439         * glib/dbus-gobject.c (handle_introspect): include information
7440         about child nodes in the introspection
7441
7442         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7443         function to help in implementation of introspection
7444
7445         * dbus/dbus-object-tree.c
7446         (_dbus_object_tree_list_registered_and_unlock): new function
7447
7448 2003-09-12  Havoc Pennington  <hp@pobox.com>
7449
7450         * glib/dbus-gidl.h: add common base class for all the foo_info
7451         types
7452
7453         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7454         similar to kdcop
7455
7456         * test/Makefile.am: try test srcdir -ef . in addition to test
7457         srcdir = ., one of them should work (yeah lame)
7458         
7459         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7460         library
7461         
7462         * glib/dbus-gparser.h: make description_load routines return
7463         NodeInfo* not Parser*
7464
7465         * Makefile.am (SUBDIRS): build test dir after all library dirs
7466
7467         * configure.in: add GTK+ detection
7468
7469 2003-09-07  Havoc Pennington  <hp@pobox.com>
7470
7471         * Make Doxygen contented.
7472
7473 2003-09-07  Havoc Pennington  <hp@pobox.com>
7474
7475         * doc/dbus-specification.sgml: more updates
7476
7477 2003-09-06  Havoc Pennington  <hp@pobox.com>
7478
7479         * doc/dbus-specification.sgml: partial updates
7480
7481         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7482         zillionth time; hopefully I edited the right file this time.
7483
7484         * bus/config-parser.c (append_rule_from_element): support
7485         send_type, send_path, receive_type, receive_path
7486
7487         * bus/policy.c: add message type and path to the list of things
7488         that can be "firewalled"
7489
7490 2003-09-06  Havoc Pennington  <hp@pobox.com>
7491
7492         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7493         (dbus_connection_register_object_path): make this not handle
7494         messages to paths below the given path
7495
7496 2003-09-03  Havoc Pennington  <hp@pobox.com>
7497
7498         * test/glib/Makefile.am: add this with random glib-linked test
7499         programs
7500
7501         * glib/Makefile.am: remove the random test programs from here,
7502         leave only the unit tests
7503
7504         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7505         uscore/javacaps conversion, and fix     
7506         (get_object_property, set_object_property): change to .NET
7507         convention for mapping props to methods, set_FooBar/get_FooBar, 
7508         since one language has such a convention we may as well copy it. 
7509         Plus real methods in either getFooBar or get_foo_bar style won't 
7510         collide with this convention.
7511
7512 2003-09-01  Havoc Pennington  <hp@pobox.com>
7513
7514         * glib/dbus-gparser.c: implement
7515
7516         * glib/dbus-gobject.c: start implementing skeletons support
7517
7518         * configure.in: when disabling checks/assert, also define
7519         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7520
7521 2003-09-01  Havoc Pennington  <hp@pobox.com>
7522
7523         * glib/Makefile.am: rearrange a bunch of files and get "make
7524         check" framework set up
7525
7526 2003-08-31  Havoc Pennington  <hp@pobox.com>
7527
7528         * fix build with --disable-tests
7529
7530 2003-08-30  Havoc Pennington  <hp@pobox.com>
7531
7532         * dbus/dbus-connection.c: purge DBusMessageHandler
7533
7534         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7535         use callbacks everywhere
7536
7537 2003-08-30  Havoc Pennington  <hp@pobox.com>
7538
7539         * test/data/valid-config-files/system.d/test.conf: change to 
7540         root for the user so warnings don't get printed
7541
7542         * dbus/dbus-message.c: add dbus_message_get_path,
7543         dbus_message_set_path
7544         
7545         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7546         dispatching to a path
7547
7548         * dbus/dbus-string.c (_dbus_string_validate_path): add
7549
7550         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7551         (_dbus_marshal_object_path): implement
7552
7553         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7554         to contain the path to the target object
7555         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7556         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7557
7558 2003-08-30  Havoc Pennington  <hp@pobox.com>
7559
7560         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7561
7562 2003-08-29  Havoc Pennington  <hp@pobox.com>
7563
7564         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7565         registered
7566         (struct DBusObjectSubtree): shrink this
7567         a lot, since we may have a lot of them
7568         (_dbus_object_tree_free_all_unlocked): implement
7569         (_dbus_object_tree_dispatch_and_unlock): implement
7570
7571 2003-08-29  Havoc Pennington  <hp@pobox.com>
7572
7573         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7574
7575 2003-08-28  Havoc Pennington  <hp@pobox.com>
7576
7577         purge DBusObjectID
7578         
7579         * dbus/dbus-connection.c: port to no ObjectID, create a
7580         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7581
7582         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7583         everything except UnregisterFunction and MessageFunction
7584         
7585         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7586         add DBUS_TYPE_OBJECT_PATH
7587         
7588         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7589         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7590         path-based object IDs
7591
7592 2003-08-25  Havoc Pennington  <hp@pobox.com>
7593
7594         Just noticed that dbus_message_test is hosed, I wonder when I
7595         broke that. I thought make check was passing earlier...
7596         
7597         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7598         container tree, will replace most of dbus-object-registry
7599
7600         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7601         screwup
7602
7603 2003-08-19  Havoc Pennington  <hp@pobox.com>
7604
7605         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7606         (dbus_message_is_error): fix this function
7607
7608         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7609         match
7610
7611         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7612         reflect clarified man page
7613         (bus_client_policy_check_can_send): ditto
7614         
7615         * bus/session.conf.in: fixup
7616
7617         * bus/system.conf.in: fixup
7618
7619 2003-08-18  Havoc Pennington  <hp@redhat.com>
7620
7621         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7622
7623         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7624         dumb bug created earlier (wrong order of args to
7625         decode_header_data())
7626         
7627         * tools/dbus-send.c: port
7628
7629         * tools/dbus-print-message.c (print_message): port
7630
7631         * test/data/*messages: port all messages over
7632         
7633         * dbus/dbus-message-builder.c: support including 
7634         message type
7635         
7636         * bus/driver.c: port over
7637         
7638         * bus/dispatch.c: port over to new stuff
7639
7640         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7641         rename disconnect signal to "Disconnected"
7642
7643 2003-08-17  Havoc Pennington  <hp@pobox.com>
7644
7645         This doesn't compile yet, but syncing up so I can hack on it from
7646         work. What are branches for if not broken code? ;-)
7647         
7648         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7649         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7650         DBUS_HEADER_FIELD_ERROR_NAME
7651         
7652         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7653         for the interface+member pairs
7654         (string_hash): change to use g_str_hash algorithm
7655         (find_direct_function, find_string_function): refactor these to
7656         share most code.
7657         
7658         * dbus/dbus-message.c: port all of this over to support 
7659         interface/member fields instead of name field
7660
7661         * dbus/dbus-object-registry.c: port over
7662         
7663         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7664         from _dbus_string_validate_name
7665
7666         * bus/dbus-daemon-1.1: change file format for the 
7667         <deny>/<allow> stuff to match new message naming scheme
7668
7669         * bus/policy.c: port over
7670
7671         * bus/config-parser.c: parse new format
7672         
7673 2003-08-16  Havoc Pennington  <hp@pobox.com>
7674
7675         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7676         broken assertion
7677
7678         * glib/dbus-gproxy.c: some hacking
7679
7680 2003-08-15  Havoc Pennington  <hp@redhat.com>
7681
7682         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7683
7684         * dbus/dbus-connection.c
7685         (dbus_connection_send_with_reply_and_block): factor out internals;
7686         change to convert any error replies to DBusError instead of 
7687         returning them as a message
7688
7689 2003-08-15  Havoc Pennington  <hp@pobox.com>
7690
7691         * dbus/dbus-connection.c, 
7692         dbus/dbus-pending-call.c: Finish the pending call stuff
7693
7694 2003-08-14  Havoc Pennington  <hp@redhat.com>
7695
7696         * dbus/dbus-pending-call.c: start on new object that will replace
7697         DBusMessageHandler and ReplyHandlerData for tracking outstanding
7698         replies
7699
7700         * dbus/dbus-gproxy.c: start on proxy object used to communicate
7701         with remote interfaces
7702
7703         * dbus/dbus-gidl.c: do the boring boilerplate in here
7704         
7705 2003-08-12  Havoc Pennington  <hp@pobox.com>
7706
7707         * bus/dispatch.c (bus_dispatch): make this return proper 
7708         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7709
7710         * dbus/dbus-errors.c (dbus_set_error): use
7711         _dbus_string_append_printf_valist
7712
7713         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7714         (_dbus_string_append_printf): new
7715
7716         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7717         UNKNOWN_METHOD
7718
7719         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7720         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7721         message is unhandled.
7722
7723 2003-08-11  Havoc Pennington  <hp@pobox.com>
7724
7725         * bus/test.c (client_disconnect_handler): change to return
7726         HANDLED (would have been REMOVE_MESSAGE)
7727
7728         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7729         HANDLED/NOT_YET_HANDLED instead of
7730         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
7731         should be used.
7732
7733 2003-08-10  Havoc Pennington  <hp@pobox.com>
7734
7735         * tools/dbus-send.c (main): add --type argument, for now
7736         supporting only method_call and signal types.
7737
7738         * tools/dbus-print-message.c: print message type
7739
7740         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7741         init connection->objects
7742
7743         * doc/dbus-specification.sgml: fix sgml
7744
7745         * bus/*.c: port over to object-instance API changes
7746
7747         * test/test-service.c: ditto
7748         
7749         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7750         name, we will have to fix up the rest of the code to also handle
7751         this
7752         (dbus_message_new): generic message-creation call
7753         (set_string_field): allow appending name field
7754
7755 2003-08-06  Havoc Pennington  <hp@pobox.com>
7756
7757         * dbus/dbus-object-registry.c: implement signal connection 
7758         and dispatch
7759
7760         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7761
7762         * dbus/dbus-internals.c (_dbus_memdup): new function
7763
7764 2003-08-02  Havoc Pennington  <hp@pobox.com>
7765
7766         * dbus/dbus-message.c (dbus_message_get_no_reply)
7767         (dbus_message_set_no_reply): add these and remove
7768         set_is_error/get_is_error
7769
7770         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
7771         remove the ERROR flag, since there's now an ERROR type
7772
7773 2003-08-01  Havoc Pennington  <hp@pobox.com>
7774
7775         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7776         implement
7777
7778         * dbus/dbus-message.c (dbus_message_get_type): new function
7779
7780         * doc/dbus-specification.sgml: add "type" byte to messages
7781
7782 2003-08-01  Havoc Pennington  <hp@pobox.com>
7783
7784         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7785         a message type enum to distinguish kinds of message
7786         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
7787         that need not be replied to
7788
7789 2003-08-01  Havoc Pennington  <hp@pobox.com>
7790
7791         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7792         (unpack_8_octets): fix no-64-bit-int bug
7793
7794         * dbus/dbus-object-registry.c (validate_id): validate the 
7795         connection ID bits, not just the instance ID.
7796
7797         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7798         the connection-global 33 bits of the object ID
7799
7800         * dbus/dbus-object-registry.c (info_from_entry): fill in 
7801         object ID in the new way
7802
7803         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
7804         define server/client/instance bits.
7805
7806 2003-07-30  Havoc Pennington  <hp@pobox.com>
7807
7808         * dbus/dbus-connection.c (dbus_connection_register_object): fix
7809         build
7810
7811 2003-07-13  Havoc Pennington  <hp@pobox.com>
7812
7813         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7814         fields to DBusObjectVTable and DBusObjectInfo
7815
7816 2003-07-12  Havoc Pennington  <hp@pobox.com>
7817
7818         * dbus/dbus-object-registry.c: implement unit test,
7819         fix bugs discovered in process
7820
7821         * dbus/dbus-connection.c: remove handler_table and
7822         register_handler(), add DBusObjectRegistry usage
7823
7824         * dbus/dbus-objectid.c (dbus_object_id_is_null)
7825         (dbus_object_id_set_null): new functions
7826
7827 2003-07-08  Havoc Pennington  <hp@pobox.com>
7828
7829         * dbus/dbus-object.c: implement some of this
7830
7831         * dbus/dbus-object-registry.c
7832         (_dbus_object_registry_add_and_unlock): fill in the object_id out
7833         param
7834         (_dbus_object_registry_new): handle OOM
7835
7836 2003-07-08  Havoc Pennington  <hp@pobox.com>
7837
7838         * dbus/dbus-object.h: sketch out an API for registering objects
7839         with a connection, that allows us to use as little as 24 bytes
7840         per object and lets application code represent an object in 
7841         any conceivable way.
7842
7843         * dbus/dbus-object-registry.c: implement the hard bits of the
7844         DBusConnection aspect of object API. Not yet wired up.
7845         
7846 2003-07-06  Havoc Pennington  <hp@pobox.com>
7847
7848         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7849         (_dbus_marshal_object_id): new
7850         (_dbus_demarshal_object_id): new
7851         (_dbus_marshal_get_arg_end_pos): support object ID type, and
7852         consolidate identical switch cases. Don't conditionalize handling
7853         of DBUS_TYPE_UINT64, need to handle the type always.
7854         (_dbus_marshal_validate_arg): consolidate identical cases, and
7855         handle DBUS_TYPE_OBJECT_ID
7856
7857         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7858
7859         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7860
7861 2003-09-28  Havoc Pennington  <hp@pobox.com>
7862
7863         * real 0.13 release
7864
7865 2003-09-28  Havoc Pennington  <hp@pobox.com>
7866
7867         * doc/Makefile.am (dbus-specification.html): testing a funky hack
7868         to work with Debian db2html
7869
7870 2003-09-28  Havoc Pennington  <hp@pobox.com>
7871
7872         * configure.in: 0.13
7873
7874         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7875         stylesheet-images for benefit of Debian
7876         
7877         Change back to using filesystem-linked sockets for the system
7878         bus, so only root can create the default system bus address.
7879         
7880         * bus/system.conf.in: change to use
7881         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7882
7883         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7884         from here.
7885
7886         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7887         here, and AC_DEFINE DBUS_SYSTEM_PATH
7888
7889 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7890
7891         * doc/TODO:
7892         * doc/busconfig.dtd:
7893         Add busconfig DTD.
7894         
7895 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7896
7897         * doc/dbus-specification.sgml:
7898         Add activation reply values.
7899         
7900 2003-08-05  Havoc Pennington  <hp@redhat.com>
7901
7902         * configure.in: 0.12
7903
7904 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
7905
7906         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7907         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7908         (add_watch), (remove_watch), (create_source):
7909         Refcount fds, fixes some reentrancy issues.
7910         
7911 2003-07-30  Havoc Pennington  <hp@redhat.com>
7912
7913         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7914         bus address to be abstract if we have abstract sockets
7915
7916         * NEWS: update
7917
7918 2003-07-28  Havoc Pennington  <hp@redhat.com>
7919
7920         * bus/messagebus.in: fix to avoid processname/servicename 
7921         confusion, from Michael Kearey
7922         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7923         
7924 2003-07-23  Havoc Pennington  <hp@pobox.com>
7925
7926         * dbus/dbus-message.c (dbus_message_iter_get_named): 
7927         fix from Andy Hanton to remove broken "+1"
7928
7929 2003-07-16  Havoc Pennington  <hp@pobox.com>
7930
7931         * tools/dbus-launch.c (babysit): close stdout/stderr in the
7932         babysitter process, as suggested by Thomas Leonard, so 
7933         an "eval `dbus-launch --exit-with-session`" will actually 
7934         return
7935
7936 2003-07-16  Havoc Pennington  <hp@pobox.com>
7937
7938         * configure.in: print out EXPANDED_* variables in the summary at
7939         the end; clean up the code that computes EXPANDED_ variables and
7940         get the ones using exec_prefix right. Should make things work
7941         when you build without --prefix
7942
7943 2003-06-29  Havoc Pennington  <hp@pobox.com>
7944
7945         * mono/Test.cs (class Test): fire up a main loop and run it
7946
7947         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
7948         done once, the app has to do it
7949
7950 2003-06-26  Havoc Pennington  <hp@pobox.com>
7951
7952         * mono/Connection.cs: set up connection with the glib main loop
7953
7954 2003-07-01  Havoc Pennington  <hp@redhat.com>
7955
7956         * doc/dbus-specification.sgml: clarify the format of a type code,
7957         change suggested by Jim Blandy
7958
7959 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
7960
7961         * doc/Makefile.am:
7962         * tools/Makefile.am: Don't assume srcdir == builddir.
7963
7964         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
7965         the allocated block.
7966         (_dbus_memory_test): New function.
7967         * dbus/dbus-test.h: Add _dbus_memory_test ().
7968         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
7969
7970         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
7971         of %c%c%c%c.
7972         (dbus_message_new): Remove obsolete @todo.
7973
7974         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
7975         (_dbus_marshal_set_uint64): Fix comment.
7976
7977         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
7978         hardcode FIELD_REPLY_SERIAL.
7979
7980         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
7981         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
7982
7983         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
7984         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
7985
7986 2003-06-24  Havoc Pennington  <hp@pobox.com>
7987
7988         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
7989
7990 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
7991
7992         * configure.in:
7993         * gcj/.cvsignore:
7994         * gcj/Hello.java:
7995         * gcj/Makefile.am:
7996         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
7997         * gcj/org/.cvsignore:
7998         * gcj/org/Makefile.am:
7999         * gcj/org/freedesktop/.cvsignore:
8000         * gcj/org/freedesktop/Makefile.am:
8001         * gcj/org/freedesktop/dbus/.cvsignore:
8002         * gcj/org/freedesktop/dbus/Makefile.am:
8003         * gcj/org/freedesktop/dbus/Message.java: (Message),
8004         (Message.Message):
8005         * gcj/org/freedesktop/dbus/natMessage.cc:
8006         Fix the build system.
8007
8008 2003-06-22  Havoc Pennington  <hp@pobox.com>
8009
8010         * mono/Connection.cs: add more bindings
8011
8012         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8013         more than once.
8014
8015 2003-06-22  Havoc Pennington  <hp@pobox.com>
8016
8017         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8018         Start wrapping more stuff.
8019
8020 2003-06-22  Havoc Pennington  <hp@pobox.com>
8021
8022         * mono/Message.cs: implement Message.Wrap() that ensures we only
8023         have a single C# wrapper per DBusMessage, assuming it works which
8024         it probably doesn't.
8025
8026         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8027         (dbus_message_free_data_slot): new
8028         (dbus_message_set_data): new
8029         (dbus_message_get_data): new
8030
8031 2003-06-22  Havoc Pennington  <hp@pobox.com>
8032
8033         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8034         (_dbus_data_slot_allocator_alloc): rework these to keep a
8035         reference count on each slot and automatically manage a global
8036         slot ID variable passed in by address
8037
8038         * bus/bus.c: convert to new dataslot API
8039
8040         * dbus/dbus-bus.c: convert to new dataslot API
8041
8042         * dbus/dbus-connection.c: convert to new dataslot API
8043
8044         * dbus/dbus-server.c: convert to new dataslot API
8045
8046         * glib/dbus-gmain.c: ditto
8047
8048         * bus/test.c: ditto
8049
8050         * bus/connection.c: ditto
8051
8052 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8053
8054         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8055         after the gcj checks so that the correct configuration tags
8056         will be added to libtool.
8057
8058         * dbus-glib-1.pc.in: No need to specify any includes since
8059         dbus-1.pc.in has those.
8060
8061 2003-06-22  Havoc Pennington  <hp@pobox.com>
8062
8063         * mono/*, gcj/*, configure.in, Makefile.am:
8064         Check in makefiles and subdirs for mono and gcj bindings.
8065         Neither binding actually exists, just trying to get through
8066         all the build and other boring bits.
8067
8068 2003-06-21  Philip Blundell  <philb@gnu.org>
8069
8070         * tools/dbus-monitor.1: Updated.
8071
8072         * tools/dbus-send.1: Likewise.
8073
8074 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8075
8076         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8077         for hangup and error after checking read so we won't discard
8078         pending data if both hangup and read are set.
8079
8080 2003-06-19  Philip Blundell  <philb@gnu.org>
8081
8082         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8083
8084         * tools/dbus-send.c: Accept both --system and --session.
8085
8086         * tools/dbus-monitor.c: Same here.
8087
8088 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8089
8090         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8091         from C++ (Patch by Miloslav Trmac).
8092
8093 2003-06-15  Joe Shaw  <joe@assbarn.com>
8094
8095         * configure.in: Check for socklen_t.
8096
8097         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8098
8099         * test/test-segfault.c: Add #include <sys/time.h>
8100
8101         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8102         dbus-launch needs it.
8103
8104 2003-06-09  Havoc Pennington  <hp@redhat.com>
8105
8106         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8107         SUN_LEN, it breaks abstract socket usage
8108
8109         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8110         starts of lines.
8111
8112 2003-06-04  Havoc Pennington  <hp@pobox.com>
8113
8114         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8115         using unix:abstract=/foo, and when listening in a tmpdir
8116         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8117
8118         * dbus/dbus-transport.c (_dbus_transport_open): support
8119         unix:abstract=/foo
8120
8121         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8122         support abstract sockets
8123
8124         * dbus/dbus-transport-unix.c
8125         (_dbus_transport_new_for_domain_socket): support abstract sockets
8126
8127         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8128         toggle as an argument, implement abstract namespace support
8129         (_dbus_listen_unix_socket): ditto
8130
8131         * configure.in: add --enable-abstract-sockets and implement
8132         a configure check for autodetection of the right value.
8133
8134 2003-06-01  Havoc Pennington  <hp@pobox.com>
8135
8136         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8137         in /tmp (though on Linux this will end up being useless,
8138         when we add abstract namespace support)
8139
8140         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8141         subst'ing it
8142
8143 2003-05-28  Colin Walters  <walters@verbum.org>
8144
8145         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8146
8147 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8148
8149         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8150
8151 2003-05-17  Colin Walters  <walters@gnu.org>
8152
8153         * tools/dbus-send.c: Don't exit with an error code if --help was
8154         passed.  Default to using the session bus instead of the system
8155         one.
8156
8157         * tools/dbus-launch.c: Ditto.
8158
8159         * tools/dbus-monitor.c: Ditto.
8160
8161         * tools/dbus-send.1: Update with new arguments.
8162
8163         * tools/dbus-launch.c: Emit code to export variables.  New
8164         arguments -s and -c to specify shell syntax, and a bit of code to
8165         autodetect syntax.  Also, allow specifying a program to run.
8166
8167         * tools/dbus-launch.1: Update with new arguments.
8168
8169         * tools/dbus-send.1: Ditto.
8170
8171         * tools/dbus-monitor.1: Ditto.
8172
8173 2003-05-17  Havoc Pennington  <hp@pobox.com>
8174
8175         * bus/config-parser.c (merge_included): merge in policies from
8176         child configuration file.
8177
8178         * bus/policy.c (bus_policy_merge): function to merge two policies
8179         together
8180
8181 2003-05-16  Havoc Pennington  <hp@redhat.com>
8182
8183         * dbus/dbus-connection.c: disable verbose lock spew
8184
8185         * tools/dbus-send.c: add --print-reply command line option
8186
8187         * tools/dbus-print-message.h (print_message): new util function
8188         shared by dbus-send and dbus-monitor
8189
8190         * tools/dbus-monitor.c (handler_func): exit on disconnect
8191
8192         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8193         disconnected, don't try to use the read_watch
8194
8195         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8196         so we can find this bug more easily
8197
8198 2003-05-16  Havoc Pennington  <hp@redhat.com>
8199
8200         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8201         NULL as DBusHashTable is annoyingly likely to do.
8202
8203 2003-05-16  Colin Walters  <walters@verbum.org>
8204
8205         * tools/dbus-monitor.c: Add --session argument and usage()
8206         function.
8207
8208         * tools/dbus-monitor.1: Update with new --session arg.
8209
8210         * bus/Makefile.am (install-data-hook): Create
8211         $(libdir)/dbus-1.0/services so that the session bus is happy.
8212
8213 2003-05-15  Havoc Pennington  <hp@redhat.com>
8214
8215         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8216         on non-x86. ifdef's are evil.
8217
8218 2003-05-15  Havoc Pennington  <hp@redhat.com>
8219
8220         * configure.in: 0.11
8221
8222         * NEWS: update
8223
8224         * bus/Makefile.am (initddir): apparently we are supposed to put
8225         init scripts in /etc/rc.d/init.d not /etc/init.d
8226
8227         * bus/Makefile.am: remove the "you must --enable-tests to make
8228         check" as it broke distcheck
8229
8230         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8231
8232 2003-05-13  James Willcox  <jwillcox@gnome.org>
8233
8234         * configure.in:
8235         * bus/activation.c: (bus_activation_service_created),
8236         (bus_activation_activate_service):
8237         * bus/driver.c: (bus_driver_send_service_deleted),
8238         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8239         (bus_driver_send_service_acquired),
8240         (bus_driver_send_welcome_message),
8241         (bus_driver_handle_list_services):
8242         * bus/session.conf.in:
8243         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8244         (dbus_bus_service_exists), (dbus_bus_activate_service):
8245         * dbus/dbus-bus.h:
8246
8247         Add some convenience API which lets you activate a service, and did a
8248         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8249         and dbus_message_get_args()
8250
8251 2003-05-11  Havoc Pennington  <hp@pobox.com>
8252
8253         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8254         calling _dbus_marshal_validate_arg() for every byte in a byte
8255         array, etc.
8256
8257         * dbus/dbus-message-handler.c: use atomic reference counting to
8258         reduce number of locks slightly; the global lock in here sucks
8259
8260         * dbus/dbus-connection.c
8261         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8262         update_dispatch_status that can be called with lock held; then use
8263         in a couple places to reduce locking/unlocking
8264         (dbus_connection_send): hold the lock over the whole function
8265         instead of acquiring it twice.
8266
8267         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8268
8269         * bus/connection.c (bus_connections_setup_connection): fix access
8270         to already-freed memory.
8271
8272         * dbus/dbus-connection.c: keep a little cache of linked list
8273         nodes, to avoid using the global linked list alloc lock in the
8274         normal send-message case. Instead we just use the connection lock
8275         that we already have to take.
8276
8277         * dbus/dbus-list.c (_dbus_list_find_last): new function
8278
8279         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8280         change to use a struct for the atomic type; fix docs,
8281         they return value before increment, not after increment.
8282
8283         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8284         (_dbus_string_append_8_aligned): new functions to try to
8285         microoptimize this operation.
8286         (reallocate_for_length): break this out of set_length(), to
8287         improve profile info, and also so we can consider inlining the
8288         set_length() part.
8289
8290         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8291         strings with some preallocation, cuts down on our calls to realloc
8292         a fair bit. Though if we can get the "move entire string to empty
8293         string" optimization below to kick in here, it would be better.
8294
8295         * dbus/dbus-string.c (_dbus_string_move): just call
8296         _dbus_string_move_len
8297         (_dbus_string_move_len): add a special case for moving
8298         an entire string into an empty string; we can just
8299         swap the string data instead of doing any reallocs.
8300         (_dbus_string_init_preallocated): new function
8301
8302 2003-05-11  Havoc Pennington  <hp@pobox.com>
8303
8304         Write a "test-profile" that does echo client-server with threads;
8305         profile reveals lock contention, memcpy/realloc of buffers, and
8306         UTF-8 validation as hot spots. 20% of lock contention eliminated
8307         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8308         contention is global mempool locks for GList and DBusList.
8309
8310         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8311         x86 implementation
8312
8313         * dbus/dbus-connection.c (struct DBusConnection): use
8314         dbus_atomic_t for the reference count
8315
8316         * dbus/dbus-message.c (struct DBusMessage): declare
8317         dbus_atomic_t values as volatile
8318
8319         * configure.in: code to detect ability to use atomic integer
8320         operations in assembly, from GLib patch
8321
8322         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8323         time, tired of it being wrong in threads and forked processes
8324
8325         * glib/test-profile.c: a little program to bounce messages back
8326         and forth between threads and eat CPU
8327
8328         * dbus/dbus-connection.c: add debug spew macros for debugging
8329         thread locks; include config.h at top; fix deadlock in
8330         dbus_connection_flush()
8331
8332 2003-05-08  Havoc Pennington  <hp@pobox.com>
8333
8334         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8335         data from getting written, and there wasn't a good reason to
8336         use _exit really.
8337
8338         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8339         dbus_verbose lines in test coverage
8340         (main): add list of functions sorted by # of untested blocks
8341         to the coverage report
8342
8343         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8344
8345         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8346
8347         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8348         extend test coverage
8349
8350         * test/data/auth/cancel.auth-script: test canceling an
8351         authentication
8352
8353         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8354         aren't used. in CVS history if we end up needing them.
8355
8356 2003-05-04  Havoc Pennington  <hp@pobox.com>
8357
8358         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8359         unit test
8360
8361         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8362         function, which assumed length was in # of strings, not bytes
8363
8364         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8365         missing coverage
8366
8367         * dbus/dbus-connection.c
8368         (_dbus_connection_queue_received_message): disable function for
8369         now, we are only using it in test mode
8370
8371         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8372         remove a mistaken FIXME
8373
8374 2003-05-04  Havoc Pennington  <hp@pobox.com>
8375
8376         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8377         unlock mutex on successful return, patch from Anders Gustafsson
8378
8379 2003-05-04  Havoc Pennington  <hp@pobox.com>
8380
8381         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8382         Anders Gustafsson
8383
8384 2003-05-04  Havoc Pennington  <hp@pobox.com>
8385
8386         * tools/dbus-launch.c: implement
8387
8388         * bus/main.c (main), bus/bus.c (bus_context_new):
8389         implement --print-pid and --fork
8390
8391 2003-05-03  Havoc Pennington  <hp@redhat.com>
8392
8393         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8394         the address had no value, and add to test suite. Fix and
8395         regression test from Miloslav Trmac
8396
8397 2003-05-03  Havoc Pennington  <hp@pobox.com>
8398
8399         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8400         watch is invalid when handled
8401
8402         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8403         dbus-launch utility to launch the bus from a shell script.  Didn't
8404         actually implement dbus-launch yet, it's just a placeholder still.
8405
8406 2003-05-03  Havoc Pennington  <hp@pobox.com>
8407
8408         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8409         daemon; also documents daemon config file, so replaces
8410         doc/config-file.txt. Corrected some stuff from config-file.txt in
8411         the process of moving it.
8412
8413 2003-05-03  Havoc Pennington  <hp@pobox.com>
8414
8415         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8416         add some man pages
8417
8418 2003-05-03  Colin Walters  <walters@verbum.org>
8419
8420         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8421         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8422
8423         * Makefile.am: Update to use new .pc versioning scheme.
8424
8425 2003-05-02  Havoc Pennington  <hp@redhat.com>
8426
8427         * bus/system.conf.in: allow send/receive to/from message bus
8428         service
8429
8430 2003-04-30  Havoc Pennington  <hp@redhat.com>
8431
8432         * configure.in: print a note when building with unit tests and
8433         without assertions
8434
8435 2003-04-30  Havoc Pennington  <hp@redhat.com>
8436
8437         * Makefile.am: add a check-local that complains if you didn't
8438         configure with --enable-tests
8439
8440 2003-04-29  Havoc Pennington  <hp@redhat.com>
8441
8442         * glib/dbus-gmain.c: docs cleanups
8443
8444         * dbus/dbus-types.h: add docs on int64 types
8445
8446         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8447         public API docs section
8448
8449 2003-04-29  Havoc Pennington  <hp@redhat.com>
8450
8451         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8452         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8453         parallel install API version, not with the D-BUS package version.
8454
8455         * HACKING: move some of README over here
8456
8457         * README: updates, and document API/ABI policy
8458
8459         * configure.in: reindentation
8460
8461 2003-04-29  Havoc Pennington  <hp@redhat.com>
8462
8463         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8464         to use this library" to be sure people have the right
8465         expectations.
8466
8467 2003-04-28  Havoc Pennington  <hp@redhat.com>
8468
8469         * configure.in: add --enable-docs which by default is auto yes if
8470         doxygen and db2html found, no otherwise; but can be forced on/off
8471
8472         * doc/Makefile.am: conditionalize whether to build docs on
8473         --enable-docs
8474
8475 2003-04-28  Havoc Pennington  <hp@redhat.com>
8476
8477         * configure.in: 0.10
8478
8479         * NEWS: update
8480
8481         * bus/system.conf.in: add <includedir>system.d</includedir>
8482
8483         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8484         username was provided but not uid
8485
8486         * bus/config-parser.c (struct BusConfigParser): keep track of
8487         whether the parser is toplevel or was included; change some
8488         of the error handling if it's included.
8489
8490 2003-04-27  Havoc Pennington  <hp@pobox.com>
8491
8492         Unbreak my code...
8493
8494         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8495         report correct status if we finish processing authentication
8496         inside this function.
8497
8498         * bus/activation.c (try_send_activation_failure): use
8499         bus_transaction_send_error_reply
8500
8501         * bus/connection.c (bus_connection_get_groups): return an error
8502         explaining the problem
8503
8504         * bus/bus.c (bus_context_check_security_policy): implement
8505         restriction here that inactive connections can only send the
8506         hello message. Also, allow bus driver to send anything to
8507         any recipient.
8508
8509         * bus/connection.c (bus_connection_complete): create the
8510         BusClientPolicy here instead of on-demand.
8511         (bus_connection_get_policy): don't return an error
8512
8513         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8514         sender field in message being replied to
8515
8516         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8517         causing it to return FALSE always
8518
8519         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8520         we checked sender rather than destination
8521
8522 2003-04-25  Havoc Pennington  <hp@redhat.com>
8523
8524         test suite is slightly hosed at the moment, will fix soon
8525
8526         * bus/connection.c (bus_connections_expire_incomplete): fix to
8527         properly disable the timeout when required
8528         (bus_connection_set_name): check whether we can remove incomplete
8529         connections timeout after we complete each connection.
8530
8531         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8532         probably still broken.
8533
8534         * bus/services.c (bus_registry_acquire_service): implement max
8535         number of services owned, and honor allow/deny rules on which
8536         services a connection can own.
8537
8538         * bus/connection.c (bus_connection_get_policy): report errors here
8539
8540         * bus/activation.c: implement limit on number of pending
8541         activations
8542
8543 2003-04-25  Havoc Pennington  <hp@redhat.com>
8544
8545         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8546         where we used >= 0 instead of != DBUS_UID_UNSET.
8547
8548 2003-04-25  Havoc Pennington  <hp@redhat.com>
8549
8550         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8551         were toggled without add/remove, fix from Anders Gustafsson
8552
8553 2003-04-24  Havoc Pennington  <hp@redhat.com>
8554
8555         * test/data/valid-config-files/basic.conf: add <limit> tags to
8556         this test
8557
8558         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8559         <limit> tag in configuration file.
8560
8561 2003-04-24  Havoc Pennington  <hp@redhat.com>
8562
8563         * bus/dispatch.c: somehow missed some name_is
8564
8565         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8566         (_dbus_timeout_set_interval): new
8567
8568         * bus/connection.c (bus_connections_setup_connection): record time
8569         when each connection is first set up, and expire them after the
8570         auth timeout passes.
8571
8572 2003-04-24  Havoc Pennington  <hp@redhat.com>
8573
8574         * dbus/dbus-message.c (dbus_message_name_is): rename
8575         (dbus_message_service_is): rename
8576         (dbus_message_sender_is): rename
8577         (dbus_message_get_service): rename
8578
8579 2003-04-24  Havoc Pennington  <hp@redhat.com>
8580
8581         * configure.in: add --enable-checks
8582
8583         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8584
8585         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8586         to use thread locks.
8587         (_dbus_connection_handler_destroyed_locked): move some private
8588         functions into proper docs group
8589
8590         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8591         _dbus_return_val_if_fail
8592
8593         Throughout: use dbus_return_if_fail
8594
8595 2003-04-23  James Willcox  <jwillcox@gnome.org>
8596
8597         * glib/dbus-glib.h:
8598         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8599         (dbus_connection_setup_with_g_main),
8600         (dbus_server_setup_with_g_main):
8601         * glib/test-dbus-glib.c: (main):
8602         * glib/test-thread-client.c: (main):
8603         * glib/test-thread-server.c: (new_connection_callback), (main):
8604         * tools/dbus-monitor.c: (main):
8605
8606         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8607         and dbus_server_setup_with_g_main().
8608
8609 2003-04-20  Havoc Pennington  <hp@pobox.com>
8610
8611         * doc/dbus-specification.sgml: document the restrictions on
8612         message and service names
8613
8614 2003-04-22  Havoc Pennington  <hp@redhat.com>
8615
8616         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8617         support, and do some code cleanups to share more code and
8618         speed up array marshal/demarshal.
8619
8620         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8621
8622         * configure.in: generate dbus-arch-deps.h
8623
8624         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8625         64-bit typecodes
8626
8627 2003-04-22  Havoc Pennington  <hp@redhat.com>
8628
8629         * test/data/valid-messages/opposite-endian.message: fix test
8630         to use proper type for rply field
8631
8632         * test/data/invalid-messages: add tests for below validation
8633
8634         * dbus/dbus-message.c (decode_header_data): validate field types,
8635         and validate that named fields are valid names
8636         (decode_name_field): consider messages in the
8637         org.freedesktop.Local. namespace to be invalid.
8638
8639         * dbus/dbus-string.c (_dbus_string_validate_name): new
8640
8641 2003-04-19  Havoc Pennington  <hp@pobox.com>
8642
8643         * bus/driver.c (bus_driver_handle_hello): check limits and
8644         return an error if they are exceeded.
8645
8646         * bus/connection.c: maintain separate lists of active and inactive
8647         connections, and a count of each. Maintain count of completed
8648         connections per user. Implement code to check connection limits.
8649
8650         * dbus/dbus-list.c (_dbus_list_unlink): export
8651
8652         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8653         number of bytes in the message queue for a connection
8654
8655 2003-04-18  Havoc Pennington  <hp@pobox.com>
8656
8657         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8658
8659         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8660         memleaks
8661
8662         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8663         on realloc be sure to update the pointer in the keyring
8664
8665         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8666         offset to avoid writing to unallocated memory
8667
8668         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8669         try the next mechanism, so we properly handle OOM
8670
8671         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8672         on OOM.
8673         (_dbus_keyring_new): fix OOM bug
8674         (_dbus_keyring_new_homedir): always set error; impose a maximum
8675         number of keys we'll load from the file, mostly to speed up the
8676         test suite and make its OOM checks more useful, but also for
8677         general sanity.
8678
8679         * dbus/dbus-auth.c (process_error_server): reject authentication
8680         if we get an error from the client
8681         (process_cancel): on cancel, send REJECTED, per the spec
8682         (process_error_client): send CANCEL if we get an error from the
8683         server.
8684
8685 2003-04-18  Havoc Pennington  <hp@pobox.com>
8686
8687         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8688         debug spew
8689
8690         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8691         handling problem
8692
8693         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8694         about DBUS_TEST_HOMEDIR once
8695
8696         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8697         the environment
8698
8699         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8700         config file so we test the right thing
8701
8702         Throughout: assorted docs improvements
8703
8704 2003-04-18  Havoc Pennington  <hp@pobox.com>
8705
8706         * glib/dbus-gmain.c: adapt to watch changes
8707
8708         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8709
8710         * dbus/dbus-server.h: remove dbus_server_handle_watch
8711
8712         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8713
8714         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8715         like DBusTimeout, so we don't need dbus_connection_handle_watch
8716         etc.
8717
8718 2003-04-17  Havoc Pennington  <hp@redhat.com>
8719
8720         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8721         database usage so it all goes via the DBusUserDatabase cache.
8722
8723 2003-04-17  Havoc Pennington  <hp@redhat.com>
8724
8725         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8726         there was an OOM watch we skipped, we always return TRUE so we
8727         iterate again to have a look at it again. Fixes test suite hang.
8728         Code rearrangement also lets us lose some memset and only iterate
8729         over callbacks once.
8730
8731         * bus/driver.c (bus_driver_handle_message): sense of test for
8732         reply was backward
8733
8734 2003-04-16  Havoc Pennington  <hp@pobox.com>
8735
8736         * doc/dbus-specification.sgml: make spec say serials are unsigned
8737
8738         * dbus/dbus-message.h: change message serials to unsigned
8739
8740         * dbus/dbus-connection.c: adapt to message serials being unsigned
8741
8742 2003-04-15  Havoc Pennington  <hp@pobox.com>
8743
8744         * bus/bus.c: create and keep around a shared DBusUserDatabase
8745         object.
8746
8747         * bus/connection.c (bus_connection_get_groups): don't cache
8748         groups for user in the connection object, since user database
8749         object now does that.
8750
8751 2003-04-16  Havoc Pennington  <hp@redhat.com>
8752
8753         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8754         list of size counters
8755         (_dbus_message_loader_putback_message_link): put back a popped link
8756
8757         * dbus/dbus-connection.c
8758         (dbus_connection_set_max_live_messages_size): rename
8759         max_received_size
8760         (dbus_connection_get_outgoing_size): get size of outgoing
8761         queue
8762         (_dbus_connection_set_connection_counter): remove this cruft
8763
8764 2003-04-14  Havoc Pennington  <hp@redhat.com>
8765
8766         * dbus/dbus-userdb.c: user database abstraction, mostly to get
8767         caching, but at some point we might want to be able to use a
8768         different database.
8769
8770         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8771         SHA1 conf file to test the sha1 auth mechanism, since the regular
8772         test always uses EXTERNAL when available.
8773
8774         * configure.in,
8775         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8776         add conf file that requires use of sha1 auth
8777
8778 2003-04-13  Havoc Pennington  <hp@pobox.com>
8779
8780         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8781         from Philip Blundell to send messages and monitor them.
8782
8783 2003-04-13  Havoc Pennington  <hp@pobox.com>
8784
8785         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8786         callbacks
8787
8788         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8789         users
8790
8791         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8792         fix to only recover unused bytes if we're already authenticated
8793         (_dbus_transport_get_is_authenticated): fix to still mark us
8794         authenticated if there are unused bytes.
8795
8796         * bus/dispatch.c: implement security policy checking
8797
8798         * bus/connection.c (bus_transaction_send_from_driver): new
8799
8800         * bus/bus.c (bus_context_check_security_policy): new
8801
8802         * bus/dispatch.c (send_service_nonexistent_error): delete this,
8803         now we just set the DBusError and it gets converted to an error
8804         reply.
8805
8806         * bus/connection.c (allow_user_function): enable code using actual
8807         data from the config file
8808
8809         * bus/policy.c (list_allows_user): handle wildcard rules for
8810         user/group connection perms
8811
8812 2003-04-13  Havoc Pennington  <hp@pobox.com>
8813
8814         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8815
8816         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8817
8818         * bus/policy.c (bus_policy_append_mandatory_rule)
8819         (bus_policy_append_default_rule, bus_policy_append_user_rule)
8820         (bus_policy_append_group_rule): new functions
8821
8822 2003-04-12  Havoc Pennington  <hp@pobox.com>
8823
8824         * bus/config-parser.c (bus_config_parser_new): fix a memleak
8825
8826         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8827         the pid/gid/uid, just for paranoia.
8828
8829         * test/break-loader.c (randomly_do_n_things): find a byte
8830         containing a type code, and randomly change it to a different
8831         type code.
8832
8833 2003-04-12  Havoc Pennington  <hp@pobox.com>
8834
8835         * bus/policy.h: change BusPolicy to be the thing from the config
8836         file, and rename old BusPolicy to BusClientPolicy
8837
8838         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8839         match change in how policy works
8840
8841         * dbus/dbus-internals.h: mark assert_not_reached as
8842         __attribute((noreturn))__
8843
8844 2003-04-11  Havoc Pennington  <hp@redhat.com>
8845
8846         * doc/dbus-specification.sgml: fix a spot with the wrong name for
8847         the broadcast service. Use boolean return for ServiceExists.
8848
8849 2003-04-11  Havoc Pennington  <hp@redhat.com>
8850
8851         * configure.in: add another directory to look for qt in.
8852
8853 2003-04-11  Havoc Pennington  <hp@redhat.com>
8854
8855         * AUTHORS: add Colin Walters
8856
8857 2003-04-11  Havoc Pennington  <hp@redhat.com>
8858
8859         * NEWS: update
8860
8861         * configure.in: 0.9
8862
8863 2003-04-11  Havoc Pennington  <hp@redhat.com>
8864
8865         * bus/messagebus.in: remove pid file when stopping the
8866         message bus, since the bus won't have privileges to remove it
8867         itself.
8868
8869 2003-04-11  Havoc Pennington  <hp@redhat.com>
8870
8871         * bus/bus.c (bus_context_new): move credentials change after
8872         creating pidfile
8873
8874 2003-04-11  Havoc Pennington  <hp@pobox.com>
8875
8876         * test/decode-gcov.c: add "below average functions" to the
8877         coverage report, and change how some of the code works.
8878
8879         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8880         not in the coverage stats.
8881
8882         * test/test-service.c (main): use _dbus_verbose not fprintf in a
8883         couple places so running the test suite doesn't result in megaspam.
8884
8885 2003-04-11  Havoc Pennington  <hp@pobox.com>
8886
8887         * bus/dispatch.c (check_existent_service_activation): accept a no
8888         memory error in a place we didn't before
8889
8890         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8891         in case the first one failed," since the test suite is less
8892         broken now.
8893
8894 2003-04-10  Havoc Pennington  <hp@pobox.com>
8895
8896         * bus/dispatch.c (check_segfault_service_activation): add test
8897         for launching an executable that just crashes.
8898
8899         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8900         don't leave a million cores. We'll see how portable this is.
8901
8902 2003-04-10  Havoc Pennington  <hp@pobox.com>
8903
8904         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8905         the possible parent failures before we fork, so that we don't
8906         fail to create a babysitter after creating the child.
8907
8908         * bus/activation.c (bus_activation_activate_service): kill child
8909         if we don't successfully complete the activation.
8910
8911 2003-04-10  Havoc Pennington  <hp@redhat.com>
8912
8913         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8914         the connection if it's disconnected
8915
8916         * bus/activation.c (bus_activation_service_created): use new
8917         transaction features to roll back removal of pending activation if
8918         we don't successfully create the service after all. Don't remove
8919         pending activation if the function fails.
8920
8921         * dbus/dbus-list.c (_dbus_list_insert_before_link)
8922         (_dbus_list_insert_after_link): new code to facilitate
8923         services.c fixes
8924
8925         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8926         new functionality, so we can preallocate the ability to insert
8927         into a hash table.
8928
8929         * bus/connection.c (bus_transaction_add_cancel_hook): new function
8930         allowing us to put custom hooks in a transaction to be used for
8931         cancelling said transaction
8932
8933         * doc/dbus-specification.sgml: add some discussion of secondary
8934         service owners, and disallow zero-length service names
8935
8936         * bus/services.c (bus_registry_acquire_service): new function,
8937         splits out part of bus_driver_handle_acquire_service() and fixes
8938         a bug where we didn't remove the service doing the acquiring
8939         from the secondary queue if we failed to remove the current owner
8940         from the front of the queue.
8941
8942 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8943
8944         * doc/dbus-specification.sgml:
8945         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
8946
8947 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8948
8949         * bus/.cvsignore:
8950         * glib/.cvsignore:
8951         * test/.cvsignore:
8952         Added files to cvsignore
8953
8954         * dbus/dbus-message.h:
8955         * dbus/dbus-message.c: (dbus_message_iter_get_named):
8956         Make get_named() take two out argument and return a boolean.
8957         (dbus_message_iter_get_args_valist):
8958         Update usage of get_named().
8959         (dbus_message_iter_append_byte):
8960         Fix typo
8961         (dbus_message_iter_append_named)
8962         Fix typo
8963         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
8964         More tests.
8965
8966 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8967
8968         * dbus/dbus-marshal.[ch]:
8969         Add array_type_pos argument to _dbus_marshal_validate_arg.
8970         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
8971
8972         * dbus/dbus-message.[ch]:
8973         Multi-dimensional arrays have full type specification in the
8974         outermost array. Iter code re-arranged to handle this.
8975         Added some more iter tests.
8976
8977         * doc/dbus-specification.sgml:
8978         Add me to authors.
8979         Remove old FIXME.
8980         Update new array encoding description.
8981         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
8982
8983         * test/data/invalid-messages/array-with-mixed-types.message:
8984         * test/data/valid-messages/array-of-array-of-uint32.message:
8985         Change to the new array format.
8986
8987         * test/data/invalid-messages/too-short-dict.message:
8988         Fix bug in test.
8989
8990         * test/data/valid-messages/recursive-types.message:
8991         Fix up and extend test.
8992
8993 2003-04-10  Havoc Pennington  <hp@pobox.com>
8994
8995         * bus/dispatch.c: lots of fixes
8996
8997         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
8998         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
8999         that was crack, broke the test service.
9000
9001         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9002         handling to avoid piling up errors if we get a failure on the
9003         first address.
9004
9005         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9006         pid in assertion failures.
9007
9008         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9009         to some fixed size of file descriptor array. Don't return TRUE
9010         anytime a timeout exists, that led to lots of busy loop silliness
9011         in the tests.
9012
9013 2003-04-09  Havoc Pennington  <hp@redhat.com>
9014
9015         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9016         I'd checked this in earlier but hadn't.
9017
9018 2003-04-09  Havoc Pennington  <hp@redhat.com>
9019
9020         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9021         the activation test (man this is getting old!)
9022
9023 2003-04-09  Havoc Pennington  <hp@redhat.com>
9024
9025         * test/test-utils.c: use dispatch status function to fix this up
9026
9027         * bus/connection.c (connection_watch_callback): don't dispatch
9028         from here
9029         (connection_timeout_callback): don't dispatch from here
9030         (bus_connections_setup_connection): set the dispatch status function
9031         (bus_connection_disconnected): unset it
9032
9033         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9034         used to add a connection to be dispatched
9035         (_dbus_loop_iterate): do the dispatching at the end of each
9036         iteration
9037
9038         * dbus/dbus-connection.c
9039         (dbus_connection_set_dispatch_status_function): new function
9040         allowing us to fix up main loop usage
9041         (_dbus_connection_last_unref): free all the various function
9042         user data
9043         (dbus_connection_dispatch): call the DispatchStatusFunction
9044         whenever this function returns
9045         (dbus_connection_handle_watch): call DispatchStatusFunction
9046         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9047         (reply_handler_timeout): call DispatchStatusFunction
9048         (dbus_connection_flush): call DispatchStatusFunction
9049
9050 2003-04-09  Havoc Pennington  <hp@redhat.com>
9051
9052         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9053         a memory leak
9054
9055         * bus/dispatch.c (check_service_activated): fix bug in test
9056
9057         * dbus/dbus-mainloop.c (check_timeout): fix this up
9058
9059         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9060         verbose output so we can sort out output from different processes,
9061         e.g. in the activation case.
9062
9063 2003-04-08  Colin Walters  <walters@gnu.org>
9064
9065         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9066         the pid file.
9067         (bus_context_new): Set it.
9068         (bus_context_unref): Use it to delete the pid file.
9069
9070 2003-04-08  Havoc Pennington  <hp@redhat.com>
9071
9072         * test/data/invalid-messages/array-with-mixed-types.message:
9073         regression test that fails for the moment
9074
9075         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9076         tests for convenience
9077
9078         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9079         array of nil, it broke things.
9080
9081         * test/data/invalid-messages/array-of-nil.message: regression test
9082
9083         * test/data/valid-messages/array-of-array-of-uint32.message:
9084         happened to write this so added it to suite
9085
9086 2003-04-08  Havoc Pennington  <hp@redhat.com>
9087
9088         * bus/driver.c (bus_driver_handle_acquire_service): init
9089         retval/reply before checking name
9090
9091         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9092         recursion depth argument
9093
9094         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9095         in the public struct for future extension
9096
9097         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9098         typo
9099
9100         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9101         message
9102
9103         * doc/dbus-specification.sgml: fix typo
9104
9105 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9106
9107         Implemented recursive types, named types and new-style iters
9108
9109         * bus/driver.c:
9110         * glib/test-thread-client.c: (thread_func):
9111         * glib/test-thread-server.c: (handle_test_message):
9112         * test/test-service.c: (handle_echo):
9113         Update to new api
9114
9115         * dbus/Makefile.am:
9116         * dbus/dbus-dict.c:
9117         * dbus/dbus-dict.h:
9118         * dbus/dbus.h
9119         Remove DBusDict
9120
9121         * dbus/dbus-internals.c: (_dbus_type_to_string):
9122         Update for new types.
9123
9124         * dbus/dbus-marshal.[ch]:
9125         Implement recursive types and the new marshalling format.
9126         Remove hardcoded dict marshalling.
9127         Marshal named types.
9128
9129         * dbus/dbus-message-builder.c:
9130         Add BYTE_ARRAY.
9131         Remove references to old types
9132
9133         * dbus/dbus-message.[ch]:
9134         New non-refcounted iter API that supports recursive iters.
9135         Use iters for appending, including support for recursive
9136         iters.
9137         Add byte and named type support.
9138         Update everything to new marshalling formats.
9139         Add tests for new API.
9140
9141         * dbus/dbus-protocol.h:
9142         Remove old array types.
9143         Add types: BYTE, ARRAY, DICT, NAMED
9144
9145         * dbus/dbus-string.c:
9146         * dbus/dbus-sysdeps.c:
9147         Make parse_double locale safe.
9148
9149         * dbus/dbus-test-main.c:
9150         Call setlocale.
9151
9152         * dbus/dbus-test.c:
9153         Kill dict test
9154
9155         * doc/dbus-specification.sgml:
9156         Update spec
9157
9158         * test/data/incomplete-messages/missing-body.message:
9159         * test/data/invalid-messages/bad-boolean.message:
9160         * test/data/invalid-messages/bad-boolean-array.message:
9161         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9162         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9163         * test/data/invalid-messages/too-short-dict.message:
9164         * test/data/valid-messages/dict-simple.message:
9165         * test/data/valid-messages/dict.message:
9166         * test/data/valid-messages/emptiness.message:
9167         * test/data/valid-messages/lots-of-arguments.message:
9168         * test/data/valid-messages/no-padding.message:
9169         * test/data/valid-messages/recursive-types.message:
9170         Add missing NAME fields
9171         Fix up dicts & arrays
9172
9173         * test/data/invalid-messages/dict-with-nil-value.message:
9174         Removed, this is not invalid anymore.
9175
9176         * test/data/valid-messages/recursive-types.message:
9177         Add new test for deeply recursive types.
9178
9179 2003-04-07  Havoc Pennington  <hp@pobox.com>
9180
9181         * bus/driver.c (bus_driver_handle_acquire_service): return an
9182         error if you try to acquire a service that starts with ':'
9183
9184 2003-04-07  Havoc Pennington  <hp@redhat.com>
9185
9186         * doc/dbus-specification.sgml: require that base service names
9187         start with ':' and that the base service is created/deleted
9188         as first and last things a connection does on the bus
9189
9190         * bus/dispatch.c (check_existent_service_activation): lots more
9191         work on the activation test; it doesn't fully pass yet...
9192
9193         * test/test-service.c (main): fix so we don't memleak the
9194         connection to the message bus
9195         (filter_func): accept a message asking us to exit
9196
9197 2003-04-06  Havoc Pennington  <hp@pobox.com>
9198
9199         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9200         from Colin Walters
9201
9202         * configure.in: fixes to Qt detection from Colin Walters
9203
9204         * doc/Makefile.am: Only remove generated docbook dirs if they
9205         exist, from Colin Walters
9206
9207         * dbus/dbus-bus.c: change how we set well-known connections to
9208         NULL, so that it works if a single connection is stored in
9209         two well-known array slots.
9210
9211         * test/Makefile.am: remove a lot of stuff that isn't immediately
9212         useful, it's in CVS history if we want it.
9213
9214         * test/test-service.c: use dbus-mainloop instead of that
9215         watch.[hc] crack
9216
9217 2003-04-06  Havoc Pennington  <hp@pobox.com>
9218
9219         * dbus/Makefile.am: split lists of sources into stuff that goes in
9220         the library, util functions that go in the lib and are also used
9221         elsewhere, and util functions that are used in tests/daemon but
9222         don't go in the lib.
9223
9224         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9225         here so it can be used in test binaries also
9226
9227 2003-04-06  Havoc Pennington  <hp@pobox.com>
9228
9229         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9230         here in the parent process, so we can return an error if it
9231         fails. Also, move some of the code into the child so the parent
9232         is less hosed if we fail midway through.
9233
9234         * bus/bus.c (bus_context_new): move pidfile detection further up
9235         in the function, before we start overwriting sockets and such.
9236
9237         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9238
9239         * configure.in: add --with-system-pid-file and --with-system-socket
9240
9241 2003-04-06  Colin Walters  <walters@verbum.org>
9242
9243         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9244
9245         * bus/system.conf.in: Declare a pidfile.
9246
9247         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9248         create one (if appropriate).
9249
9250         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9251         (struct BusConfigParser) [pidfile]: New.
9252         (element_type_to_name, merge_included, start_busconfig_child)
9253         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9254         (bus_config_parser_unref): Free it.
9255         (bus_config_parser_get_pidfile): New function.
9256
9257         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9258
9259         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9260
9261         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9262
9263         * dbus/dbus-sysdeps.h: Prototype it.
9264
9265 2003-04-06  Havoc Pennington  <hp@pobox.com>
9266
9267         * bus/bus.c (bus_context_new): print the address in here, rather
9268         than in main(), because we need to do it before forking the daemon
9269
9270         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9271         on the service nonexistent error
9272
9273         * bus/driver.c (bus_driver_handle_acquire_service): set the
9274         sender on the AcquireService reply
9275
9276         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9277         server also listen on a UNIX socket so services can connect to it.
9278
9279 2003-04-06  Havoc Pennington  <hp@pobox.com>
9280
9281         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9282         so it detects deadlocks and also we actually init threads when
9283         debugging.
9284
9285 2003-04-06  Havoc Pennington  <hp@pobox.com>
9286
9287         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9288         save the domain socket name, and unlink it when we disconnect the
9289         server. Means that at least when we exit normally, we won't leave
9290         a bunch of junk in /tmp
9291
9292         * dbus/dbus-transport-unix.c
9293         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9294         memory management). (I was making a real change here but then
9295         didn't)
9296
9297 2003-04-06  Havoc Pennington  <hp@pobox.com>
9298
9299         * bus/bus.c (bus_context_new): fix wrong handling of
9300         server_data_slot_unref() in the error case.
9301
9302         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9303         "(condition) != 0" to _dbus_real_assert so that
9304         "_dbus_assert (pointer)" doesn't cause a warning
9305
9306         * bus/main.c (main): accept --print-address option to print out
9307         the message bus address
9308
9309         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9310
9311         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9312         "tmpdir" option to unix: address on client side
9313
9314         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9315         to unix: address
9316
9317         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9318         we can use to create sockets in the test suite.
9319
9320         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9321         cleanly. To be used for testing.
9322
9323         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9324
9325         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9326
9327         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9328         handle trying to call this when there's no servers active
9329
9330 2003-04-05  Havoc Pennington  <hp@pobox.com>
9331
9332         * NEWS: update
9333
9334         * configure.in: 0.8
9335
9336 2003-04-05  Havoc Pennington  <hp@pobox.com>
9337
9338         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9339         crash on startup. Need to get "try starting the daemon"
9340         in the test suite I guess. ;-)
9341
9342         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9343         tracked the number of open connections; it's better done in
9344         application-specific code as you want it to span all servers etc.
9345
9346 2003-04-05  Havoc Pennington  <hp@pobox.com>
9347
9348         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9349         patch from Colin Walters
9350
9351 2003-04-05  Havoc Pennington  <hp@pobox.com>
9352
9353         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9354         reality; in fact multiple mechanisms are allowed.
9355
9356         * dbus/dbus-internals.c (_dbus_real_assert)
9357         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9358         _dbus_assert_not_reached() into functions, so that they don't show
9359         up in basic block counts for test coverage, and don't use up as
9360         much disk space. Does mean slower execution speed though, so
9361         assumes --disable-asserts is the normal production case.
9362
9363 2003-04-05  Havoc Pennington  <hp@pobox.com>
9364
9365         * test/Makefile.am (dist-hook): also dist *.in files
9366
9367         * NEWS: update
9368
9369         * configure.in: 0.7
9370
9371 2003-04-05  Havoc Pennington  <hp@pobox.com>
9372
9373         * dbus/dbus-string.c: docs warning
9374
9375         * dbus/dbus-spawn.c: missing docs
9376
9377         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9378
9379 2003-04-05  Havoc Pennington  <hp@pobox.com>
9380
9381         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9382         magic from GLib
9383
9384         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9385         to -1 once we've reaped the babysitter
9386         (_dbus_babysitter_handle_watch): do as much work as we can, not
9387         just one go of it
9388
9389         * bus/activation.c: add code using DBusBabysitter so that we
9390         handle it when a service fails to start up properly.
9391         (bus_activation_service_created): don't remove the activation
9392         entries as we go, just let them get removed when we free the pending
9393         activation. Unref reply messages after sending them.
9394
9395 2003-04-05  Havoc Pennington  <hp@pobox.com>
9396
9397         * test/decode-gcov.c (main): print per-directory stats in the report
9398
9399         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9400
9401 2003-04-05  Havoc Pennington  <hp@pobox.com>
9402
9403         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9404
9405         * test/decode-gcov.c: hack up a little program to suck data
9406         out of gcov files. Yes this is sort of silly.
9407
9408         * configure.in: define something in config.h and do an
9409         AM_CONDITIONAL when gcov is enabled
9410
9411 2003-04-04  Havoc Pennington  <hp@redhat.com>
9412
9413         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9414         return a "babysitter" object that is used to monitor the status of
9415         the spawned process and reap it when required.
9416
9417         * test/test-segfault.c, test/test-exit.c,
9418         test/test-sleep-forever.c: binaries that do various lame things,
9419         used in the test suite.
9420
9421         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9422
9423 2003-04-03  Havoc Pennington  <hp@pobox.com>
9424
9425         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9426         in preparation for modifying it, dbus-sysdeps is getting
9427         a bit unmanageable.
9428
9429 2003-04-03  Havoc Pennington  <hp@redhat.com>
9430
9431         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9432         have multiple ones
9433
9434         * bus/*.[hc]: adapt to mainloop change
9435
9436 2003-04-03  Havoc Pennington  <hp@redhat.com>
9437
9438         * bus/activation.c (load_directory): fix up memleaks
9439         (bus_activation_entry_free): free the entry
9440
9441         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9442         we get one from the message bus; fix memleaks.
9443
9444         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9445
9446 2003-04-03  Havoc Pennington  <hp@pobox.com>
9447
9448         * bus/config-parser.c (bus_config_parser_unref): free
9449         list of mechanisms, bug discovered by test suite enhancements
9450         (putting system.conf and session.conf into suite)
9451
9452         * test/Makefile.am, test/test-service.c: add placeholder for a
9453         test service that we'll activate as part of test suite. Doesn't
9454         do anything yet.
9455
9456         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9457         setting NULL value, and use system malloc not dbus_malloc()
9458         when we have unavoidable memleakage.
9459
9460         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9461         didn't work, and support DBUS_BUS_ACTIVATION.
9462
9463         * bus/activation.c (child_setup): pass our well-known bus type to
9464         the child
9465
9466         * bus/config-parser.c: support <type> to specify well-known type
9467
9468         * doc/dbus-specification.sgml: document the env variables to
9469         locate well-known buses and find service activator
9470
9471 2003-04-02  Havoc Pennington  <hp@redhat.com>
9472
9473         * test/Makefile.am (all-local): add a rule to copy tests to
9474         builddir, so we can have generated tests. Use this to remove the
9475         silly hack for testing system.conf and session.conf. Will use this
9476         shortly to generate .service files pointing to test binaries.
9477
9478 2003-04-02  Havoc Pennington  <hp@redhat.com>
9479
9480         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9481         current alloc and needed new length, not max of the doubled
9482         allocation and needed new length. Also, when building tests,
9483         don't do the double-allocation stuff, just realloc every time.
9484
9485 2003-04-02  Havoc Pennington  <hp@redhat.com>
9486
9487         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9488         in error messages
9489         (_dbus_string_get_dirname): new
9490         (_dbus_sysdeps_test): new
9491         (_dbus_directory_open): include dirnames in error messages
9492
9493         * bus/config-parser.c: interpret <include> and <includedir> and
9494         <servicedir> relative to config file location if the given
9495         filename is not absolute.
9496
9497         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9498
9499 2003-04-02  Havoc Pennington  <hp@redhat.com>
9500
9501         * bus/connection.c (bus_transaction_send_error_reply): set sender
9502         service for the error, and unref the reply on success
9503
9504         * bus/activation.c: convert to use BusTransaction so OOM can be
9505         handled correctly
9506         (bus_activation_service_created): set sender of the message
9507
9508 2003-04-01  Havoc Pennington  <hp@redhat.com>
9509
9510         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9511         <includedir> (at least mostly)
9512
9513         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9514         first, then the user ID
9515
9516 2003-04-01  Havoc Pennington  <hp@pobox.com>
9517
9518         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9519         function
9520
9521         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9522
9523         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9524
9525         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9526         socket 0777, and unlink any existing socket.
9527
9528         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9529         the configuration file so specifies; set up auth mechanism
9530         restrictions
9531
9532         * bus/config-parser.c (bus_config_parser_content): add support
9533         for <fork> option and fill in code for <auth>
9534
9535         * bus/system.conf.in: add <fork/> to default configuration,
9536         and limit auth mechanisms to EXTERNAL
9537
9538         * doc/config-file.txt (Elements): add <fork>
9539
9540         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9541         (_dbus_change_identity): new function
9542
9543 2003-03-31  Havoc Pennington  <hp@redhat.com>
9544
9545         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9546         (_dbus_listen_unix_socket): fix off-by-one error in null
9547         termination spotted by Nalin
9548
9549 2003-03-31  Havoc Pennington  <hp@redhat.com>
9550
9551         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9552         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9553         having a real home directory available.
9554
9555 2003-03-31  Havoc Pennington  <hp@redhat.com>
9556
9557         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9558
9559         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9560
9561         * configure.in: add support for specifying a style of init script
9562         to install
9563
9564 2003-03-31  Havoc Pennington  <hp@redhat.com>
9565
9566         Fix some annoying DBusString API and fix all affected code.
9567
9568         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9569         max_length argument
9570         (_dbus_string_get_data): change to return string instead of using
9571         an out param
9572         (_dbus_string_get_const_data): ditto
9573         (_dbus_string_get_data_len): ditto
9574         (_dbus_string_get_const_data_len): ditto
9575
9576 2003-03-31  Havoc Pennington  <hp@redhat.com>
9577
9578         * bus/main.c (main): fix up the command line arguments to be nicer
9579
9580 2003-03-31  Havoc Pennington  <hp@redhat.com>
9581
9582         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9583         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9584         final location that lands in the config file
9585
9586         * bus/config-loader-expat.c (bus_config_load): fix type of
9587         XML_Parser variable
9588
9589         * doc/TODO: remove TODO item for dbus_bus_get()
9590
9591         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9592
9593 2003-03-31  Havoc Pennington  <hp@pobox.com>
9594
9595         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9596         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9597         argument since they are always client side
9598
9599         * dbus/dbus-server.c (dbus_server_get_address): new function
9600
9601         * bus/main.c (main): take the configuration file as an argument.
9602
9603         * test/data/valid-config-files/debug-allow-all.conf: new file to
9604         use with dispatch.c tests for example
9605
9606         * bus/test-main.c (main): require test data dir
9607
9608         * bus/bus.c (bus_context_new): change this to take a
9609         configuration file name as argument
9610
9611         * doc/config-file.txt (Elements): add <servicedir>
9612
9613         * bus/system.conf, bus/session.conf: new files
9614
9615         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9616         well-known socket if none set
9617
9618         * configure.in: create system.conf and session.conf
9619
9620 2003-03-30  Havoc Pennington  <hp@pobox.com>
9621
9622         * bus/config-parser.c: hacking
9623
9624         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9625         to shut down, since it could cause weirdness with the DBusList
9626         lock
9627
9628         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9629         link-oriented stack routines
9630         (alloc_link): free the mempool if the first alloc from it fails
9631
9632         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9633
9634         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9635         from GLib
9636         (_dbus_string_skip_white): new
9637
9638         * doc/config-file.txt (Elements): add <includedir>
9639
9640 2003-03-28  Havoc Pennington  <hp@pobox.com>
9641
9642         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9643         (_dbus_string_copy_data): new functions
9644
9645 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9646
9647         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9648         * dbus/dbus-bus.h:
9649         Add dbus_bus_get.
9650
9651         * dbus/dbus-memory.c:
9652         Fix a doc comment.
9653
9654 2003-03-28  Havoc Pennington  <hp@pobox.com>
9655
9656         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9657         I think it may have just been superstition. Not sure.
9658
9659         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9660         failures that were not being handled.
9661
9662         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9663
9664         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9665         row that will fail on out-of-memory.
9666
9667         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9668         function for testing out-of-memory handling.
9669
9670         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9671         allocation functions, they do map exactly to the expat ones.
9672
9673 2003-03-27  Havoc Pennington  <hp@redhat.com>
9674
9675         * bus/config-loader-libxml.c (bus_config_load): add another error
9676         check
9677
9678 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9679
9680         * doc/TODO:
9681         Add note about automatic service activation.
9682
9683         * doc/dbus-specification.sgml:
9684         Rename the specification and clarify a few things.
9685
9686 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9687
9688         * Doxyfile.in:
9689         * dbus/dbus-address.c:
9690         * dbus/dbus-dict.c:
9691         * dbus/dbus-marshal.c:
9692         * dbus/dbus-server-debug-pipe.c:
9693         * dbus/dbus-transport-unix.c:
9694         Fix documentation warnings.
9695
9696 2003-03-26  Havoc Pennington  <hp@pobox.com>
9697
9698         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9699         after every test so it's quick and easy to see which leaked, and
9700         so we test multiple dbus_shutdown() calls
9701
9702         * configure.in: change configure.in XML stuff to also support
9703         expat
9704
9705         * config-loader-libxml.c: some hacking
9706
9707         * config-loader-expat.c: some hacking
9708
9709         * config-parser.c: some hacking, plus tests
9710
9711 2003-03-25  Havoc Pennington  <hp@redhat.com>
9712
9713         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9714
9715         * configure.in: add --with-xml option to specify XML library,
9716         right now only libxml is supported.
9717
9718         * bus/config-loader-libxml.c, config-parser.c: sync some minor
9719         nonworking code between home and work, still just stubs
9720
9721 2003-03-24  Havoc Pennington  <hp@redhat.com>
9722
9723         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9724         file
9725
9726         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9727         NULL argument for "message" if the error is a well-known one,
9728         fill in a generic message in this case.
9729
9730         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9731         favor of DBusError
9732
9733         * bus/test.c (bus_test_flush_bus): add
9734
9735         * bus/policy.c (bus_policy_test): test code stub
9736
9737 2003-03-24  Havoc Pennington  <hp@pobox.com>
9738
9739         * bus/connection.c (bus_connections_setup_connection): set up
9740         the "can this user connect" function, but it always returns
9741         TRUE until we have a config file parser so we can have a config
9742         file that allows connections.
9743
9744 2003-03-23  Havoc Pennington  <hp@pobox.com>
9745
9746         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9747         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9748         the mutex, so we can check for proper memory management
9749         and OOM handling.
9750
9751         * dbus/dbus-dataslot.c: remove the mutex from
9752         DBusDataSlotAllocator and lock it manually when using it,
9753         to simplify fitting it into the global slots framework.
9754
9755         * dbus/dbus-threads.c (init_static_locks): rework how we're
9756         handling global locks so they are easily shut down.
9757
9758         * bus/policy.c (bus_policy_append_rule): fix
9759
9760         * bus/test-main.c (main): check for memleaks
9761
9762         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9763         test suite check for memleaks
9764
9765         * dbus/dbus-memory.c: add support in test mode for tracking
9766         number of outstanding blocks
9767
9768 2003-03-23  Havoc Pennington  <hp@pobox.com>
9769
9770         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9771         policies code
9772
9773         * dbus/dbus-hash.h: add ULONG hash keys
9774
9775         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9776         (_dbus_get_group_id): new function
9777
9778 2003-03-20  Havoc Pennington  <hp@redhat.com>
9779
9780         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9781         new function
9782         (dbus_connection_get_unix_user): new function
9783
9784 2003-03-20  Havoc Pennington  <hp@pobox.com>
9785
9786         * bus/connection.c (bus_connection_send_oom_error): assert that
9787         message has a sender
9788         (connection_execute_transaction): ditto
9789         (bus_connection_preallocate_oom_error): fix to set the sender, and
9790         set recipient to the destination service, not the bus driver
9791
9792         * bus/policy.c: hacking
9793
9794         * dbus/dbus-message.c (dbus_message_service_is): new function
9795         (dbus_message_sender_is): new
9796
9797 2003-03-19  Havoc Pennington  <hp@redhat.com>
9798
9799         * bus/policy.c: start sketching code for policy restrictions on
9800         what connections can do.
9801
9802 2003-03-18  Havoc Pennington  <hp@redhat.com>
9803
9804         * doc/TODO: some notes on high-level todo items. Little nitpick
9805         stuff is all in @todo, so no need to add it here.
9806
9807         * doc/config-file.txt: some notes on how config file might look
9808
9809 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
9810
9811         * configure.in: 0.6
9812
9813         * NEWS: Update.
9814
9815 2003-03-17  Havoc Pennington  <hp@redhat.com>
9816
9817         * dbus/dbus-internals.h: add gcc attributes so that
9818         our printf-style functions warn on bad arguments to
9819         format
9820
9821         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9822         format bug
9823
9824         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9825         printf format bug
9826
9827 2003-03-17  Havoc Pennington  <hp@redhat.com>
9828
9829         * bus/test-main.c (main): make it print something as it runs
9830         so make check doesn't look stuck
9831
9832         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9833         from CVS, now obsolete
9834
9835 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9836
9837         * bus/dispatch.c: (bus_dispatch):
9838         Refetch the service name since it may have been reallocated
9839         when dbus_message_set_sender was called.
9840
9841         * dbus/dbus-sysdeps.c: (_dbus_accept):
9842         Add address and address length variables and use them to stop
9843         valgrind from complaining.
9844
9845 2003-03-17  Havoc Pennington  <hp@pobox.com>
9846
9847         All tests pass, no memleaks, no valgrind complaints.
9848
9849         * bus/test.c: refcount handler_slot
9850
9851         * bus/connection.c (bus_connections_new): refcount
9852         connection_data_slot
9853
9854         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9855         bytes so that auth scripts pass.
9856
9857         * bus/dispatch.c: init message_handler_slot so it gets allocated
9858         properly
9859
9860         * bus/dispatch.c (message_handler_slot_ref): fix memleak
9861
9862         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9863         dealloc server_pipe_hash when no longer used for benefit of
9864         leak checking
9865
9866         * dbus/dbus-auth.c (process_command): memleak fix
9867
9868         * bus/dispatch.c (check_hello_message): memleak fix
9869
9870 2003-03-16  Havoc Pennington  <hp@pobox.com>
9871
9872         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9873
9874 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9875
9876         * bus/activation.c (bus_activation_activate_service): Append
9877         the pending activation entry to the list of pending activations.
9878
9879 2003-03-16  Havoc Pennington  <hp@pobox.com>
9880
9881         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9882         connections
9883
9884         * dbus/dbus-address.c (create_entry): fix OOM handling when
9885         failing to alloc entry->method
9886
9887 2003-03-16  Havoc Pennington  <hp@pobox.com>
9888
9889         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9890         the watch
9891
9892         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9893         add some missing dbus_set_result
9894
9895         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9896         alloc the DBusMessageHandler
9897
9898         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9899         the transport here, since we call this from the finalizer; it
9900         resulted in a double-finalize.
9901
9902         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9903         where we tried to use transport->connection that was NULL,
9904         happened when transport was disconnected early on due to OOM
9905
9906         * bus/*.c: adapt to handle OOM for watches/timeouts
9907
9908         * dbus/dbus-transport-unix.c: port to handle OOM during
9909         watch handling
9910
9911         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9912         reference to unused bytes instead of a copy
9913
9914         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9915         out of memory
9916
9917         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9918         FALSE on OOM
9919
9920         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9921         of memory
9922
9923 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9924
9925         * doc/dbus-specification.sgml:
9926         Document reply message for ActivateService.
9927
9928 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9929
9930         * bus/activation.c: (bus_pending_activation_entry_free),
9931         (bus_pending_activation_free), (bus_activation_new),
9932         (bus_activation_unref), (bus_activation_service_created),
9933         (bus_activation_activate_service):
9934         * bus/activation.h:
9935         * bus/bus.c: (bus_context_new):
9936         * bus/desktop-file.c: (new_section):
9937         * bus/driver.c: (bus_driver_send_service_deleted),
9938         (bus_driver_handle_activate_service):
9939         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9940         * bus/services.h:
9941         * dbus/dbus-connection.c:
9942         (dbus_connection_send_with_reply_and_block):
9943         * dbus/dbus-message.c: (dbus_message_append_args_valist):
9944         * dbus/dbus-protocol.h:
9945         Make activation work better. Now pending activations will be queued
9946         and the daemon won't try to activate services that are already registered.
9947
9948 2003-03-16  Havoc Pennington  <hp@pobox.com>
9949
9950         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
9951         connection data
9952
9953         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
9954         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
9955
9956 2003-03-16  Havoc Pennington  <hp@pobox.com>
9957
9958         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
9959         this. always run the test suite before commit...
9960
9961         * bus/*: adapt to DBusConnection API changes
9962
9963         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
9964         requires renaming stuff to avoid dbus_connection_dispatch name
9965         conflict.
9966
9967         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
9968         function
9969
9970         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9971         separate from _dbus_message_loader_return_buffer()
9972
9973         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
9974         this, because it's now always broken to use; the number of
9975         messages in queue vs. the number still buffered by the message
9976         loader is undefined/meaningless. Should use
9977         dbus_connection_get_dispatch_state().
9978         (dbus_connection_dispatch): rename from
9979         dbus_connection_dispatch_message
9980
9981 2003-03-16  Havoc Pennington  <hp@pobox.com>
9982
9983         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
9984         implementation
9985
9986 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9987
9988         * dbus/dbus-connection.c:
9989         (dbus_connection_send_with_reply_and_block):
9990         Decrease connection->n_incoming when removing an entry
9991         from the list.
9992         * dbus/dbus-dict.c: (dbus_dict_entry_free),
9993         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9994         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9995         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
9996         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
9997         (dbus_dict_get_byte_array):
9998         Handle NULL arrays and strings. Also add support for byte arrays.
9999
10000         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10001         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10002         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10003         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10004         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10005         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10006         * dbus/dbus-marshal.h:
10007         Add support for marshalling and demarshalling empty arrays and strings.
10008
10009         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10010         (dbus_message_append_string_array),
10011         (dbus_message_iter_get_boolean),
10012         (dbus_message_iter_get_boolean_array),
10013         (dbus_message_iter_get_int32_array),
10014         (dbus_message_iter_get_uint32_array),
10015         (dbus_message_iter_get_double_array),
10016         (dbus_message_iter_get_byte_array),
10017         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10018         (check_message_handling):
10019         Add support for getting empty arrays and dicts.
10020
10021         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10022         Don't do any validation at all for now, that's better than just checking
10023         for ASCII.
10024
10025         * test/data/valid-messages/emptiness.message:
10026         New test message with lots of empty arrays.
10027
10028 2003-03-16  Havoc Pennington  <hp@pobox.com>
10029
10030         * dbus/dbus-connection.c
10031         (_dbus_connection_queue_received_message_link): new function that
10032         can't fail due to OOM
10033
10034         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10035         new function pops a message together with a list link
10036         containing it.
10037
10038         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10039         message queuing functions to avoid needing to alloc memory
10040
10041 2003-03-16  Havoc Pennington  <hp@pobox.com>
10042
10043         Oops - test code was only testing failure of around 30 of the
10044         mallocs in the test path, but it turns out there are 500+
10045         mallocs. I believe this was due to misguided linking setup such
10046         that there was one copy of dbus_malloc etc. in the daemon and one
10047         in the shared lib, and only daemon mallocs were tested. In any
10048         case, the test case now tests all 500+ mallocs, and doesn't pass
10049         yet, though there are lots of fixes in this patch.
10050
10051         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10052         this so that it doesn't need to allocate memory, since it
10053         has no way of indicating failure due to OOM (and would be
10054         annoying if it did).
10055
10056         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10057
10058         * bus/Makefile.am: rearrange to create two self-contained
10059         libraries, to avoid having libraries with overlapping symbols.
10060         that was resulting in weirdness, e.g. I'm pretty sure there
10061         were two copies of global static variables.
10062
10063         * dbus/dbus-internals.c: move the malloc debug stuff to
10064         dbus-memory.c
10065
10066         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10067         empty.
10068
10069         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10070
10071         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10072         on failure.
10073
10074         * bus/dispatch.c (bus_dispatch_add_connection): free
10075         message_handler_slot when no longer using it, so
10076         memory leak checkers are happy for the test suite.
10077
10078         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10079
10080         * bus/bus.c (new_connection_callback): disconnect in here if
10081         bus_connections_setup_connection fails.
10082
10083         * bus/connection.c (bus_connections_unref): fix to free the
10084         connections
10085         (bus_connections_setup_connection): if this fails, don't
10086         disconnect the connection, just be sure there are no side
10087         effects.
10088
10089         * dbus/dbus-string.c (undo_alignment): unbreak this
10090
10091         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10092         leaking
10093         (_dbus_auth_new): fix the order in which we free strings
10094         on OOM failure
10095
10096         * bus/connection.c (bus_connection_disconnected): fix to
10097         not send ServiceDeleted multiple times in case of memory
10098         allocation failure
10099
10100         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10101         get the base service name
10102         (dbus_bus_register_client): don't return base service name,
10103         instead store it on the DBusConnection and have an accessor
10104         function for it.
10105         (dbus_bus_register_client): rename dbus_bus_register()
10106
10107         * bus/dispatch.c (check_hello_message): verify that other
10108         connections on the bus also got the correct results, not
10109         just the one sending hello
10110
10111 2003-03-15  Havoc Pennington  <hp@pobox.com>
10112
10113         Make it pass the Hello handling test including all OOM codepaths.
10114         Now to do other messages...
10115
10116         * bus/services.c (bus_service_remove_owner): fix crash when
10117         removing owner from an empty list of owners
10118         (bus_registry_ensure): don't leave service in the list of
10119         a connection's owned services if we fail to put the service
10120         in the hash table.
10121
10122         * bus/connection.c (bus_connection_preallocate_oom_error): set
10123         error flag on the OOM error.
10124
10125         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10126         handle _dbus_transport_set_connection failure
10127
10128         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10129         to create watches up front and simply enable/disable them as
10130         needed.
10131         (unix_connection_set): this can now fail on OOM
10132
10133         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10134         of enabling/disabling a watch or timeout.
10135
10136         * bus/loop.c (bus_loop_iterate): don't touch disabled
10137         watches/timeouts
10138
10139         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10140
10141 2003-03-15  Havoc Pennington  <hp@pobox.com>
10142
10143         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10144         write useful test code, after all that futzing around ;-)
10145
10146         Test does not yet pass because we can't handle OOM in
10147         _dbus_transport_messages_pending (basically,
10148         dbus_connection_preallocate_send() does not prealloc the write
10149         watch). To fix this, I think we need to add new stuff to
10150         set_watch_functions, namely a SetEnabled function so we can alloc
10151         the watch earlier, then enable it later.
10152
10153         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10154         dbus-memory.c to the convenience lib
10155
10156         * bus/test.c: rename some static functions to keep them clearly
10157         distinct from stuff in connection.c. Handle client disconnection.
10158
10159 2003-03-14  Havoc Pennington  <hp@pobox.com>
10160
10161         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10162         transport, tests more of the real codepath. Set up clients
10163         with bus_setup_debug_client.
10164
10165         * bus/test.c (bus_setup_debug_client): function to set up debug
10166         "clients" on the main loop
10167
10168         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10169         support
10170
10171         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10172         server type
10173
10174         * dbus/dbus-server-debug.c: support a debug server based on pipes
10175
10176         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10177         (_dbus_close): new function
10178
10179         * configure.in: check for socketpair
10180
10181 2003-03-14  Havoc Pennington  <hp@redhat.com>
10182
10183         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10184         cheesy hack
10185
10186         * dbus/dbus-transport-debug.c: rework this a good bit to be
10187         less complicated. hopefully still works.
10188
10189         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10190         manually
10191
10192         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10193         after running it
10194
10195         * dbus/dbus-message.c (dbus_message_copy): rename from
10196         dbus_message_new_from_message, fix it up to copy
10197         all the message fields, add test case
10198
10199         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10200         not quite passing yet
10201
10202 2003-03-14  Havoc Pennington  <hp@pobox.com>
10203
10204         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10205         until no work remains" in test code. (the large diff here
10206         is just code movement, no actual changes)
10207
10208         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10209         1, no point waiting around for test code.
10210         (_dbus_server_debug_accept_transport): unref the timeout
10211         after adding it (right?)
10212
10213         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10214
10215 2003-03-13  Havoc Pennington  <hp@redhat.com>
10216
10217         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10218         out of memory
10219
10220         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10221         of memory
10222
10223         * dbus/dbus-connection.h: Make AddWatchFunction and
10224         AddTimeoutFunction return a bool so they can fail on out-of-memory
10225
10226         * bus/bus.c (bus_context_new): set up timeout handlers
10227
10228         * bus/connection.c (bus_connections_setup_connection): set up
10229         timeout handlers
10230
10231         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10232         can fail
10233
10234         * bus/bus.c (bus_context_new): adapt to changes
10235
10236         * bus/connection.c: adapt to changes
10237
10238         * test/watch.c: adapt to DBusWatch changes
10239
10240         * bus/dispatch.c (bus_dispatch_test): started adding this but
10241         didn't finish
10242
10243 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10244
10245         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10246
10247 2003-03-13  Havoc Pennington  <hp@pobox.com>
10248
10249         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10250         set up a test framework as for the library
10251
10252 2003-03-12  Havoc Pennington  <hp@pobox.com>
10253
10254         Throughout: purge global variables, introduce BusActivation,
10255         BusConnections, BusRegistry, etc. objects instead.
10256
10257         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10258         message bus object
10259
10260         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10261         going to redo this a bit differently I think
10262
10263 2003-03-12  Havoc Pennington  <hp@redhat.com>
10264
10265         Mega-patch that gets the message bus daemon initially handling
10266         out-of-memory. Work still needed. Also lots of random
10267         moving stuff to DBusError instead of ResultCode.
10268
10269         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10270
10271         * dbus/dbus-connection.c
10272         (dbus_connection_send_with_reply_and_block): use DBusError
10273
10274         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10275         DBusResultCode
10276
10277         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10278         code here, as the only failure possible is OOM.
10279
10280         * bus/connection.c (bus_connection_disconnect):
10281         rename bus_connection_disconnected as it's a notification only
10282
10283         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10284         "name" on get_args failure, should be done by get_args;
10285         don't disconnect client for bad args, just return an error.
10286         (bus_driver_handle_service_exists): ditto
10287
10288         * bus/services.c (bus_services_list): NULL-terminate returned array
10289
10290         * bus/driver.c (bus_driver_send_service_lost)
10291         (bus_driver_send_service_acquired): send messages from driver to a
10292         specific client to the client's unique name, not to the broadcast
10293         service.
10294
10295         * dbus/dbus-message.c (decode_header_data): reject messages that
10296         contain no name field
10297         (_dbus_message_get_client_serial): rename to
10298         dbus_message_get_serial and make public
10299         (_dbus_message_set_serial): rename from set_client_serial
10300         (_dbus_message_set_reply_serial): make public
10301         (_dbus_message_get_reply_serial): make public
10302
10303         * bus/connection.c (bus_connection_foreach): allow stopping
10304         iteration by returning FALSE from foreach function.
10305
10306         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10307         (dbus_connection_free_preallocated_send)
10308         (dbus_connection_preallocate_send): new API for sending a message
10309         without possibility of malloc failure.
10310         (dbus_connection_send_message): rename to just
10311         dbus_connection_send (and same for whole function family)
10312
10313         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10314
10315         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10316
10317         * bus/activation.c: handle/return errors
10318
10319         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10320
10321         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10322         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10323         (_dbus_result_from_errno): move to this file
10324
10325 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10326
10327         * dbus/dbus-marshal.c:
10328         (_dbus_marshal_set_string):
10329         Take a length argument so we can marshal the correct string
10330         length.
10331
10332         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10333         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10334         (_dbus_marshal_test):
10335         * dbus/dbus-marshal.h:
10336         Add support for marshalling and demarshalling dicts.
10337
10338         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10339         Add support for TYPE DICT.
10340
10341         * dbus/dbus-message.c: (set_string_field):
10342         Adjust header padding.
10343
10344         (dbus_message_append_args_valist), (dbus_message_append_dict),
10345         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10346         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10347         (check_message_handling), (check_have_valid_message):
10348         * dbus/dbus-message.h:
10349         Add functions for setting and getting dicts.
10350
10351         * dbus/dbus-protocol.h:
10352         Add DBUS_TYPE_DICT.
10353
10354         * dbus/dbus.h:
10355         Add dbus-dict.h
10356
10357         * doc/dbus-specification.sgml:
10358         Add information about how dicts are marshalled.
10359
10360         * test/data/invalid-messages/dict-with-nil-value.message:
10361         * test/data/invalid-messages/too-short-dict.message:
10362         * test/data/valid-messages/dict-simple.message:
10363         * test/data/valid-messages/dict.message:
10364         Add sample messages containing dicts.
10365
10366 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10367
10368         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10369
10370 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10371
10372         * dbus/Makefile.am:
10373         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10374         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10375         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10376         (dbus_dict_set_double), (dbus_dict_set_string),
10377         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10378         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10379         (dbus_dict_set_string_array), (_dbus_dict_test):
10380         * dbus/dbus-dict.h:
10381         Fix according to comments from Havoc.
10382
10383 2003-03-06  Michael Meeks  <michael@server.home>
10384
10385         * configure.in: if we don't have kde-config, disable have_qt.
10386
10387 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10388
10389         * dbus/Makefile.am:
10390         Add dbus-dict.[ch]
10391
10392         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10393         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10394         (dbus_dict_remove), (dbus_dict_get_value_type),
10395         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10396         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10397         (dbus_dict_put_double), (dbus_dict_put_string),
10398         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10399         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10400         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10401         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10402         (dbus_dict_get_double), (dbus_dict_get_string),
10403         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10404         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10405         (dbus_dict_get_string_array), (_dbus_dict_test):
10406         * dbus/dbus-dict.h:
10407         Add DBusDict implementation
10408
10409         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10410         * dbus/dbus-test.h:
10411         Add _dbus_dict_test
10412
10413 2003-03-04  Havoc Pennington  <hp@pobox.com>
10414
10415         * test/data/auth/*: adapt to changes
10416
10417         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10418         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10419         userid
10420
10421         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10422         more stuff from being in a context name, to make the protocol
10423         simpler to deal with
10424
10425         * dbus/dbus-errors.c (dbus_error_has_name): new function
10426         (dbus_error_is_set): new function
10427
10428         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10429         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10430
10431         * dbus/dbus-connection.c (dbus_connection_flush): also read
10432         messages during a flush operation
10433
10434         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10435
10436 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10437
10438         * configure.in: Check for gethostbyname on Solaris.
10439
10440         * dbus/dbus-transport.c: (_dbus_transport_open):
10441         Remove duplicate "tcp" entry.
10442
10443         * doc/dbus-specification.sgml:
10444         Clarify some things.
10445
10446 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10447
10448         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10449         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10450         (_dbus_keyring_test):
10451         * dbus/dbus-md5.c: (_dbus_md5_compute):
10452         * dbus/dbus-sha.c: (_dbus_sha_compute):
10453         Plug memory leaks.
10454
10455 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10456
10457         * README: Add some things.
10458
10459 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10460
10461         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10462         after case DBUS_TYPE_BOOELAN.
10463
10464 2003-03-02  Havoc Pennington  <hp@pobox.com>
10465
10466         * test/break-loader.c (randomly_set_extreme_ints): add test that
10467         sets really huge and small integers
10468
10469         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10470         that length of boolean array fits in the string, and that
10471         string has room for boolean value in single-bool case.
10472
10473         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10474         optional value to "ALIGN" command which is what to fill the
10475         alignment with.
10476
10477         * test/data/valid-messages/no-padding.message: add regression
10478         test for the message padding problem
10479
10480 2003-03-02  Havoc Pennington  <hp@pobox.com>
10481
10482         * dbus/dbus-message.c (decode_header_data): fix to always init
10483         message_padding, from Benjamin Dauvergne
10484
10485 2003-03-02  Havoc Pennington  <hp@pobox.com>
10486
10487         * configure.in: 0.5
10488
10489         * NEWS: Update.
10490
10491 2003-03-01  Joe Shaw  <joe@assbarn.com>
10492
10493         * configure.in: Check for "struct cmsgcred" and try to access its
10494         members for BSD-like unices.
10495
10496         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10497         _dbus_read_credentials_unix_socket().
10498         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10499         read() for reading the credential byte off the unix socket.  Use
10500         struct cmsgcred on systems that support it.
10501
10502 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10503
10504         * glib/Makefile.am:
10505         * configure.in:
10506         Make gthreads-2.0 dependency optional. Don't build thread test if
10507         its not found.
10508
10509 2003-02-27  Havoc Pennington  <hp@pobox.com>
10510
10511         * dbus/dbus-connection.c
10512         (dbus_connection_send_message_with_reply_and_block): fix doh!
10513         doh! doh! bug that resulted in never removing a reply from the
10514         queue, no wonder we called get_reply_serial so much ;-)
10515
10516         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10517         and client serial instead of demarshaling them every time
10518
10519 2003-02-27  Havoc Pennington  <hp@pobox.com>
10520
10521         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10522         more inlined, using dbus-string-private.h, speeds things up
10523         substantially
10524
10525         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10526         when freeing the string
10527         (_dbus_string_steal_data): fix for align offset
10528         (undo_alignment): new function
10529
10530 2003-02-26  Havoc Pennington  <hp@redhat.com>
10531
10532         All kinds of audit fixes from Owen, plus initial attempt to
10533         handle unaligned memory returned from malloc.
10534
10535         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10536         leave room for align_offset and nul byte
10537         (fixup_alignment): function to track an align_offset and
10538         ensure real->str is aligned
10539         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10540         to allow a nul byte plus align offset
10541         (_dbus_string_lock): fix overflow issue
10542         (_dbus_string_init_const_len): add assertions on sanity of len,
10543         assign allocated to be ALLOCATION_PADDING larger than len
10544         (set_length): fixup the overflow handling
10545         (_dbus_string_get_data_len): fix overflow in assertion
10546         (open_gap): detect overflow in size of gap to be opened
10547         (_dbus_string_lengthen): add overflow check
10548         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10549         (_dbus_string_append): add overflow check
10550         (_dbus_string_append_unichar): overflow
10551         (_dbus_string_delete): fix overflow in assertion
10552         (_dbus_string_copy_len): overflow in assertion
10553         (_dbus_string_replace_len): overflows in assertions
10554         (_dbus_string_find): change to implement in terms of
10555         _dbus_string_find_to
10556         (_dbus_string_find_to): assorted fixage
10557         (_dbus_string_equal_c_str): assert c_str != NULL,
10558         fix logic so the function works
10559         (_dbus_string_ends_with_c_str): fix overflow thingy
10560         (_dbus_string_base64_encode): overflow fix
10561         (_dbus_string_validate_ascii): overflow
10562         (_dbus_string_validate_nul): overflow
10563
10564 2003-02-26  Havoc Pennington  <hp@redhat.com>
10565
10566         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10567
10568 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10569
10570         * configure.in:
10571         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10572
10573         * dbus/dbus-connection.c:
10574         * dbus/dbus-connection.h:
10575         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10576         Add dbus_connection_set_wakeup_main_function and use it when queueing
10577         incoming and outgoing messages.
10578
10579
10580         * dbus/dbus-dataslot.c:
10581         Threadsafe usage of DBusDataSlotAllocator
10582
10583         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10584         dbus_new can fail.
10585
10586         * dbus/dbus-server-unix.c:
10587         Add todo comment
10588
10589         * glib/dbus-gmain.c:
10590         Implement the new wakeup functions for glib.
10591
10592         * glib/Makefile.am:
10593         * glib/test-thread-client.c:
10594         * glib/test-thread-server.c:
10595         * glib/test-thread.h:
10596         Initial cut at some thread test code. Not really done yet.
10597
10598 2003-02-26  Havoc Pennington  <hp@pobox.com>
10599
10600         * dbus/dbus-connection.c
10601         (dbus_connection_send_message_with_reply_and_block): fix crash
10602         where we ref'd the outgoing message instead of the returned reply
10603
10604         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10605         at the end of this function, so if we didn't need to read for
10606         authentication, we reinstall it for receiving messages
10607
10608         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10609         a NULL sender for peer-to-peer case
10610
10611         * dbus/dbus-transport-unix.c (check_read_watch): handle
10612         !authenticated case correctly
10613
10614         * glib/dbus-gmain.c: add support for DBusServer
10615
10616         * dbus/dbus-server.c: add data slot support
10617
10618         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10619         return values and handle errors
10620
10621         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10622         DBusConnection
10623
10624         * Doxyfile.in (INPUT): add glib subdir
10625
10626         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10627         setup_with_g_main instead of hookup_with_g_main; write docs
10628
10629 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10630
10631         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10632         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10633         * dbus/dbus-message.c: (dbus_message_append_boolean),
10634         (dbus_message_append_boolean_array),
10635         (dbus_message_get_args_valist), (_dbus_message_test):
10636         * dbus/dbus-message.h:
10637         * doc/dbus-specification.sgml:
10638         Various fixes as pointed out by Havoc.
10639
10640         * test/data/invalid-messages/bad-boolean-array.message:
10641         * test/data/invalid-messages/bad-boolean.message:
10642         Add invalid boolean value test cases.
10643
10644 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10645
10646         * dbus/dbus-internals.c: (_dbus_type_to_string):
10647         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10648         (_dbus_marshal_validate_arg):
10649         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10650         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10651         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10652         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10653         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10654         (dbus_message_iter_get_double),
10655         (dbus_message_iter_get_boolean_array), (message_iter_test):
10656         * dbus/dbus-message.h:
10657         * dbus/dbus-protocol.h:
10658         * doc/dbus-specification.sgml:
10659         * test/data/valid-messages/lots-of-arguments.message:
10660         Add support for boolean and boolean array types.
10661
10662 2003-02-23  Havoc Pennington  <hp@pobox.com>
10663
10664         * dbus/dbus-keyring.c: finish most of this implementation and
10665         simple unit test
10666
10667         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10668         these barf if the error isn't cleared to NULL
10669
10670         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10671         (_dbus_create_directory): new function
10672
10673         * dbus/dbus-errors.c (dbus_set_error): fix warning
10674
10675         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10676         (_dbus_string_hex_decode): new function
10677         (test_hex_roundtrip): test code
10678
10679         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10680
10681         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10682
10683         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10684         the save-to-temp/rename trick to atomically write the new file
10685         (_dbus_string_parse_uint): new function
10686
10687 2003-02-22  Havoc Pennington  <hp@pobox.com>
10688
10689         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10690
10691 2003-02-22  Havoc Pennington  <hp@pobox.com>
10692
10693         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10694         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10695
10696         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10697
10698         * dbus/test/data/sha-1: add US government test suite for SHA-1
10699
10700 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10701
10702         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10703         Make string arrays NULL-terminated.
10704
10705         * dbus/dbus-memory.c: (dbus_free_string_array):
10706         * dbus/dbus-memory.h:
10707         New function for freeing NULL-terminated string arrays.
10708
10709         * dbus/dbus-message-builder.c: (append_quoted_string),
10710         (_dbus_message_data_load):
10711         Add support for array types.
10712
10713         * dbus/dbus-message.c: (check_message_handling):
10714         Add more types as test cases.
10715
10716         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10717         (_dbus_string_parse_double):
10718         Add the start offset to the end offset.
10719
10720         * test/data/valid-messages/lots-of-arguments.message:
10721         New test message with lots of arguments.
10722
10723 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10724
10725         * dbus/dbus-message.c: (dbus_message_append_nil),
10726         (dbus_message_append_int32), (dbus_message_append_uint32),
10727         (dbus_message_append_double), (dbus_message_append_string),
10728         (dbus_message_append_int32_array),
10729         (dbus_message_append_uint32_array),
10730         (dbus_message_append_double_array),
10731         (dbus_message_append_byte_array),
10732         (dbus_message_append_string_array):
10733         Fix all out-of-memory handling in these functions.
10734
10735 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10736
10737         * dbus/dbus-message.c: (dbus_message_append_nil):
10738         Fix a silly.
10739
10740 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10741
10742         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10743         (dbus_message_append_nil), (dbus_message_append_int32_array),
10744         (dbus_message_append_uint32_array),
10745         (dbus_message_append_double_array),
10746         (dbus_message_append_byte_array),
10747         (dbus_message_append_string_array), (dbus_message_get_args_valist),
10748         (dbus_message_iter_get_int32_array),
10749         (dbus_message_iter_get_uint32_array),
10750         (dbus_message_iter_get_double_array),
10751         (dbus_message_iter_get_byte_array),
10752         (dbus_message_iter_get_string_array):
10753
10754         * dbus/dbus-message.h:
10755         Add functions for appending and getting arrays.
10756
10757 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10758
10759         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10760         element size at least 8 bytes, fixes mempool tests on
10761         64-bit machines.
10762
10763 2003-02-20  Alexander Larsson  <alexl@redhat.com>
10764
10765         * dbus/dbus-transport-unix.c (unix_do_iteration):
10766         Unlock the connection mutex during a blocking select call.
10767         Add todo about how we need a way to wake up the select.
10768
10769         * dbus/dbus-connection-internal.h:
10770         * dbus/dbus-connection.c:
10771         Add _dbus_connection_lock and _dbus_connection_unlock.
10772
10773 2003-02-19  Havoc Pennington  <hp@pobox.com>
10774
10775         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10776         Doxyfile.in, not Doxyfile
10777
10778         * dbus/dbus-keyring.c: do some hacking on this
10779
10780         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10781
10782         * dbus/dbus-errors.c (dbus_set_error_const): do not call
10783         dbus_error_init
10784         (dbus_set_error): remove dbus_error_init, check for message ==
10785         NULL *before* we sprintf into it, and add @todo about including
10786         system headers in this file
10787
10788         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10789
10790         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10791
10792         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10793         get various bits of user information based on either username
10794         or user ID
10795         (_dbus_homedir_from_username): new function
10796
10797 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
10798
10799         * configure.in:
10800         Add check for nonposix getpwnam_r
10801
10802         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10803         Align the pool element size to a sizeof (void *) boundary.
10804
10805         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10806         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10807         General Solaris fixes.
10808
10809         * test/data/valid-messages/simplest-manual.message:
10810         Explicitly state that we want little-endian packing.
10811
10812 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
10813
10814         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10815
10816         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10817         Added to create a transport connecting using a tcp/ip socket.
10818
10819         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10820         to a tcp socket at given host and port.
10821         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10822         hostname and port.
10823
10824         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10825
10826         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10827         Added to create a server listening on a TCP/IP socket.
10828
10829 2003-02-19  Havoc Pennington  <hp@pobox.com>
10830
10831         Throughout: mop up all the Doxygen warnings and undocumented
10832         stuff.
10833
10834         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10835         to search any paths.
10836
10837         * dbus/dbus-threads.c: move global mutex initializers to
10838         dbus-internals.h, multiple prototypes was confusing doxygen
10839         besides being kind of ugly
10840
10841         * Doxyfile (PREDEFINED): have Doxygen define
10842         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10843         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10844         (do not abuse the feature! it's for stuff like the autogenerated
10845         macros in dbus-md5.c, not just for things you don't feel like
10846         documenting...)
10847
10848 2003-02-18  Havoc Pennington  <hp@pobox.com>
10849
10850         * dbus/dbus-string.c (_dbus_string_zero): new function
10851
10852         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10853         wrap it in some dbus-friendly API
10854
10855         * dbus/dbus-types.h: add 16-bit types
10856
10857 2003-02-18  Joe Shaw  <joe@assbarn.com>
10858
10859         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10860         credentials from our currently running process.
10861         (get_word): Fix a buglet where we were copying the entire length
10862         instead of relative to our position.
10863
10864         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10865         keys on the stack... it's 640k of data.
10866
10867         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10868         read the credentials byte off the socket, even if we don't have
10869         SO_PEERCRED.
10870         (_dbus_poll): Implement poll() using select() for systems which
10871         don't have it.
10872
10873         * glib/test-dbus-glib.c (main): Print out an error if no
10874         parameters are given.
10875
10876         * test/data/auth/fallback.auth-script: Added.  Tests that a client
10877         can fallback to a secondary auth mechanism if the first fails.
10878
10879 2003-02-18  Havoc Pennington  <hp@pobox.com>
10880
10881         * AUTHORS: add Alex
10882
10883 2003-02-17  Havoc Pennington  <hp@pobox.com>
10884
10885         * doc/dbus-specification.sgml: lots of cosmetic
10886         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10887         env variable to DBUS_BUS_ADDRESS, s/client/application/,
10888         s/server/bus/ (except in authentication section). Add a section
10889         "Message Bus Message Routing"
10890
10891 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
10892
10893         Release 0.4
10894
10895         * NEWS: Update
10896
10897 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10898
10899         * doc/dbus-specification.sgml:
10900         Specification updates.
10901
10902 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10903
10904         * bus/activation.c: (bus_activation_init), (child_setup),
10905         (bus_activation_activate_service):
10906         * bus/activation.h:
10907         * bus/main.c: (main):
10908         Set DBUS_ADDRESS environment variable.
10909
10910         * dbus/dbus-errors.c: (dbus_set_error):
10911         Don't use va_copy since that's a C99 feature.
10912
10913         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10914         (_dbus_spawn_async):
10915         * dbus/dbus-sysdeps.h:
10916         Add child_setup_func to _dbus_spawn_async.
10917
10918         * doc/dbus-specification.sgml:
10919         Update specification.
10920
10921         * test/spawn-test.c: (setup_func), (main):
10922         Fix test.
10923
10924 2003-02-17  Alexander Larsson  <alexl@redhat.com>
10925
10926         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10927         Added todo.
10928
10929 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10930
10931         * doc/.cvsignore:
10932         * doc/Makefile.am:
10933         * doc/dbus-test-plan.sgml:
10934         Add test plan document.
10935
10936         * test/Makefile.am:
10937         Fix distcheck.
10938
10939 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10940
10941         * dbus/dbus-message.c: (decode_header_data),
10942         (_dbus_message_loader_return_buffer):
10943         Set the header padding amount when loading a message.
10944
10945 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10946
10947         * bus/dispatch.c: (send_one_message):
10948         Only send broadcast messages to registered connections.
10949
10950         * dbus/dbus-message.c: (dbus_message_name_is):
10951         * dbus/dbus-message.h:
10952         New convenience function.
10953
10954         * dbus/dbus-transport-debug.c: (do_reading):
10955         Only dispatch one message per run.
10956
10957         * test/Makefile.am:
10958         * test/bus-test.c: (new_connection_callback), (die),
10959         (test_hello_client1_handler), (test_hello_client2_handler),
10960         (test_hello_replies), (main):
10961
10962         * test/bus-test-loop.[ch]:
10963         Add these.
10964
10965 2003-02-16  Havoc Pennington  <hp@pobox.com>
10966
10967         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10968         backward conditional
10969
10970 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10971
10972         * dbus/dbus-connection.c:
10973         Implement sent_message_with_reply. (with_reply_and block is still
10974         busted).
10975         Made dispatch_message not lose message if OOM.
10976
10977         * dbus/dbus-errors.h:
10978         Add NoReply error (for reply timeouts).
10979
10980 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10981
10982         * dbus/dbus-hash.c (_dbus_hash_table_unref):
10983         Actually free keys and values when destroying hashtable.
10984
10985 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10986
10987         * dbus/dbus-auth.c: (client_try_next_mechanism):
10988         Plug a leak.
10989
10990         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
10991         Return TRUE if there's no thread implementation around.
10992
10993         * glib/dbus-gmain.c: (free_source),
10994         (dbus_connection_hookup_with_g_main):
10995         Make sure to remove the GSource when the connection is finalized.
10996
10997 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10998
10999         * bus/dispatch.c: (bus_dispatch_message_handler):
11000         * dbus/dbus-errors.h:
11001         Return an error if someone tries to send a message to a service
11002         that doesn't exist.
11003
11004 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11005
11006         * bus/activation.c: (load_directory), (bus_activation_init),
11007         (bus_activation_activate_service):
11008         * bus/activation.h:
11009         * bus/driver.c:
11010         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11011         More work on the activation handling.
11012
11013         * dbus/dbus-errors.h:
11014         Add some error messages
11015
11016         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11017         * dbus/dbus-message.h:
11018         New function that creates an error message.
11019
11020         * dbus/dbus-protocol.h:
11021         Add ACTIVATE_SERVER message.
11022
11023         * dbus/dbus-server-unix.c: (unix_handle_watch),
11024         (_dbus_server_new_for_domain_socket):
11025         Call _dbus_fd_set_close_on_exec.
11026
11027         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11028         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11029         (_dbus_fd_set_close_on_exec):
11030         * dbus/dbus-sysdeps.h:
11031         Add _dbus_fd_set_close_on exec function. Also add function that checks
11032         that all open fds are set to close-on-exec and warns otherwise.
11033
11034         * dbus/dbus-transport-unix.c:
11035         (_dbus_transport_new_for_domain_socket):
11036         Call _dbus_fd_set_close_on_exec.
11037
11038 2003-02-16  Havoc Pennington  <hp@pobox.com>
11039
11040         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11041         allow people to avoid setting SIGPIPE to SIG_IGN
11042         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11043         we've been asked not to
11044
11045 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11046
11047         * dbus/dbus-list.c: (_dbus_list_append_link),
11048         (_dbus_list_prepend_link):
11049         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11050         (dbus_realloc):
11051         Warning fixes.
11052
11053 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11054
11055         * bus/Makefile.am:
11056         * bus/activation.c: (bus_activation_entry_free),
11057         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11058         * bus/activation.h:
11059         * bus/main.c: (main):
11060         Add simple activation support, doesn't work yet though.
11061
11062 2003-02-15   Zack Rusin  <zack@kde.org>
11063
11064         * qt/dbus-qthread.cpp:  small casting fix
11065
11066 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11067
11068         * dbus/dbus-errors.c: (dbus_set_error):
11069         * dbus/dbus-errors.h:
11070         Add a few errors and make dbus_set_error void.
11071
11072         * dbus/dbus-sysdeps.c:
11073         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11074         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11075         * dbus/dbus-sysdeps.h:
11076         Add _dbus_spawn_async.
11077
11078         * test/spawn-test.c: (main):
11079         Test for _dbus_spawn_async.
11080
11081 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11082
11083         * dbus/dbus-internals.h:
11084         Fix build without tests.
11085
11086         * dbus/dbus-list.c: (alloc_link):
11087         Fix a segfault when a malloc fails.
11088
11089         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11090         (dbus_malloc0), (dbus_realloc):
11091         Add support for malloc debugging.
11092
11093 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11094
11095         * dbus/dbus-threads.c:
11096         * dbus/dbus-threads.h:
11097         Add condvars. Remove static mutext from API.
11098         Implement static mutexes by initializing them from threads_init.
11099
11100         * glib/dbus-gthread.c:
11101         * qt/dbus-qthread.cpp:
11102         Update with the thread api changes.
11103
11104
11105         * dbus/dbus-list.c:
11106         * dbus/dbus-list.h:
11107         Turn StaticMutex into normal mutex + init function.
11108         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11109         _dbus_list_append_link, _dbus_list_prepend_link
11110
11111
11112         * dbus/dbus-sysdeps.c:
11113         * dbus/dbus-sysdeps.h:
11114         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11115         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11116
11117         * dbus/dbus-protocol.h:
11118         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11119
11120         * dbus/dbus-message.c:
11121         Make ref/unref atomic.
11122         Fix some docs.
11123
11124         * dbus/dbus-connection-internal.h:
11125         * dbus/dbus-connection.c:
11126         * dbus/dbus-connection.h:
11127         Make threadsafe.
11128         Change _peek to _borrow,_return & _steal_borrowed.
11129         Change disconnect callback to event.
11130         Make dbus_connection_dispatch_messages reentrant.
11131
11132         * dbus/dbus-transport.c:
11133         Don't ref the connection on calls to the transport
11134         implementation.
11135
11136         * dbus/dbus-message-handler.c:
11137         Make threadsafe.
11138
11139         * glib/dbus-gmain.c:
11140         Don't use peek_message anymore
11141
11142         * test/Makefile.am:
11143         * test/debug-thread.c:
11144         * test/debug-thread.h:
11145         Simple thread implementation that asserts() on deadlocks in
11146         single-threaded code.
11147
11148         * test/bus-test.c:
11149         (main) Call debug_threads_init.
11150
11151         * test/watch.c:
11152         Use disconnect message instead of disconnect callback.
11153
11154         * bus/connection.c:
11155         * bus/connection.h:
11156         Don't call dbus_connection_set_disconnect_function. Instead export
11157         bus_connection_disconnect.
11158
11159         * bus/dispatch.c:
11160         Call bus_connection_disconnect when we get a disconnected message.
11161
11162 2003-02-15  Havoc Pennington  <hp@pobox.com>
11163
11164         * dbus/dbus-message.c (dbus_message_new): fool around with the
11165         docs
11166
11167 2003-02-14  Havoc Pennington  <hp@pobox.com>
11168
11169         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11170
11171         * dbus/dbus-memory.c: fail if the debug functions indicate we
11172         should
11173
11174         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11175         (_dbus_decrement_fail_alloc_counter): debug functions to
11176         simulate memory allocation failures
11177
11178 2003-02-14  Havoc Pennington  <hp@pobox.com>
11179
11180         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11181         to DBusError
11182
11183 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11184
11185         * bus/driver.c: (bus_driver_handle_hello):
11186         * bus/driver.h:
11187         * bus/services.c: (bus_service_lookup):
11188         Reorder message sending so we get a more sane order.
11189
11190         * test/bus-test.c: (message_handler):
11191         Fix tyop.
11192
11193 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11194
11195         * bus/driver.c: (bus_driver_send_service_deleted),
11196         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11197         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11198         (bus_driver_send_welcome_message),
11199         (bus_driver_handle_list_services),
11200         (bus_driver_handle_acquire_service),
11201         (bus_driver_handle_service_exists):
11202         * dbus/dbus-bus.c: (dbus_bus_register_client),
11203         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11204         * dbus/dbus-errors.c: (dbus_result_to_string):
11205         * dbus/dbus-errors.h:
11206         * dbus/dbus-message.c: (dbus_message_append_args),
11207         (dbus_message_append_args_valist), (dbus_message_get_args),
11208         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11209         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11210         (dbus_message_iter_get_byte_array),
11211         (dbus_message_iter_get_string_array), (message_iter_test),
11212         (check_message_handling), (_dbus_message_test):
11213         * dbus/dbus-message.h:
11214         * test/bus-test.c: (main):
11215         Change fields to arguments in messages, so that they won't be
11216         confused with header fields.
11217
11218         * glib/test-dbus-glib.c: (main):
11219         Remove append_fields from hello message.
11220
11221 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11222
11223         * dbus/dbus-errors.c:
11224         * dbus/dbus-message.c:
11225         * dbus/dbus-string.c:
11226         Documentation fixes.
11227
11228 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11229
11230         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11231         (remove_timeout):
11232         Implement support for timeouts in dbus-glib.
11233
11234 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11235
11236         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11237         * dbus/dbus-message.c: (process_test_subdir):
11238         * test/break-loader.c: (find_breaks_based_on):
11239         Plug some memory leaks.
11240
11241 2003-02-13  Richard Hult  <rhult@codefactory.se>
11242
11243         * bus/main.c: Fix build.
11244
11245         * dbus/dbus-errors.h:
11246         * dbus/dbus-errors.c: Fix copyright for Anders.
11247
11248 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11249
11250         * bus/Makefile.am:
11251         Add utils.[ch]
11252
11253         * bus/connection.c: (bus_connection_foreach):
11254         Fix a warning.
11255
11256         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11257         (unescape_string), (new_section), (parse_section_start),
11258         (parse_key_value), (report_error), (bus_desktop_file_load),
11259         (bus_desktop_file_get_string):
11260         * bus/desktop-file.h:
11261         Use DBusError for error reporting.
11262
11263         * bus/dispatch.c: (send_one_message),
11264         (bus_dispatch_message_handler):
11265         * bus/driver.c: (bus_driver_send_service_deleted),
11266         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11267         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11268         (bus_driver_send_welcome_message),
11269         (bus_driver_handle_list_services),
11270         (bus_driver_handle_acquire_service),
11271         (bus_driver_handle_service_exists):
11272         * bus/loop.c: (bus_loop_run):
11273         * bus/main.c:
11274         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11275
11276         * bus/utils.c: (bus_wait_for_memory):
11277         * bus/utils.h:
11278         New files with general utility functions.
11279
11280         * dbus/dbus-internals.h:
11281         Remove _DBUS_HANDLE_OOM.
11282
11283 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11284
11285         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11286         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11287         * dbus/dbus-errors.h:
11288         Add DBusError structure.
11289
11290 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11291
11292         * test/data/valid-messages/standard-acquire-service.message:
11293         * test/data/valid-messages/standard-hello.message:
11294         * test/data/valid-messages/standard-list-services.message:
11295         * test/data/valid-messages/standard-service-exists.message:
11296         Add some standard messages.
11297
11298 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11299
11300         * bus/driver.c: (bus_driver_send_welcome_message),
11301         (bus_driver_handle_list_services),
11302         (bus_driver_handle_acquire_service),
11303         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11304         Update for API changes in libdbus.
11305
11306         * dbus/dbus-message.c: (dbus_message_new_reply):
11307         * dbus/dbus-message.h:
11308         Remove the name argument. The spec states that replies shouldn't
11309         have a name.
11310
11311 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11312
11313         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11314         (report_error), (bus_desktop_file_load), (lookup_section),
11315         (lookup_line), (bus_desktop_file_get_raw),
11316         (bus_desktop_file_get_string):
11317         * bus/desktop-file.h:
11318         Some fixes, and new functions for getting a key value from a section.
11319
11320 2003-02-13  Havoc Pennington  <hp@pobox.com>
11321
11322         * test/data/auth/fail-after-n-attempts.auth-script: new test
11323
11324         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11325         reject the client.
11326
11327 2003-02-13  Havoc Pennington  <hp@pobox.com>
11328
11329         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11330         dbus_credentials_match were backward
11331
11332         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11333         NO_CREDENTIALS and ROOT_CREDENTIALS
11334
11335         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11336         into here. Never process more commands after we've reached an
11337         end state; store further data as unused bytes.
11338
11339         * test/data/auth/*: add more auth tests
11340
11341         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11342         command to match exact string and EXPECT_UNUSED to match unused
11343         bytes
11344
11345         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11346
11347 2003-02-12  Havoc Pennington  <hp@pobox.com>
11348
11349         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11350         \r off of popped lines
11351
11352         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11353         scripts
11354
11355         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11356         SEND, append \r\n
11357
11358 2003-02-12  Havoc Pennington  <hp@pobox.com>
11359
11360         * dbus/Makefile.am: remove break-loader from the build, since it
11361         moved.
11362
11363         * configure.in: add --enable-gcov to turn on coverage profiling
11364         flags and disable optimization
11365
11366 2003-02-10  Havoc Pennington  <hp@pobox.com>
11367
11368         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11369         initial cut at test framework for DBusAuth from laptop.
11370         Doesn't quite work yet but it compiles and I need to get
11371         it off the 266mhz laptop. ;-)
11372
11373         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11374         fix a memleak in error case
11375
11376 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11377
11378         * bus/Makefile.am:
11379         * bus/desktop-file.c:
11380         * bus/desktop-file.h:
11381         Add a desktop file parser.
11382
11383 2003-02-11  Zack Rusin  <zack@kde.org>
11384
11385         * qt/message.[h|cpp]: sample implementation
11386         of the KDE wrapper for DBusMessage
11387
11388 2003-02-09  Zack Rusin  <zack@kde.org>
11389
11390         * test/bus-test.c: make_it_compile
11391         * doc/dbus-specification.sgml: minimal semantic fix
11392
11393 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11394
11395         Release 0.3
11396
11397         * NEWS: Update
11398
11399 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11400
11401         * dbus/Makefile.am:
11402         * dbus/dbus-break-loader.c:
11403         * test/Makefile.am:
11404         * test/break-loader.c:
11405         Move dbus-break-loader to test/ and rename it to break-loader.
11406
11407 2003-02-02  Havoc Pennington  <hp@pobox.com>
11408
11409         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11410         for code to manage cookies in your home directory
11411
11412         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11413
11414         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11415         to authenticate, then disconnect the client.
11416
11417 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11418
11419         * dbus/dbus-message.c (dbus_message_append_fields):
11420         Correct docs.
11421
11422 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11423
11424         * doc/dbus-specification.sgml:
11425         Update address format section.
11426
11427 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11428
11429         * test/Makefile.am:
11430         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11431         (message_handler), (new_connection_callback), (loop_quit),
11432         (loop_run), (main):
11433         Add bus test.
11434
11435 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11436
11437         * bus/driver.c: (bus_driver_handle_service_exists):
11438         Simplify the code a bit.
11439
11440         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11441         Fix a silly.
11442
11443 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11444
11445         * bus/Makefile.am:
11446         Add libdbus-daemon.la and link to it.
11447
11448 2003-02-01  James Willcox  <jwillcox@gnome.org>
11449
11450         * bus/driver.c: (bus_driver_handle_own_service):
11451         Actually include the service reply code in the message.
11452
11453 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11454
11455         * bus/driver.c: (bus_driver_handle_service_exists):
11456         Don't unref the incoming message.
11457
11458 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11459
11460         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11461
11462 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11463
11464         * dbus/dbus-server.c: (dbus_server_listen):
11465         * dbus/dbus-transport.c: (_dbus_transport_open):
11466         ifdef out the calls to the debug transport and server.
11467
11468 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11469
11470         * dbus/dbus-watch.c (dbus_watch_get_flags):
11471         Add note in the docs that ERROR or HANGUP won't be returned
11472         and are assumed always on.
11473
11474         * glib/dbus-gmain.c (add_watch):
11475         Always add IO_ERR | IO_HUP
11476
11477         * dbus/dbus-message.h:
11478         Add semicolon after dbus_message_iter_get_string_array().
11479         Makes qt code build again
11480
11481 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11482
11483         * bus/driver.c: (create_unique_client_name),
11484         (bus_driver_handle_hello):
11485         Don't take a name, just use a numeric id to identify
11486         each client.
11487
11488         * dbus/Makefile.am:
11489         * dbus/dbus-bus.c: (dbus_bus_register_client),
11490         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11491         * dbus/dbus-bus.h:
11492         Add new convenience functions for communicating with the bus.
11493
11494         * dbus/dbus-message.h:
11495
11496         * dbus/dbus-protocol.h:
11497         Fix a typo.
11498
11499 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11500
11501         * dbus/dbus-message.c (dbus_message_append_fields):
11502         Add some more doc comments.
11503
11504 2003-02-01  Havoc Pennington  <hp@pobox.com>
11505
11506         * dbus/dbus-break-loader.c (randomly_modify_length): change
11507         a 4-byte value in the message as if it were a length
11508
11509         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11510         execute bit on saved files
11511
11512 2003-02-01  Havoc Pennington  <hp@pobox.com>
11513
11514         * dbus/dbus-break-loader.c (main): new program to find messages
11515         that break the loader.
11516
11517         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11518         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11519
11520         * dbus/dbus-string.c (_dbus_string_set_byte): new
11521
11522 2003-01-31  Havoc Pennington  <hp@pobox.com>
11523
11524         * dbus/dbus-message.c: refactor the test code to be more general,
11525         in preparation for writing a "randomly permute test cases to
11526         try to break the loader" program.
11527
11528 2003-01-31  Havoc Pennington  <hp@pobox.com>
11529
11530         * doc/dbus-specification.sgml: work on the specification
11531
11532         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11533         the protocol version of the message.
11534
11535         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11536         no longer specifies that.
11537         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11538         1/2/3/4)
11539
11540         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11541         "break" for DBUS_TYPE_NIL, remove @todo
11542
11543 2003-01-31  Havoc Pennington  <hp@pobox.com>
11544
11545         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11546         just set_is_error/get_is_error as this is a commonly-used
11547         function, and write docs.
11548
11549 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11550
11551         * dbus/dbus-address.c: (dbus_address_entry_free):
11552         Free key and value lists.
11553
11554         * dbus/dbus-internals.c: (_dbus_type_to_string):
11555         Add the types we didn't have.
11556
11557         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11558         (_dbus_marshal_validate_arg):
11559         Add NIL types.
11560
11561         * dbus/dbus-message.c: (dbus_message_set_sender):
11562         Remove todo about being able to set sender to NULL.
11563
11564         (dbus_message_set_is_error_reply),
11565         (dbus_message_get_is_error_reply):
11566         * dbus/dbus-message.h:
11567         New functions.
11568
11569         * dbus/dbus-protocol.h:
11570         Add error reply flag.
11571
11572         * test/data/valid-messages/opposite-endian.message:
11573         Add NIL type to test.
11574
11575 2003-01-31  Havoc Pennington  <hp@pobox.com>
11576
11577         * doc/dbus-specification.sgml: fully specify the header.  Add
11578         flags and major protocol version, and change header/body len to
11579         unsigned.
11580
11581         * dbus/dbus-message-builder.c (append_saved_length): append length
11582         as uint32
11583
11584         * dbus/dbus-message.c (dbus_message_create_header): change header
11585         length and body length to unsigned. Add the new fields from the
11586         spec
11587         (_dbus_message_loader_return_buffer): unsigned header/body len
11588
11589 2003-01-30  Havoc Pennington  <hp@pobox.com>
11590
11591         * dbus/dbus-auth.c: rework to use only REJECTED, no
11592         MECHANISMS
11593
11594         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11595         use REJECTED, suggested by Mark McLoughlin
11596
11597 2003-01-30  Havoc Pennington  <hp@pobox.com>
11598
11599         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11600         a better way to report errors here. e.g.  "unix address lacks
11601         path" or something. also "no such file" when the path doesn't
11602         exist, etc.
11603
11604         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11605         leaking list nodes
11606         (dbus_parse_address): add @todo about documenting address format,
11607         and allowing , and ; to be escaped
11608
11609 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11610
11611         * dbus/Makefile.am:
11612         Add dbus-address.[ch]
11613
11614         * dbus/dbus-address.c: (dbus_address_entry_free),
11615         (dbus_address_entries_free), (create_entry),
11616         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11617         (dbus_parse_address), (_dbus_address_test):
11618         * dbus/dbus-address.h:
11619         New files for dealing with address parsing.
11620
11621         * dbus/dbus-connection.c:
11622         Document timeout functions.
11623
11624         * dbus/dbus-message.c:
11625         Document dbus_message_new_from_message.
11626
11627         * dbus/dbus-server-debug.c:
11628         Document.
11629
11630         * dbus/dbus-server.c: (dbus_server_listen):
11631         Parse address and use correct server implementation.
11632
11633         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11634         * dbus/dbus-string.h:
11635         New function with test.
11636
11637         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11638         * dbus/dbus-test.h:
11639         Add address tests.
11640
11641         * dbus/dbus-transport-debug.c:
11642         Document.
11643
11644         * dbus/dbus-transport.c: (_dbus_transport_open):
11645         Parse address and use correct transport implementation.
11646
11647 2003-01-30  Havoc Pennington  <hp@pobox.com>
11648
11649         * dbus/dbus-message.c: use message->byte_order instead of
11650         DBUS_COMPILER_BYTE_ORDER throughout.
11651         (dbus_message_create_header): pad header to align the
11652         start of the body of the message to 8-byte boundary
11653
11654         * dbus/dbus-marshal.h: make all the demarshalers take const
11655         DBusString arguments.
11656
11657         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11658         validate message args here, so we don't have to do slow validation
11659         later, and so we catch bad messages as they are incoming. Also add
11660         better checks on header_len and body_len. Also fill in
11661         message->byte_order
11662
11663         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11664         implemented properly)
11665         (_dbus_string_validate_nul): new function to check all-nul
11666
11667         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11668         get_arg_end_pos and remove all validation
11669         (_dbus_marshal_validate_arg): actually do validation here.
11670
11671 2003-01-29  Havoc Pennington  <hp@pobox.com>
11672
11673         * dbus/dbus-message.c (check_message_handling): fix assertion
11674         failure on set_client_serial
11675
11676 2003-01-28  Havoc Pennington  <hp@pobox.com>
11677
11678         * dbus/dbus-server-debug.c: Add doc section comments
11679
11680         * dbus/dbus-transport-debug.c: add doc section comments
11681
11682 2003-01-28  Havoc Pennington  <hp@redhat.com>
11683
11684         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11685         the reverse order from how I had it
11686         (_dbus_string_base64_encode): reverse encoding order. I was
11687         basically byteswapping everything during encoding.
11688
11689 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11690
11691         * dbus/dbus-connection-internal.h:
11692         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11693         (_dbus_connection_remove_timeout):
11694         Add functions for adding and removing timeouts.
11695
11696         * dbus/dbus-message.c: (dbus_message_new_from_message):
11697         Add new function that takes a message and creates an exact
11698         copy of it, but with the refcount set to 1.
11699         (check_message_handling):
11700         Fix build error.
11701
11702         * dbus/dbus-server-protected.h:
11703         * dbus/dbus-server.c: (_dbus_server_init_base),
11704         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11705         (dbus_server_set_timeout_functions):
11706         (_dbus_server_remove_timeout):
11707         New functions so that a server can add and remove timeouts.
11708
11709         (dbus_server_listen):
11710         Add commented out call to dbus_server_debug_new.
11711
11712         * dbus/dbus-timeout.c: (_dbus_timeout_new):
11713         Actually set the handler, doh.
11714
11715         * dbus/dbus-transport.c: (_dbus_transport_open):
11716         Add commented out call to dbus_transport_debug_client_new.
11717
11718         * dbus/Makefile.am:
11719         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11720
11721 2003-01-28  Havoc Pennington  <hp@pobox.com>
11722
11723         * dbus/dbus-message.c (check_message_handling): function to check
11724         on the loaded message, iterates over it etc.
11725
11726 2003-01-28  Havoc Pennington  <hp@pobox.com>
11727
11728         * test/Makefile.am (dist-hook): fix make distdir
11729
11730         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11731
11732 2003-01-27  Havoc Pennington  <hp@pobox.com>
11733
11734         * dbus/dbus-mempool.c (time_for_size): replace printf with
11735         _dbus_verbose
11736
11737         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11738         empty lines; fix the SAVE_LENGTH stuff to be
11739         START_LENGTH/END_LENGTH so it actually works; couple other
11740         bugfixes
11741
11742         * test/Makefile.am (dist-hook): add dist-hook for .message files
11743
11744         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11745         can be constant or locked.
11746         (_dbus_string_free): allow freeing a const string as
11747         documented/intended
11748
11749         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11750
11751         * dbus/dbus-test-main.c (main): take an argument which is the
11752         directory containing test data
11753
11754         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11755         argument to this and load all the messages in test/data/
11756         checking that they can be loaded or not loaded as appropriate.
11757
11758 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
11759
11760         * bus/dispatch.c: (bus_dispatch_message_handler):
11761         Dispatch messages sent to services.
11762
11763         * bus/driver.c: (bus_driver_send_service_deleted),
11764         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11765         (bus_driver_send_service_acquired):
11766         Add helper functions for sending service related messages.
11767
11768         (bus_driver_send_welcome_message):
11769         Send HELLO_REPLY instead of WELCOME.
11770
11771         (bus_driver_handle_list_services):
11772         Send LIST_SERVICES_REPLY instead of SERVICES.
11773
11774         (bus_driver_handle_own_service),
11775         (bus_driver_handle_service_exists):
11776         New message handlers.
11777
11778         (bus_driver_handle_message):
11779         Invoke new message handlers.
11780
11781         (bus_driver_remove_connection):
11782         Don't remove any services here since that's done automatically
11783         by bus_service_remove_owner now.
11784
11785         * bus/driver.h:
11786         New function signatures.
11787
11788         * bus/services.c: (bus_service_add_owner):
11789         Send ServiceAcquired message if we're the only primary owner.
11790
11791         (bus_service_remove_owner):
11792         Send ServiceAcquired/ServiceLost messages.
11793
11794         (bus_service_set_prohibit_replacement),
11795         (bus_service_get_prohibit_replacement):
11796         Functions for setting prohibit replacement.
11797
11798         (bus_service_has_owner):
11799         New function that checks if a connection is in the owner queue of
11800         a certain service.
11801
11802         * bus/services.h:
11803         Add new function signatures.
11804
11805         * dbus/dbus-list.c: (_dbus_list_test):
11806         Add tests for _dbus_list_remove_last and traversing the list backwards.
11807
11808         * dbus/dbus-list.h:
11809         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11810         go any further, so return NULL then.
11811
11812         * dbus/dbus-protocol.h:
11813         Add new messages, service flags and service replies.
11814
11815 2003-01-26  Havoc Pennington  <hp@pobox.com>
11816
11817         * dbus/dbus-message-builder.c: implement, completely untested.
11818
11819         * test/data/*: add data to be used in testing.
11820         ".message" files are our simple loadable text format.
11821         ".message-raw" will be binary dumps of messages.
11822
11823         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11824
11825 2003-01-26  Havoc Pennington  <hp@pobox.com>
11826
11827         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11828
11829         * dbus/dbus-errors.c (dbus_result_to_string): add
11830         file errors
11831
11832         * dbus/dbus-message-builder.c: new file, will contain code to load
11833         up messages from files. Not implemented yet.
11834
11835 2003-01-26  Havoc Pennington  <hp@pobox.com>
11836
11837         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11838         the sender by setting to NULL
11839
11840 2003-01-26  Havoc Pennington  <hp@pobox.com>
11841
11842         The unit tests pass, but otherwise untested.  If it breaks, the
11843         tests should have been better. ;-)
11844
11845         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11846         the connection.
11847
11848         * dbus/dbus-message.c: redo everything so we maintain
11849         message->header as the only copy of the various fields.
11850         This avoids the possibility of out-of-memory in some cases,
11851         for example dbus_message_lock() can't run out of memory anymore,
11852         and avoids extra copying. Figured I may as well go ahead and do
11853         this since it was busted for dbus_message_lock to not return
11854         failure on OOM, and dbus_message_write_header was totally
11855         unchecked for OOM. Also fixed some random other bugs.
11856
11857         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11858         that strings are nul-terminated. Also, end_pos can be equal
11859         to string length just not greater than, I think.
11860         (_dbus_marshal_set_int32): new function
11861         (_dbus_marshal_set_uint32): new function
11862         (_dbus_marshal_set_string): new function
11863
11864         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11865         a warning, init timeout_list to NULL
11866         (dbus_connection_send_message): don't use uninitialized variable
11867         "serial"
11868
11869         * dbus/dbus-string.c (_dbus_string_replace_len): new function
11870
11871 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11872
11873         * bus/driver.c: (bus_driver_handle_hello),
11874         (bus_driver_send_welcome_message):
11875         Plug leaks
11876
11877 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11878
11879         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11880         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11881         (dbus_connection_unref):
11882         * dbus/dbus-marshal.c: (_dbus_marshal_test):
11883         * dbus/dbus-message.c: (dbus_message_unref),
11884         Plug memory leaks.
11885
11886         (dbus_message_get_fields):
11887         Remove debugging printout.
11888
11889         (_dbus_message_loader_return_buffer):
11890         Don't store the header string.
11891
11892         (_dbus_message_test):
11893         Plug leaks.
11894
11895 2003-01-26  Richard Hult  <rhult@codefactory.se>
11896
11897         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11898         the file descriptor list, since it can change under us.
11899
11900 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11901
11902         * glib/dbus-gmain.c: (dbus_connection_prepare),
11903         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11904         (remove_watch), (dbus_connection_hookup_with_g_main):
11905         Rewrite the glib handling to use its own GSource instead of a
11906         GIOChannel so we can catch messages put in the queue while waiting
11907         for a reply.
11908
11909 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11910
11911         * bus/Makefile.am:
11912         * bus/connection.c: (connection_disconnect_handler),
11913         (connection_watch_callback), (bus_connection_setup):
11914         * bus/dispatch.c: (send_one_message),
11915         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11916         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11917         * bus/dispatch.h:
11918         * bus/driver.c: (bus_driver_send_service_deleted),
11919         (bus_driver_send_service_created), (bus_driver_handle_hello),
11920         (bus_driver_send_welcome_message),
11921         (bus_driver_handle_list_services), (bus_driver_remove_connection),
11922         (bus_driver_handle_message):
11923         * bus/driver.h:
11924         Refactor code, put the message dispatching in its own file. Use
11925         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11926         is disconnected.
11927
11928 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11929
11930         * dbus/dbus-internals.h:
11931         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11932
11933         * dbus/dbus-message.c: (dbus_message_get_sender):
11934         * dbus/dbus-message.h:
11935         Implement dbus_message_get_sender.
11936
11937         * dbus/dbus-protocol.h:
11938         Add message and service defines.
11939
11940 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11941
11942         * dbus/dbus-connection.c: (dbus_connection_send_message):
11943         * dbus/dbus-message-internal.h:
11944         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11945         (dbus_message_write_header):
11946         Remove _dbus_messag_unlock and don't set the client serial on a
11947         message if one already exists.
11948
11949 2003-01-24  Havoc Pennington  <hp@pobox.com>
11950
11951         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
11952         list_pool
11953
11954         * bus/driver.c (bus_driver_handle_list_services): fix a leak
11955         on OOM
11956
11957 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11958
11959         * dbus/dbus-list.c: (alloc_link), (free_link):
11960         Use a memory pool for the links.
11961
11962 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11963
11964         * bus/connection.c: (bus_connection_foreach):
11965         * bus/connection.h:
11966         Add new bus_connection_foreach function.
11967
11968         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
11969         Add function that broadcasts a message to all clients.
11970
11971         (bus_driver_send_service_created), (bus_driver_handle_hello),
11972         (bus_driver_send_welcome_message),
11973         (bus_driver_handle_list_services), (bus_driver_message_handler):
11974         Implement functions that take care of listing services, and notifying
11975         clients when new services are created.
11976
11977         * bus/services.c: (bus_services_list):
11978         * bus/services.h:
11979         Add new function that returns an array of strings with the currently
11980         registered services.
11981
11982         * glib/dbus-glib.h:
11983         * glib/dbus-gmain.c:
11984         Update copyright year.
11985
11986 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11987
11988         * dbus/dbus-connection.c: (dbus_connection_send_message):
11989         Unlock the message in case it was sent earlier.
11990
11991         (dbus_connection_send_message_with_reply_and_block):
11992         Remove the reply message from the list.
11993
11994         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11995         Set array_len and new_pos correctly.
11996
11997         (_dbus_marshal_test):
11998         Remove debug output.
11999
12000         * dbus/dbus-message-internal.h:
12001         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12002         New function that returns the reply serial.
12003
12004         (_dbus_message_unlock):
12005         New function that unlocks a message and resets its header.
12006
12007         (dbus_message_append_string_array),
12008         (dbus_message_get_fields_valist),
12009         (dbus_message_iter_get_field_type),
12010         (dbus_message_iter_get_string_array),
12011         (dbus_message_get_fields),
12012         (dbus_message_append_fields_valist):
12013         Handle string arrays.
12014
12015         (dbus_message_set_sender):
12016         Make this function public since the bus daemon needs it.
12017
12018         (decode_header_data):
12019         Set the reply serial to -1 initially.
12020
12021         * dbus/dbus-message.h:
12022         Add dbus_message_set_sender.
12023
12024 2003-01-24  Havoc Pennington  <hp@pobox.com>
12025
12026         * doc/dbus-specification.sgml: add some stuff
12027
12028 2003-01-22  Havoc Pennington  <hp@pobox.com>
12029
12030         * doc/dbus-specification.sgml: Start to document the protocol.
12031
12032 2003-01-22  Havoc Pennington  <hp@pobox.com>
12033
12034         * dbus/dbus-connection.c
12035         (dbus_connection_send_message_with_reply_and_block): add some @todo
12036
12037         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12038
12039 2003-01-21  Havoc Pennington  <hp@pobox.com>
12040
12041         (patch untested because can't compile)
12042
12043         * bus/driver.c (create_unique_client_name): make this function
12044         never recycle client names. Also, caller should initialize
12045         the DBusString.
12046
12047         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12048
12049 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12050
12051         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12052         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12053         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12054         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12055         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12056         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12057         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12058         * dbus/dbus-marshal.h:
12059         * dbus/dbus-protocol.h:
12060         Add support for marshalling and demarshalling integer, double
12061         and string arrays.
12062
12063 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12064
12065         * bus/Makefile.am:
12066         Add driver.[ch]
12067
12068         * bus/connection.c: (connection_disconnect_handler):
12069         Remove the connection from the bus driver's list.
12070
12071         (connection_watch_callback): Dispatch messages.
12072
12073         (free_connection_data): Free connection name.
12074
12075         (bus_connection_setup): Add connection to the bus driver's list.
12076         (bus_connection_remove_owned_service):
12077         (bus_connection_set_name), (bus_connection_get_name):
12078         Add functions for setting and getting the connection's name.
12079
12080         * bus/connection.h:
12081         Add function headers.
12082
12083         * bus/driver.c: (create_unique_client_name),
12084         (bus_driver_handle_hello_message),
12085         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12086         (bus_driver_add_connection), (bus_driver_remove_connection):
12087         * bus/driver.h:
12088         * bus/main.c:
12089         * bus/services.c: (bus_service_free):
12090         * bus/services.h:
12091         New file that handles communication and registreation with the bus
12092         itself.
12093
12094 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12095
12096         * dbus/dbus-connection.c: (dbus_connection_send_message):
12097         Add a new client_serial parameter.
12098
12099         (dbus_connection_send_message_with_reply):
12100         Remove a @todo since we've implemented the blocking function.
12101
12102         (dbus_connection_send_message_with_reply_and_block):
12103         New function that sends a message and waits for a reply and
12104         then returns the reply.
12105
12106         * dbus/dbus-connection.h:
12107         Add new functions.
12108
12109         * dbus/dbus-errors.c: (dbus_result_to_string):
12110         * dbus/dbus-errors.h:
12111         Add new DBUS_RESULT.
12112
12113         * dbus/dbus-message-internal.h:
12114         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12115         (_dbus_message_set_sender), (dbus_message_write_header),
12116         (dbus_message_new_reply), (decode_header_data),
12117         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12118         * dbus/dbus-message.h:
12119         Add new functions that set the reply serial and sender.
12120         Also marshal and demarshal them correctly and add test.
12121
12122         * dbus/dbus-protocol.h:
12123         Add new DBUS_MESSAGE_TYPE_SENDER.
12124
12125         * glib/dbus-glib.h:
12126         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12127         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12128         (dbus_connection_hookup_with_g_main):
12129         * glib/test-dbus-glib.c: (main):
12130         Rewrite to use GIOChannel and remove the GSource crack.
12131
12132         * test/echo-client.c: (main):
12133         * test/watch.c: (check_messages):
12134         Update for changed APIs
12135
12136 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12137
12138         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12139
12140         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12141         Create a DBusTimeoutList.
12142         (dbus_connection_set_timeout_functions): Add new function to
12143         set timeout callbacks
12144
12145         * dbus/dbus-connection.h: Add public DBusTimeout API.
12146
12147         * dbus/dbus-message.c: (dbus_message_get_service):
12148         * dbus/dbus-message.h:  New function.
12149
12150         * dbus/dbus-server.c: Fix small doc typo.
12151
12152         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12153
12154 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12155
12156         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12157         of the string, just as long as specified.
12158
12159 2003-01-19  Havoc Pennington  <hp@pobox.com>
12160
12161         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12162         new function
12163
12164         * dbus/dbus-server.c (dbus_server_set_max_connections)
12165         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12166         keep track of current number of connections, and add API for
12167         setting a max (but haven't implemented enforcing the max yet)
12168
12169 2003-01-18  Havoc Pennington  <hp@pobox.com>
12170
12171         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12172         reading/writing if read_watch != NULL or write_watch != NULL.
12173
12174         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12175         the message loader code to actually load message->header and
12176         message->body into the newly-created message.
12177
12178         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12179         in OOM case
12180
12181         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12182         (dbus_connection_get_max_message_size)
12183         (dbus_connection_set_max_live_messages_size)
12184         (dbus_connection_get_max_live_messages_size): implement some
12185         resource limitation functions
12186
12187         * dbus/dbus-resources.c: new file implementing some of the
12188         resource limits stuff
12189
12190         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12191         missing docs, add @todo to handle OOM etc.
12192
12193         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12194         docs
12195
12196 2003-01-18  Havoc Pennington  <hp@pobox.com>
12197
12198         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12199         connection if it hasn't been already.
12200
12201         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12202         replace with DisconnectFunction.
12203
12204 2003-01-18  Havoc Pennington  <hp@pobox.com>
12205
12206         Building --disable-verbose-mode --disable-asserts --disable-tests
12207         cuts the library from 112K to 45K or so
12208
12209         * configure.in: check for varargs macro support,
12210         add --enable-verbose-mode, --enable-asserts.
12211
12212         * dbus/dbus-internals.h (_dbus_assert): support
12213         DBUS_DISABLE_ASSERT
12214         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12215
12216 2003-01-18  Havoc Pennington  <hp@pobox.com>
12217
12218         * dbus/dbus-test.c: include config.h so that tests actually run
12219
12220         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12221         so the failure mode when that assumption fails will be plenty
12222         obvious.
12223
12224 2003-01-18  Havoc Pennington  <hp@pobox.com>
12225
12226         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12227
12228         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12229         the distribution
12230
12231         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12232         since we don't want to use those in make check
12233
12234 2003-01-15  Havoc Pennington  <hp@redhat.com>
12235
12236         Release 0.2
12237
12238         * NEWS: update
12239
12240 2003-01-15  Havoc Pennington  <hp@redhat.com>
12241
12242         * test/Makefile.am: fix so that test source code ends up in the
12243         distribution on make distcheck
12244
12245 2003-01-15  Havoc Pennington  <hp@redhat.com>
12246
12247         Release 0.1.
12248
12249         * NEWS: update
12250
12251 2003-01-15  Havoc Pennington  <hp@redhat.com>
12252
12253         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12254         fix build when --disable-tests
12255
12256         * Makefile.am (EXTRA_DIST): put HACKING in here
12257
12258         * HACKING: document procedure for making a tarball release.
12259
12260 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12261
12262         * bus/connection.c: (connection_error_handler),
12263         (bus_connection_setup):
12264         * bus/main.c: (main):
12265         Make sure that the DBusConnectionData struct is NULLed
12266         out to prevent a segfault.
12267
12268         * dbus/dbus-errors.c: (dbus_result_to_string):
12269         * dbus/dbus-errors.h:
12270         * dbus/dbus-message.c: (dbus_message_get_fields),
12271         (dbus_message_get_fields_valist), (_dbus_message_test):
12272         * dbus/dbus-message.h:
12273         Make dbus_message_get_fields return a result code so we can
12274         track invalid fields as well as oom.
12275
12276 2003-01-11  Havoc Pennington  <hp@pobox.com>
12277
12278         * configure.in: change --enable-test/--enable-ansi action-if-given
12279         to enable_foo=$enableval instead of enable_foo=yes
12280
12281 2003-01-08  Havoc Pennington  <hp@pobox.com>
12282
12283         * dbus/dbus-string.c (_dbus_string_align_length): new function
12284
12285         * dbus/dbus-test-main.c: move main() for test app here
12286         * dbus/dbus-test.c
12287         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12288         symbol to run tests, because dbus-test isn't in the main
12289         library
12290
12291         Code review nitpicks.
12292
12293         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12294         for people with narrow emacs ;-). Assert client_serial was filled
12295         in. Assert message->name != NULL.
12296         (dbus_message_append_fields): have "first_field_type" arg separate
12297         from va list, needed for C++ binding that also uses varargs IIRC
12298         and helps with type safety
12299         (dbus_message_new): add @todo about using DBusString to store
12300         service/name internally
12301         (dbus_message_new): don't leak ->service and ->name on OOM later
12302         in the function
12303         (dbus_message_unref): free the service name
12304         (dbus_message_get_fields): same change to varargs
12305         i.e. first_field_type
12306         (_dbus_message_loader_return_buffer): assert that the message data
12307         is aligned (if not it's a bug in our code). Put in verbose griping
12308         about why we set corrupted = TRUE.
12309         (decode_header_data): add FIXME that char* is evil.  Was going to
12310         add FIXME about evil locale-specific string.h strncmp, but just
12311         switched to wacky string-as-uint32 optimization. Move check for
12312         "no room for field name" above get_const_data_len() to avoid
12313         assertion failure in get_const_data_len if we have trailing 2
12314         bytes or the like. Check for service and name fields being
12315         provided twice. Don't leak service/name on error. Require field
12316         names to be aligned to 4 bytes.
12317
12318         * dbus/dbus-marshal.c: move byte swap stuff to header
12319         (_dbus_pack_int32): uscore-prefix
12320         (_dbus_unpack_int32): uscore-prefix
12321         (_dbus_unpack_uint32): export
12322         (_dbus_demarshal_string): add @todo complaining about use of
12323         memcpy()
12324         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12325         handling allowing corrupt data to go unchecked
12326
12327 2003-01-08  Havoc Pennington  <hp@redhat.com>
12328
12329         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12330         to the select() as needed for authentication. (should be using
12331         _dbus_poll() not select, but for another day)
12332
12333         * dbus/dbus.h: include dbus/dbus-protocol.h
12334
12335 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12336
12337         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12338         dbus-connection.h
12339
12340 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12341
12342         * dbus/dbus-internals.c: (_dbus_type_to_string):
12343         New function that returns a string describing a type.
12344
12345         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12346         * dbus/dbus-marshal.h:
12347         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12348         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12349         (dbus_message_iter_get_byte_array):
12350         * dbus/dbus-message.h:
12351         Add new convenience functions for appending and getting message fields.
12352         Also add demarshalling routines for byte arrays.
12353
12354 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12355
12356         * dbus/dbus-connection-internal.h:
12357         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12358         (_dbus_connection_get_next_client_serial),
12359         (dbus_connection_send_message):
12360         * dbus/dbus-internals.h:
12361         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12362         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12363         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12364         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12365         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12366         (_dbus_verbose_bytes), (_dbus_marshal_test):
12367         * dbus/dbus-marshal.h:
12368         * dbus/dbus-message-internal.h:
12369         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12370         (dbus_message_write_header), (_dbus_message_lock),
12371         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12372         (dbus_message_get_name), (dbus_message_append_int32),
12373         (dbus_message_append_uint32), (dbus_message_append_double),
12374         (dbus_message_append_string), (dbus_message_append_byte_array),
12375         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12376         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12377         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12378         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12379         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12380         (decode_header_data), (_dbus_message_loader_return_buffer),
12381         (message_iter_test), (_dbus_message_test):
12382         * dbus/dbus-message.h:
12383         * dbus/dbus-protocol.h:
12384         * dbus/dbus-test.c: (main):
12385         * dbus/dbus-test.h:
12386         * glib/test-dbus-glib.c: (message_handler), (main):
12387         * test/echo-client.c: (main):
12388         * test/watch.c: (check_messages):
12389         Make messages sendable and receivable for real.
12390
12391 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12392
12393         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12394         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12395         * dbus/dbus-message.c: (dbus_message_append_int32),
12396         (dbus_message_append_uint32), (dbus_message_append_double),
12397         (dbus_message_append_string), (dbus_message_append_byte_array):
12398         Handle OOM restoration.
12399
12400 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12401
12402         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12403         (_dbus_demarshal_string), (_dbus_marshal_test):
12404         * dbus/dbus-marshal.h:
12405         * dbus/dbus-message.c: (dbus_message_get_name),
12406         Document these functions.
12407
12408         (dbus_message_append_int32), (dbus_message_append_uint32),
12409         (dbus_message_append_double), (dbus_message_append_string),
12410         (dbus_message_append_byte_array):
12411         * dbus/dbus-message.h:
12412         Add functions for adding message fields of different types.
12413
12414         * dbus/dbus-protocol.h:
12415         Add the different types.
12416
12417 2003-01-05  Havoc Pennington  <hp@pobox.com>
12418
12419         * bus/connection.c: implement routines for handling connections,
12420         first thing is keeping a list of owned services on each connection
12421         and setting up watches etc.
12422
12423         * bus/services.c: implement a mapping from service names to lists
12424         of connections
12425
12426         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12427
12428         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12429         to use static mutexes for global data
12430
12431         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12432         collection of functions to set/get application-specific data
12433         on the DBusConnection.
12434
12435 2003-01-04  Havoc Pennington  <hp@pobox.com>
12436
12437         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12438         (_dbus_poll): new function
12439
12440         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12441         copied from GLib
12442
12443         * bus/loop.c: initial code for the daemon main loop
12444
12445 2003-01-04  Havoc Pennington  <hp@pobox.com>
12446
12447         * test/watch.c (error_handler): make it safe if the error handler
12448         is called multiple times (if we s/error handler/disconnect
12449         handler/ we should just guarantee it's called only once)
12450
12451         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12452         error handler on disconnect (it's quite possible we should
12453         just change the error handler to a "disconnect handler," I'm
12454         not sure we have any other meaningful errors)
12455
12456         * configure.in: check for getpwnam_r
12457
12458         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12459         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12460         mechanism as in SASL spec, using socket credentials
12461
12462         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12463         (_dbus_send_credentials_unix_socket): new function
12464
12465         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12466         dbus_accept()
12467         (_dbus_write): only check errno if <0 returned
12468         (_dbus_write_two): ditto
12469
12470 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12471
12472         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12473         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12474         (_dbus_marshal_test):
12475         * dbus/dbus-marshal.h:
12476         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12477         to _dbus_marshal_utf8_string. Also fix some tests.
12478
12479 2002-12-28  Harri Porten  <porten@kde.org>
12480
12481         * configure.in: added check for C++ compiler and a very cheesy
12482         check for the Qt integration
12483
12484         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12485
12486         * qt/Makefile.am: added
12487
12488         * qt/.cvsignore: added
12489
12490         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12491         latter, added #ifdef QT_THREAD_SUPPORT guard.
12492
12493         * dbus/Makefile.am: added missing headers for make dist
12494
12495 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12496
12497         * dbus/Makefile.am: fixup export-symbols-regex.
12498
12499 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12500
12501         * acinclude.m4: Add this file and put the
12502         PKG_CHECK_MODULE macro in it.
12503
12504 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12505
12506         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12507         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12508         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12509         (_dbus_marshal_test):
12510         Make the demarshalling routines align the pos argument.
12511         Add string marshalling tests and fix the obvious bugs
12512         discovered.
12513
12514 2002-12-26  Havoc Pennington  <hp@pobox.com>
12515
12516         * dbus/dbus-auth.c: fixes fixes fixes
12517
12518         * dbus/dbus-transport-unix.c: wire up support for
12519         encoding/decoding data on the wire
12520
12521         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12522         (_dbus_auth_decode_data): append to target string
12523         instead of nuking it.
12524
12525 2002-12-26  Havoc Pennington  <hp@pobox.com>
12526
12527         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12528         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12529         doh
12530
12531         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12532         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12533         now). Main point is because I wanted unpack_uint32 to implement
12534         _dbus_verbose_bytes
12535         (_dbus_verbose_bytes): new function
12536
12537         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12538
12539         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12540         mechanism to handle a corrupt message stream
12541         (_dbus_message_loader_new): fix preallocation to only prealloc,
12542         not prelengthen
12543
12544         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12545         (_dbus_string_test): enhance tests for copy/move and fix the
12546         functions
12547
12548         * dbus/dbus-transport-unix.c: Hold references in more places to
12549         avoid reentrancy problems
12550
12551         * dbus/dbus-transport.c: ditto
12552
12553         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12554         leak reference count in no-message case
12555
12556         * test/watch.c (do_mainloop): handle adding/removing watches
12557         during iteration over the watches. Also, ref the connection/server
12558         stored on a watch, so we don't try to mangle a destroyed one.
12559
12560         * dbus/dbus-transport-unix.c (do_authentication): perform
12561         authentication
12562
12563         * dbus/dbus-auth.c (get_state): add a state
12564         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12565         (_dbus_auth_get_unused_bytes): append the unused bytes
12566         to the passed in string, rather than prepend
12567
12568         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12569         the auth conversation DBusAuth
12570
12571         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12572         (_dbus_transport_new_for_domain_socket): when creating a
12573         transport, pass in whether it's a client-side or server-side
12574         transport so we know which DBusAuth to create
12575
12576 2002-12-03  Havoc Pennington  <hp@pobox.com>
12577
12578         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12579         _after_ finalizing the derived members
12580         (unix_connection_set): unref watch if we fail to add it
12581
12582         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12583         transport first, so that the connection owned by the
12584         transport will be valid as the transport finalizes.
12585
12586         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12587         if necessary, and remove watches from the connection.
12588
12589         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12590
12591 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12592
12593         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12594         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12595         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12596         (_dbus_marshal_test):
12597         * dbus/dbus-marshal.h:
12598         Add string marshal functions and have the demarshal functions
12599         return the new position.
12600
12601 2002-12-25  Havoc Pennington  <hp@pobox.com>
12602
12603         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12604         it is a simple protocol that just maps directly to SASL.
12605
12606         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12607         initial implementation, not actually used yet.
12608
12609         * dbus/dbus-string.c (_dbus_string_find): new function
12610         (_dbus_string_equal): new function
12611         (_dbus_string_base64_encode): new function
12612         (_dbus_string_base64_decode): new function
12613
12614 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12615
12616         * dbus/Makefile.am:
12617         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12618         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12619         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12620         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12621         * dbus/dbus-marshal.h:
12622         * dbus/dbus-protocol.h:
12623         * dbus/dbus-test.c: (main):
12624         * dbus/dbus-test.h:
12625         Add un-optimized marshalling/demarshalling routines.
12626
12627 2002-12-25  Harri Porten  <porten@kde.org>
12628
12629         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12630
12631 2002-12-24  Zack Rusin  <zack@kde.org>
12632
12633         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12634         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12635         main loop stuff
12636
12637 2002-12-24  Havoc Pennington  <hp@pobox.com>
12638
12639         * glib/dbus-gthread.c: fix include
12640
12641         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12642         I think glib API needs to change, though, as you don't
12643         want to use DBusMessageFunction, you want to use the
12644         DBusMessageHandler object. Probably
12645         dbus_connection_open_with_g_main_loop()
12646         and dbus_connection_setup_g_main_loop() or something like that
12647         (but think of better names...) that just create a connection
12648         that has watch/timeout functions etc. already set up.
12649
12650         * dbus/dbus-connection.c
12651         (dbus_connection_send_message_with_reply): new function just to
12652         show how the message handler helps us deal with replies.
12653
12654         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12655
12656         * dbus/dbus-string.c (_dbus_string_test): free a string that
12657         wasn't
12658
12659         * dbus/dbus-hash.c: use memory pools for the hash entries
12660         (rebuild_table): be more paranoid about overflow, and
12661         shrink table when we can
12662         (_dbus_hash_test): reduce number of sprintfs and write
12663         valid C89. Add tests for case where we grow and then
12664         shrink the hash table.
12665
12666         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12667
12668         * dbus/dbus-connection.c (dbus_connection_register_handler)
12669         (dbus_connection_unregister_handler): new functions
12670
12671         * dbus/dbus-message.c (dbus_message_get_name): new
12672
12673         * dbus/dbus-list.c: fix docs typo
12674
12675         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12676         an object representing a handler for messages.
12677
12678 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12679
12680         * glib/dbus-glib.h:
12681         * glib/dbus-gthread.c: (dbus_gthread_init):
12682         Don't use the gdbus prefix for public functions.
12683
12684 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12685
12686         * Makefile.am:
12687         * configure.in:
12688         Add GLib checks and fixup .pc files
12689
12690         * glib/Makefile.am:
12691         * glib/dbus-glib.h:
12692         * glib/dbus-gmain.c: (gdbus_connection_prepare),
12693         (gdbus_connection_check), (gdbus_connection_dispatch),
12694         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12695         (dbus_connection_gsource_new):
12696         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12697         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12698         * glib/test-dbus-glib.c: (message_handler), (main):
12699         Add GLib support.
12700
12701 2002-12-15  Harri Porten  <porten@kde.org>
12702
12703         * autogen.sh: check for libtoolize before attempting to use it
12704
12705         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12706         struct.
12707
12708         * .cvsignore: ignore more stamp files
12709
12710         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12711
12712         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12713         without make install.
12714
12715 2002-12-15  Havoc Pennington  <hp@pobox.com>
12716
12717         * dbus/dbus-threads.c: add thread stubs that a higher library
12718         layer can fill in. e.g. the GLib wrapper might fill them in with
12719         GThread stuff. We still need to use this thread API to
12720         thread-safe-ize the library.
12721
12722 2002-12-12  Havoc Pennington  <hp@pobox.com>
12723
12724         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12725         below new interfaces and include fewer system headers.
12726
12727         * dbus/dbus-sysdeps.c (_dbus_read): new function
12728         (_dbus_write): new function
12729         (_dbus_write_two): new function
12730         (_dbus_connect_unix_socket): new function
12731         (_dbus_listen_unix_socket): new function
12732
12733         * dbus/dbus-message-internal.h: change interfaces to use
12734         DBusString
12735
12736 2002-12-11  Havoc Pennington  <hp@pobox.com>
12737
12738         * dbus/dbus-types.h: add dbus_unichar
12739
12740         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12741
12742         * dbus/dbus-connection.c (dbus_connection_send_message): return
12743         TRUE on success
12744
12745         * dbus/dbus-transport.c: include dbus-watch.h
12746
12747         * dbus/dbus-connection.c: include dbus-message-internal.h
12748
12749         * HACKING: add file with coding guidelines stuff.
12750
12751         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12752         handling here, for security purposes (as in vsftpd). Not actually
12753         using this class yet.
12754
12755         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12756         system/libc usage here, as in vsftpd, for ease of auditing (and
12757         should also simplify portability). Haven't actually moved all the
12758         system/libc usage into here yet.
12759
12760 2002-11-25  Havoc Pennington  <hp@pobox.com>
12761
12762         * dbus/dbus-internals.c (_dbus_verbose): fix to not
12763         always print the first verbose message.
12764
12765 2002-11-24  Havoc Pennington  <hp@pobox.com>
12766
12767         * test/echo-client.c, test/echo-server.c: cheesy test
12768         clients.
12769
12770         * configure.in (AC_CHECK_FUNCS): check for writev
12771
12772         * dbus/dbus-message.c (_dbus_message_get_network_data): new
12773         function
12774
12775         * dbus/dbus-list.c (_dbus_list_foreach): new function
12776
12777         * dbus/dbus-internals.c (_dbus_verbose): new function
12778
12779         * dbus/dbus-server.c, dbus/dbus-server.h: public object
12780         representing a server that listens for connections.
12781
12782         * dbus/.cvsignore: create
12783
12784         * dbus/dbus-errors.h, dbus/dbus-errors.c:
12785         public API for reporting errors
12786
12787         * dbus/dbus-connection.h, dbus/dbus-connection.c:
12788         public object representing a connection that
12789         sends/receives messages. (Same object used for
12790         both client and server.)
12791
12792         * dbus/dbus-transport.h, dbus/dbus-transport.c:
12793         Basic abstraction for different kinds of stream
12794         that we might read/write messages from.
12795
12796 2002-11-23  Havoc Pennington  <hp@pobox.com>
12797
12798         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12799         _DBUS_INT_MAX
12800
12801         * dbus/dbus-test.c (main): add list test, and include
12802         dbus-test.h as intended
12803
12804         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12805         (_dbus_hash_table_remove_int): return value indicates
12806         whether the entry existed to remove
12807
12808         * dbus/dbus-list.c: add linked list utility class,
12809         with docs and tests
12810
12811         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12812         array sometimes.
12813
12814 2002-11-23  Havoc Pennington  <hp@pobox.com>
12815
12816         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12817         DBUS_END_DECLS to nothing, that should fix this once and for all
12818
12819         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12820
12821         * dbus/dbus-message.c, dbus/dbus-hash.c:
12822         add some missing @brief
12823
12824 2002-11-23  Havoc Pennington  <hp@pobox.com>
12825
12826         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12827         to avoid confusing Doxygen
12828
12829         * dbus/dbus-hash.c: @} not }@
12830
12831         * dbus/dbus-message.c (struct DBusMessage): split out
12832         internals docs
12833
12834 2002-11-23  Havoc Pennington  <hp@pobox.com>
12835
12836         * configure.in: pile on more warning flags if using gcc
12837
12838         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12839         to document static functions
12840
12841         * configure.in: add summary to end of configure so it
12842         looks nice and attractive
12843
12844         * dbus/dbus-hash.c: finish implementation and write unit
12845         tests and docs
12846
12847         * configure.in: add --enable-tests to enable unit tests
12848
12849         * dbus/dbus-test.c: test program to run unit tests
12850         for all files in dbus/*, initially runs a test for
12851         dbus-hash.c
12852
12853         * dbus/dbus-internals.h: file to hold some internal utility stuff
12854
12855 2002-11-22  Havoc Pennington  <hp@redhat.com>
12856
12857         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12858         "ported" away from Tcl
12859
12860         * dbus/dbus-types.h: header for types such as dbus_bool_t
12861
12862 2002-11-22  Havoc Pennington  <hp@redhat.com>
12863
12864         * dbus/dbus.h: fixups for doc warnings
12865
12866         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12867         macros
12868         (QUIET): make it quiet so we can see warnings
12869
12870         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12871
12872 2002-11-22  Havoc Pennington  <hp@redhat.com>
12873
12874         * Makefile.am: include "Doxyfile" target in all-local
12875
12876         * configure.in: generate the Doxyfile
12877
12878         * Doxyfile.in: move Doxyfile here, so we can use
12879         configure to generate a Doxyfile with the right
12880         version number etc.
12881
12882 2002-11-22  Havoc Pennington  <hp@redhat.com>
12883
12884         * dbus/dbus-message.c: move inline docs into .c file
12885
12886         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12887         so all docs are under doc/
12888         (MAN_EXTENSION): generate man pages. Use extension
12889         ".3dbus" which matches ".3qt" on my system,
12890         I guess this is OK, I don't know really.
12891         (FILE_PATTERNS): look for .c files not .h, makes sense
12892         for plain C I think
12893
12894 2002-11-22  Havoc Pennington  <hp@pobox.com>
12895
12896         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12897         because any app can be a server, and any app can be a client,
12898         the bus is a special kind of server.
12899
12900 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
12901
12902         * Doxyfile : adding. Still needs Makefile rules to be generated
12903         automatically (just run "doxygen" in the toplevel dir for now to
12904         generate docs)
12905
12906         * dbus/dbus-message.h : Adding sample docs (javadoc since
12907         resembles gtk-doc a little more)
12908
12909         * dbus/dbus.h : Adding sample docs
12910
12911 2002-11-21  Havoc Pennington  <hp@redhat.com>
12912
12913         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12914         so we can allow ourselves to include files directly,
12915         instead of having to use dbus.h
12916
12917         * dbus/dbus.h: fill in
12918
12919         * dbus/dbus-message.h: sketch out a sample header file.
12920         Include griping if you include it directly instead of
12921         via dbus.h
12922
12923         * dbus/dbus-macros.h: new file with macros for extern "C",
12924         TRUE/FALSE, NULL, etc.
12925
12926         * doc/file-boilerplate.c: put include guards in here
12927
12928 2002-11-21  Havoc Pennington  <hp@redhat.com>
12929
12930         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12931
12932         * COPYING: include the GPL as well, and license code
12933         under both AFL and GPL.
12934
12935 2002-11-21  Havoc Pennington  <hp@redhat.com>
12936
12937         * acconfig.h: get rid of this
12938
12939         * autogen.sh (run_configure): add --no-configure option
12940
12941         * configure.in: remove AC_ARG_PROGRAM to make
12942         autoconf complain less. add AC_PREREQ.
12943         add AC_DEFINE third arg.
12944
12945 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
12946
12947         * doc/Makefile.am:
12948         Fix references so we can distcheck.
12949
12950 2002-11-21  Havoc Pennington  <hp@redhat.com>
12951
12952         * Initial module creation
12953