* glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
[platform/upstream/dbus.git] / ChangeLog
1 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2
3         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
4         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
5
6 2005-11-27  Robert McQueen  <robot101@debian.org>
7
8         * python/dbus_bindings.pyx: Repair my previous commit which reverted
9         part of the preceding one. Oops. Merge patch by Johan Hedberg
10         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
11         on big-endian platforms.
12
13         * test/python/test-client.py: Add some 16-bit integers to the test
14         values.
15
16 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
17
18         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
19         method return message for property getters
20
21 2005-11-27  Robert McQueen  <robot101@debian.org>
22
23         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
24         with type v of an instance of dbus.Variant(foo, type='x') caused
25         it to be boxed twice before sending over the bus.
26
27         * python/dbus_bindings.pyx, python/service.py,
28         test/python/test-client.py: Update the constants for the new
29         request_name flags, and update comments/test cases now that queueing
30         is the default action.
31
32 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
33
34         * configure.in:
35         - Change version to 0.60 for impending release
36         - upped the sonames because of ABI and API breakage
37
38 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
39
40         * configure.in: Add test/name-test/Makefile to the generated
41         Makefile list
42
43         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
44         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
45         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
46         not to queue an ower if it can't be the primary owner
47
48         * bus/bus.h: Add new internal BusOwner struct
49
50         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
51         to bus_registry_ensure and don't set the prohibit_replacement flag
52         since they are now set per BusOwner and not per name.
53         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
54         that returns the list of connections in a name's connection queue
55         
56         * bus/services.c (struct BusService): remove prohibit_replacement field
57         (struct BusOwner): new struct for keeping track of queued connections
58         and their associated flags for the queue
59         (struct BusRegistry): add a BusOwner memory pool
60         (bus_registry_new): initialize the BusOwner memory pool
61         (bus_registry_unref): free the BusOwner memory pool
62         (_bus_service_find_owner_link): new internal method for
63         searching the queue for a specific connection
64         (bus_owner_set_flags): new method for adding setting the flags on a
65         bus owner
66         (bus_owner_new): new method that creates a BusOwner object from the
67         pool and sets its flags
68         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
69         (bus_registry_ensure): Add the flags parameter
70         (bus_registry_acquire_service): Switch from using raw connections to
71         using the BusOwner struct
72         Add new state machine for dealing with the new set of flags
73         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
74         cancel_ownership, free_ownership_cancel_data, 
75         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
76         restore_ownership, free_ownership_restore_data, 
77         add_restore_ownership_to_transaction): Switch to using BusOwner 
78         instead of raw connections
79         (bus_service_add_owner): Add flags parameter
80         Switch to using BusOwner instead of raw connections
81         Add state machine for dealing with the new set of flags
82         (bus_service_swap_owner): Swaps the first and second owners in the
83         queue.  Used to make sure proper signals are sent when a service looses 
84         or gains primary ownership.  We never insert an owner at the top of the
85         queue.  Instead we insert it in the second position and then swap.
86         (bus_service_remove_owner): Remove the owner from the queue sending
87         out the NameLost and NameOwnerChanged signals if the we were the 
88         primary owner
89         (bus_service_get_primary_owners_connection): New method that extracts
90         the connection from the primary owner
91         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
92         connection
93         (bus_service_get_allow_replacement): Changed from the old 
94         bus_service_get_prohibit_replacement method.  Checks the flags of the 
95         primary owner and returns if it can be replaced or not
96         (bus_service_set_prohibit_replacement): removed
97         (bus_service_has_owner): returns TRUE if and owner with
98         the specified connection exists in the queue
99         
100         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
101         method that only compiles if tests are enabled.  Allows us to get the 
102         unique name of a connection so we can check it against the queue when
103         doing regression tests
104
105         * bus/activation.c (bus_activation_send_pending_auto_activate),
106         bus/dispatch.c (bus_dispatch),  
107         bus/driver.c (bus_driver_handle_get_service_owner, 
108         bus_driver_handle_get_connection_unix_user, 
109         bus_driver_handle_get_connection_unix_process_id,
110         bus_driver_handle_get_connection_selinux_security_context),
111         bus/signals.c (connection_is_primary_owner): 
112         use bus_service_get_primary_owners_connection instead of
113         bus_service_get_primary_owner
114
115         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
116         _dbus_listen_unix_socket): Calculate the length of the socket
117         path and use that instead of using a fixed length which was
118         causing socket names to contain many trailing Nul bytes.
119
120         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
121         (dbus_g_method_get_sender): New method for extracting the sender 
122         from a DBusGMethodInvocation
123         (dbus_g_method_return_get_reply): changed name to 
124         dbus_g_method_get_reply
125         (dbus_g_method_return_send_reply): changed name to
126         dbus_g_method_send reply
127
128         * doc/dbus-specification.xml: New docs that describe how the new
129         queueing system works and talks about the changes to the how
130         we specify socket names
131
132         * glib/examples/example-service.c, 
133         glib/examples/example-signal-emitter.c,
134         glib/examples/statemachine/statemachine-server.c:
135         Changed the RequestName flags to the new system
136
137         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
138         regression test suite for testing various states of the new
139         queueing system
140         
141 2005-11-15  Robert McQueen  <robot101@debian.org>
142
143         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
144         Taylor to add two methods, dbus_g_method_return_get_reply and
145         dbus_g_method_return_send_reply, to allow you to get the reply
146         message from a DBusGMethodInvocation, append arbitrary stuff to it,
147         and send it. The GLib bindings can't marshal a return value of
148         something like a(s) if the array is empty - ultimately they should be
149         made to heed the signature of the out arguments as the Python bindings
150         now can, but this is a workable interim solution which might have
151         other applications.
152
153 2005-11-15  Robert McQueen  <robot101@debian.org>
154
155         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
156         method to org.freedesktop.DBus to release a bus name or give up
157         waiting in the queue for it.
158
159         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
160         dbus_bus_release_name method to send the ReleaseName method calls.
161         Add constants for the return values to dbus/dbus-shared.h.
162
163         * doc/dbus-specification.xml: Document the new ReleaseName method
164         in the specification.
165
166         * python/dbus_bindings.pyx: Add a low-level python binding for the
167         release name method.
168
169         * python/exceptions.py, python/service.py: Make freeing BusName
170         objects release the name. Add a NameExistsException, and fix a
171         bug with creating UnknownMethodException.
172
173         * test/python/test-client.py: Add tests for freeing BusName
174         objects causing names to be released.
175
176 2005-11-14  Robert McQueen  <robot101@debian.org>
177
178         * python/service.py: Include the traceback in the error reply when we
179         send an exception over the bus. _BEST_ _PATCH_ _EVER_
180
181 2005-11-14  David Zeuthen  <davidz@redhat.com>
182
183         Patch from Timo Hoenig <thoenig@suse.de>.
184
185         * bus/bus.c: I've recently investigated why the automatic reload
186         of configuration files does not work as expected.
187
188         Currently, reloading configuration files does only work when
189         running dbus-daemon with --nodaemon.  If we are running as daemon
190         we're hitting a dnotify bug once we fork the process.
191
192         We're initializing the dnotify fds before calling fork().  Once
193         the child process forked it does still have the fds (and they
194         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
195         getting SIGIO as changes are made to the configuration files.
196
197         The attached patch moves the initialization of the dnotify fds to
198         process_config_postinit().  This is safe for all current code
199         paths and solves the dnotify disfunction.  If we're running
200         dbus-daemon as daemon the fds for dnotify are now being
201         initialized after fork() for the child process.
202
203         * configure.in: The current configure.in check for dnotify probes
204         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
205         match for 'xlinux', too. Additionally I have adapted the configure
206         option's style to match with the others.
207
208 2005-11-14  Robert McQueen  <robot101@debian.org>
209
210         * python/decorators.py, python/service.py: Add a new argument to the
211         dbus.service.method decorator called sender_keyword, which if set,
212         specifies the name of an argument which will be provided the bus
213         name of the method caller.
214
215         * test/python/test-client.py, test/python/test-service.py: Add a
216         method and test to check the sender_keyword functionality.
217
218 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
219
220         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
221         empty reply so blocking calls don't block forever (Patch from Sjoerd 
222         Simons <sjoerd at luon.net>)
223
224         * AUTHORS: Add Robert McQueen for his work on the Python
225         Bindings and other parts of D-Bus
226
227 2005-11-07  Robert McQueen  <robot101@debian.org>
228
229         * python/decorators.py: Change emit_signal function to use the
230         signature annotation of the signal when marhsalling the arguments from
231         the service. Fix a bug where the code checking signature length
232         against argument length referenced the wrong variable.
233
234         * python/introspect_parser.py: Avoid adding the type signature of
235         signal arguments to any methods which occur after them in the
236         introspection data (!) by making the parser a little more careful
237         about its current state.
238
239         * python/service.py: Remove debug prints from last commit (again :D).
240
241         * test/python/test-client.py, test/python/test-service.py: Add test
242         signals with signature decorators to test the strict marshalling code
243         gives errors at the right time. Could do with checking the signals
244         actually get emitted too, given that the test does nothing with
245         signals at the moment...
246
247 2005-11-07  Robert McQueen  <robot101@debian.org>
248
249         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
250         instances to stop madness of creating new instances representing
251         the same bus connection all the time, rendering any tracking of
252         match rules and bus names quite meaningless. Caught a bug where
253         the private argument to SessionBus() and friends was being passed
254         in as use_default_mainloop by mistake. Still some problems with
255         multiple dbus_binding.Connection instances representing the same
256         low-level connection (eg when you use both SessionBus() and
257         StarterBus() in same process), but it's a lot better now than it
258         was.
259
260         * python/dbus_bindings.pyx: Add constants with the return values
261         for bus_request_name().
262
263         * python/service.py: Store bus name instances in a per-dbus.Bus cache
264         and retrieve the same instances for the same name, so deletion can be
265         done with refcounting. Also now throws some kind of error if you
266         don't actually get the name you requested, unlike previously...
267
268         * test/python/test-client.py: Add tests for instance caching of buses
269         and bus name objects.
270
271 2005-11-04  Robert McQueen  <robot101@debian.org>
272
273         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
274         marshalling of boolean values. Add some booleans to the values in
275         the test client.
276
277         * python/decorators.py, python/service.py: Add an 'async_callbacks'
278         argument to the dbus.service.method decorator, which allows you to
279         name arguments to take two callback functions for replying with
280         return values or an exception.
281
282         * test/python/test-client.py, test/python/test-service.py: Add test
283         case using asynchronous method reply functions, both return values and
284         errors, and from within both the function itself and from a mainloop
285         callback.
286
287         * python/decorators.py, python/service.py: Perform checking that the
288         number of method/signal arguments matches the number of types in the
289         signature at class loading time, not when you first introspect the
290         class.
291
292         * python/service.py: Remove debug print left by the last commit.
293
294 2005-11-03  Robert McQueen  <robot101@debian.org>
295
296         * python/service.py: Heavy refactoring of method invocation, with
297         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
298         in favour of a new _message_cb that uses seperate functions for
299         looking up the method to call, marshalling the return values, and
300         sending exceptions as errors, and is easier to follow as a
301         consequence.  Fixes some corner cases about returning things that
302         don't match your declared out_signature, allows exceptions to define
303         _dbus_error_name and have it be sent over the bus as the error name,
304         and paves the way for cool stuff like heeding the message no reply
305         flag, asynchronous method implementations, informing the method of the
306         sender, and including backtraces in the error messages.
307
308         * test/python/test-client.py: Catch and print exceptions thrown in the
309         async callback tests, rather than passing them to the low-level
310         bindings to be ignored in a noisy and frustrating manner.
311
312 2005-11-03  Robert McQueen  <robot101@debian.org>
313
314         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
315         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
316         tweak others to be consistent.
317
318         * test/python/test-client.py: Tweak output of testInheritance.
319
320 2005-10-29  Robert McQueen  <robot101@debian.org>
321
322         * python/service.py: Major changes to allow multiple inheritance
323         from classes that define D-Bus interfaces:
324         
325          1. Create a new Interface class which is the parent class of
326             Object, and make the ObjectType metaclass into InterfaceType.
327         
328          2. Patch written with Rob Taylor to replace use of method_vtable
329             with code that walks the class's __MRO__ (method resolution order)
330             to behave like Python does when invoking methods and allow
331             overriding as you'd expect. Code is quite tricky because
332             we have to find two methods, the one to invoke which has the
333             right name and isn't decorated with the /wrong/ interface,
334             and the one to pick up the signatures from which is decorated
335             with the right interface.
336         
337             The same caveats apply as to normal multiple inheritance -
338             this has undefined behaviour if you try and inherit from two
339             classes that define a method with the same name but are
340             decorated with different interfaces. You should decorate
341             your overriding method with the interface you want.
342         
343          3. Replace grungy introspection XML generation code in the metaclass
344             with dictionaries that cope correctly with multiple inheritance
345             and the overriding of methods. This also uses the signature
346             decorations to provide correct introspection data, including
347             the debut appearance of the types of your return values. :D
348
349         * test/python/test-client.py, test/python/test-service.py: Add a test
350         case to try invoking an method that overrides one inherited from a
351         D-Bus interface class.
352
353 2005-10-29  Robert McQueen  <robot101@debian.org>
354
355         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
356         Add checking for the end of struct character when marshalling a
357         struct in MessageIter.append_strict.
358
359         * python/examples/example-service.py,
360         python/examples/gconf-proxy-service.py,
361         python/examples/gconf-proxy-service2.py: Update to use gobject
362         mainloop directly rather than appearing to depend on gtk.
363
364         * python/test/test-client.py, python/test/test-server.py: Remove
365         obsolete and broken test scripts for old bindings. We have up to date
366         and working tests in test/python/.
367
368 2005-10-29  Robert McQueen  <robot101@debian.org>
369
370         * python/decorators.py: Add optional arguments to the method and
371         signal decorators to allow you to specify the signature of arguments
372         and return values. Preserve the doc strings of signal functions in the
373         decorated version, for pydoc and friends.
374
375         * python/dbus_bindings.pyx, python/proxies.py: Replace the
376         parse_signature_block function with an iterable dbus.Signature()
377         type. Fix a bug in MessageIter.append_strict where you could append
378         anything by claiming it was a string.
379
380         * python/service.py: Use the out_signature decoration on methods to
381         marshal return values, meaning you no longer require dbus.Array()
382         or dbus.Dictionary() to indicate the type when returning empty
383         arrays or dictionaries. Fix a bug where exceptions which are defined
384         in __main__ are not turned into error replies.
385
386         * test/python/test-client.py, test/python/test-service.py: Add test
387         for correct marshalling of return values according to out_signature.
388         Fix a bug in the async call test where the error_handler is missing a
389         self argument.
390
391 2005-10-29  Robert McQueen  <robot101@debian.org>
392
393         * glib/Makefile.am, glib/examples/Makefile.am,
394         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
395         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
396
397         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
398
399         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
400         from Ubuntu by Daniel Silverstone to allow specifying match rules on
401         the command line.
402
403 2005-10-27  Ross Burton  <ross@openedhand.com>
404
405         * dbus/dbus-marshal-header.c:
406         Remove dead code.
407
408         * glib/dbus-gobject.c:
409         Stop compiler warning.
410
411 2005-10-25  Ross Burton  <ross@openedhand.com>
412
413         * dbus/dbus-auth.c:
414         * dbus/dbus-server-unix.c:
415         * dbus/dbus-transport-unix.c:
416         * glib/dbus-gmain.c:
417         * glib/dbus-gobject.c:
418         Add some const keywords.
419
420 2005-10-25  Ross Burton  <ross@openedhand.com>
421
422         * doc/dbus-specification.xml:
423         Document the NoReply annotation.
424
425         * glib/dbus-binding-tool-glib.h:
426         * glib/dbus-binding-tool-glib.c:
427         Respect the NoReply annotation.
428
429 2005-10-24  Robert McQueen <robot101@debian.org>
430
431         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
432         derive from unicode instead of str, and encode/decode UTF-8 when
433         marshalling/unmarshalling bus messages
434
435         * python/introspect_parser.py: encode introspection data as UTF-8
436         before passing the buffer into libxml2
437
438         * test/python/test-client.py: add unicode test strings
439
440         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
441         ignore generated python test files
442
443 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
444
445         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
446         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
447         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
448
449         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
450         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
451         when constructing struct signatures
452
453         * python/_dbus.py (Bus): handle private connections using the
454         private keyword in the constructor. defaults to private=False
455         (Bus::close): new method to close a connection to the bus
456
457         * python/dbus_bindings.pyx (Connection::close): renamed method
458         was previously called disconnect
459         (bus_get): now supports getting a private connection
460
461         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
462         keyword is set to True.  if it is, execute the method without waiting
463         for a reply
464         (ProxyObject::_introspect_execute_queue): new method for executing
465         all the pending methods that were waiting for the introspect to
466         finish.  this is called when introspect either succeeds or fails
467         (ProxyObject::_introspect_error_handler): call queued methods
468
469 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
470
471         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
472         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
473
474         * python/service.py (Object::_message_cb): handle exceptions correctly
475         by sending them over the wire to the calling app.  This makes sure
476         the client returns immediately instead of waiting the 15 seconds to
477         timeout.
478
479         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
480         Add a test to benchmark how long it takes to introspect a service and 
481         call a method which returns a large element (pretty fast)
482
483         * test/python/test-service.py (TestObject::GetComplexArray): new test 
484         method which pushes a lot of data
485
486 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
487
488         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
489         reclaim memory outside of the loop and use del istead of just setting
490         the key to None
491
492 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
493
494         * python/service.py (ObjectType::_reflect_on_signal): Always close
495         signal tag even when there are no arguments
496
497 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
498
499         * configure.in: Set mono, mono-docs and Qt3 to default
500         to no instead of auto when building.  These bindings do not
501         have full time maintainers and will not be supported for the
502         1.0 release.
503
504 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
505
506         patches from Michael Krivoruchko <misha at sun.com>: 
507         
508         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
509         _dbus_connection_message_sent, 
510         _dbus_connection_send_preallocated_unlocked_no_update, 
511         _dbus_connection_pop_message_link_unlocked): handle the case when path 
512         is NULL when calling _dbus_verbose
513
514         * configure.in: check for functions getpeerucred and getpeereid
515
516         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
517         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
518         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
519         Patch was only tested on Solaris 10 x86 so it might be issues
520         with other platforms (i.e. BSDs and MacOSX)
521         
522
523 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
524
525         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
526         instead of marshal basic so we can handle recursive types in a variant
527
528         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
529         in variants
530
531         * test/glib/test-service-glib.c, test-service-glib.xml
532         (my_object_echo_variant [EchoVariant], 
533         my_object_process_variant_of_array_of_ints123
534         [ProcessVariantOfArrayOfInts123]): 
535         Add two test methods
536
537         * python/introspect_parser.py: New module for parsing introspect
538         data.
539
540         * python/dbus_bindings.pyx:
541         (various places): when throwing errors fix to use errormsg instead 
542         of message local variable because Pyrex can get confused with other 
543         message variables (initial patch by Robert McQueen 
544         <robert.mcqueen at collabora.co.uk>)
545         (MessageIter::parse_signature_block): new method for getting the next
546         block in a signiture.
547         (MessageIter::append_strict): new method for appending values strictly
548         using the passed in signature instead of guessing at the type
549         (MessageItter:: append_dict, append_struct, append_array): use 
550         signatures to marshal children if the signature is available
551         
552         * python/exceptions.py (IntrospectionParserException): new exception
553
554         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
555         introspected signatures if available, else we fall back to the
556         old way of doing things.
557         (ProxyObject::_introspect_reply_handler ): parse introspection data
558         
559         * python/service.py (ObjectType::_reflect_on_method): Properly
560         terminate <method> if there are no args in the reflection data
561
562         * test/python/test-client.py: add tests for talking with the GLib
563         test server.  This gives us better coverage for introspection since
564         python to python will always generate arguments as variants.  It also
565         allows us to test the robustness of the GLib bindings and interlanguage
566         communications.
567
568         
569 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
570
571         * bus/driver.c (bus_driver_handle_introspect): Add signals
572         to the introspect data. (patch from Daniel P. Berrange 
573         <dan at berrange.com>)
574
575         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
576         
577         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
578         _dbus_connection_run_builtin_filters): Changed these to
579         be unlock_no_update functions and call 
580         _dbus_connection_send_unlocked_no_update instead of
581         dbus_connection_send to avoid locking errors.
582         
583         * doc/TODO: Removed the make Ping test TODO
584         
585 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
586
587         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
588         We now copy the message from a DBusError and then free 
589         the error object befor throwing the error
590
591         * glib/dbus-glib-tool.c: removed extra comma at the end of the
592         DBusBindingOutputMode enum which was causing a warning.
593         #include <time.h> so using time_t is explicitly defined
594
595 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
596
597         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
598         - dbus/dbus-bus.c
599         (internal_bus_get): new method that take over the heavy lifting
600         of dbus_bus_get and adds the ability to get a private connection
601         to the bus
602         (dbus_bus_get): wrapper to internal_bus_get that provides the same
603         interface as in previous versions
604         (dbus_bus_get_private): new method that is a wrapper to 
605         internal_bus_get to get a private connection to the bus
606
607         - dbus/dbus-bus.h
608         (dbus_bus_get_private): add as a public libdbus interface
609
610         - dbus-1.pc.in: output system_bus_default_address and 
611         sysconfdir variables so apps can use them when compiling
612
613 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
614         * dbus/qt: New Qt bindings
615
616 2005-09-12  Waldo Bastian  <bastian@kde.org>
617
618         * dbus/dbus-marshal-validate.c,
619         doc/dbus-specification.xml, test/Makefile.am,
620         test/test-names.c: allow hyphens in bus names.
621
622 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
623
624         * test/data/auth/fallback.auth-script: we don't
625         retry the EXTERNAL method when we know its going
626         to fail anymore.
627
628 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
629
630         * dbus/dbus-connection-internal.h: rename
631         (add|remove|toggle)_(watch|timeout) to unlocked()
632         
633         * dbus/dbus-connection.c: ditto.
634         
635         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
636         Update some callers for the renaming.
637
638 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
639
640         * dbus/dbus-auth.c: (record_mechanisms): don't
641         retry the first auth mechanism because we know
642         we're just going to get rejected again.
643         
644         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
645         Fix thinko ... and what a nasty little bugger to
646         track down you were ...
647
648         * dbus/dbus-connection.c:
649         (_dbus_connection_add_watch),
650         (_dbus_connection_remove_watch): add note about
651         these needing the connection to be locked.
652         (_dbus_connection_get_dispatch_status_unlocked):
653         set status to DATA_REMAINS when we queue the
654         disconnected message.
655         
656         * bus/dispatch.c:
657         (bus_dispatch): fix warning.
658         (check_existent_service_no_auto_start):
659         Expect ChildSignaled error too.
660         (check_existent_hello_from_self): fix another
661         couple of warnings.
662         
663 2005-09-08  Joe Shaw  <joeshaw@novell.com>
664
665         Patches from James Willcox <snorp@snorp.net>
666
667         * mono/Makefile.am: Add Int16.cs and UInt16.cs
668
669         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
670         support array "out" parameters.
671
672         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
673         for 16-bit int support.
674
675 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
676
677         * Released 0.50
678
679         * Patch from Steve Grubb:
680         - bus/activation.c (bus_activation_service_reload_test): clean up
681         some indentation
682         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
683         - dbus/dbus-message-factory.c (generate_special): fix a couple of
684         buffer overflows in the test suite.  This is non critical because
685         it can not be exploited and this code is only run when doing a 
686         make check.
687
688         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
689         - configure.in: Don't check and link against kdecore, only qt headers
690         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
691         - gcj/org/freedesktop/dbus/Makefile.am:
692         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
693         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
694         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
695         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
696         - tools/Makefile.am: Add platform extentions to binaries 
697         (i.e. .exe on windows)
698
699         * configure.in: 
700         - Make it so if no suitable version of python is found we only 
701         disable building python instead of exiting the configure script
702         - Require version 2.4 of glib for glib bindings
703         - Up version to 0.50
704
705         * python/__init__.py: Sync version with libdbus to (0,50,0)
706         
707 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
708
709         * dbus/dbus-object-tree.c (find_subtree_recurse):
710         a couple of optimizations (bug #710):
711         - do a binary search in the tree
712         - insert a new child at the right place directly, no need for
713           qsort anymore
714         - do the "double alloc" thing when allocating children
715
716 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
717
718         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
719
720         * python/dbus_bindings.pyx: Memory management foo
721         (global): remove hacky _user_data_references global list
722         (GIL_safe_cunregister_function_handler): userdata now stuffed into
723         tuples. Unref user_data
724         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
725         (Connection::__del__): Remove and replace with __dealloc__ method
726         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
727         to keep tuple from being deallocated instead of the global var hack
728         (Connection::register_object_path): Stuff user_data into a tuple.
729         Use Py_INCREF to keep tuple from being deallocated instead of the 
730         global var hack
731         (Connection::register_fallback): Stuff user_data into a tuple.
732         Use Py_INCREF to keep tuple from being deallocated instead of the 
733         global var hack
734         (GIL_safe_pending_call_notification): Don't unref the message
735         because it gets unreffed when going out of scope.  Py_XDECREF
736         the user_data
737         (PendingCall::__del__): Remove and replace with __dealloc__ method
738         (PendingCall::set_notify): ref the pending call because we will
739         need it to stick around for when the notify callback gets called
740         (Message::__del__): Remove and replace with __dealloc__ method
741
742         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
743         gthreads_init to match up with the dbus call
744
745         * python/glib.py (init_threads): Changed to threads_init to match
746         up with gobject.threads_init().  init_threads is kept for backwards
747         compat but will most likely be deprecated in the future
748
749         * test/python/test-client.py: 
750         - revamp to use Python's unittest functionality
751         - add async call tests
752         - setup threads in glib and dbus so we make sure locks are working
753         
754 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
755
756         * python/dbus_bindings.pyx 
757         (_pending_call_notification, cunregister_function_handler, 
758         cmessage_function_handler): All callback functions have been rearranged 
759         to workaround a bug in Pyrex when working with the GIL which is Python's 
760         global lock when dealing with threads.  They have been split into
761         a wrapper function (which assumes the name of the old function) and
762         a _GIL_safe_<function name> function which contains the functionality
763         of the old function.  This ensures that Pyrex does not write code
764         the lock is released.
765         
766
767 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
768
769         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
770         GIL global lock when calling back into Python
771
772 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
773
774         * Release 0.36.2
775
776         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
777
778         * bus/policy.c (bus_policy_allow_user): change default "user is
779         allowed" to be "user has same uid as the bus itself"; any
780         allow/deny rules will override.
781
782         * bus/session.conf.in: don't allow all users, since now by default
783         the user that ran the bus can connect.
784
785 2005-08-26  Colin Walters  <walters@verbum.org>
786
787         * tools/dbus-print-message.c (print_message): Flush stdout
788         after printing a message, so that redirecting to a file, then
789         hitting Ctrl-C works.
790
791 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
792
793         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
794         (EmptyMessage): new class that subclasses Message.  This is a workaround
795         to a Pyrex bug that fails to call __del__ when the Message object goes out
796         of scope.  For some reason subclassing Message fixes this bug
797         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
798         - s/Message(_create=0)/EmptyMessage everywhere else
799         
800         * test/python/test-{server|client}.py: add the python/.libs directory
801         to the lookup path so dbus_bindings and dbus_glib_bindings don't
802         get picked up from the system
803
804 2005-08-25  Colin Walters  <walters@verbum.org>
805
806         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
807         to Ryan Lortie for the suggestion.
808
809 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
810
811         * test/python: Add python regression test
812
813         * configure.in: Add test/python/Makefile
814
815         * test/Makefile.am: Add the python directory to SUBDIRS
816
817 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
818
819         * Release 0.36.1
820
821         * python/_dbus.py: 
822         (Interface::connect_to_signal): propigate keywords for match on args
823         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
824
825         * python/proxies.py (ProxyObject::connect_to_signal):
826         propigate keywords for match on args
827
828         * Makefile.am: point everything to pyexecdir since python borks
829         on multilib
830
831 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
832
833         * Release 0.36
834
835 2005-08-23  Colin Walters  <walters@verbum.org>
836
837         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
838
839 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
840
841         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
842         to fix some wranings. We now use dbus_bindings.DBusConnection instead
843         of defining DBusConnection ourselves.
844
845 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
846
847         * python/dbus.pth: New path file to fix up problems when installing
848         c libraries to lib64 and python files to lib.
849
850         * python/Makefile.am: install dbus.pth in the correct spot
851
852 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
853         * ChangeLog: clean up my last entry a bit
854
855         * doc/introspect.xsl: New stylesheet for converting introspection data
856         into browser renderable xhtml. Contributed by Lennart Poettering.
857
858         * doc/introspect.dtd: Fixups in the introspect format from Lennart
859         Poettering.
860
861         * doc/dbus-tutorial.xml: 
862         - Add Colin Walter to the Authors section for authoring the GLib
863         section
864         - Add descriptions of the new signature and type functionality
865         in the Python complex type mapping section
866         - Add a sidenote on the new args matching functionality in 
867         the Python bindings
868         - Fixed up some of the examples to use the gobject.MainLoop
869         instead of gtk.main
870         
871         * python/_dbus.py:
872         (Bus::_create_args_dict): New. Converts a hash of arg matches
873         to a more useable format
874         (Bus::add_signal_receiver): add a **keywords parameter for catching
875         arg match parameters
876         (Bus::remove_signal_receiver): add a **keywords parameter for catching
877         arg match parameters
878         
879         * python/matchrules.py:
880         (MatchTree::exec_matches): Check for arg matches
881         (SignalMatchRule::add_args_match): New method
882         (SignalMatchRule::execute): Added args_list parameter as an optimization
883         so we don't have to marshal the args more than once
884         (SignalMatchRule::match_args_from_list): New method that checks to see
885         if the rule's arg matches match an argument list.  Only arguments
886         set in the rule are checked.
887         (SignalMatchRule::match_args_from_rule): New method that checks to see
888         if the rule's arg matches match another rule's.  All args have to match
889         in order for this method to return true.  If either rule has more args
890         then it is not a match.
891         (SignalMatchRule::is_match): Add args match
892         (SignalMatchRule::repr): Add args to the final output if they exist
893
894 2005-08-17  Ross Burton  <ross@burtonini.com>
895
896         * glib/dbus-gproxy.c:
897         (dbus_g_proxy_call_no_reply): unref the message once sent.
898         (dbus_g_proxy_call): protect against NULL proxy.
899
900 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
901
902         * python/__init__.py: Version updated (0, 43, 0)
903         
904         * python/dbus_bindings.pyx: 
905         - Fixed type objects to have self passed into __init__
906         - Added the Variant type
907         - Add the ability to specify types or signatures for Array, Variant 
908         and Dictionary
909         (Connection::send_with_reply_handlers): return a PendingCall object
910         (_pending_call_notification): handle the case when an error is returned 
911         without an error message in the body
912         (MessageIter::get_boolean): return True or False instead of an integer
913         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
914         and add checks for objects with embeded signatures or types (Array, 
915         Variant and Dictionary)
916         (MessageIter::append_byte): handle case when the value is a dbus.Byte
917         (MessageIter::append_dict): handle embeded types or signatures
918         (MessageIter::append_array): handle embeded types or signatures
919         (MessageIter::append_variant): new method
920         
921         * python/proxies.py:
922         (DeferedMethod): New. Dummy executable object used when queuing calls 
923         blocking on introspection data
924         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
925         or shorter timeouts for method calls
926         (ProxyObject): Add first pass at an introspection state machine
927         (ProxyObject::__init__): Add introspect keyword for turing off an on 
928         introspection. 
929         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
930         the usual mechanisms for sending messages.  This is to avoid a deadlock
931         where the Intospect call would be queued waiting for the Introspect 
932         call to finish ;-)
933         (ProxyObject::_introspect_reply_handler): New.  This method is called 
934         when introspection returns with no error
935         (ProxyObject::_introspect_error_handler): New.  This method is called 
936         when introspection encounters an error
937         (ProxyObject::__getattr__): Code to handle different introspection 
938         states.  Queue async calls or block blocking calls if we are 
939         introspecting.  Pass through as normal if we are not or are done with 
940         introspecting.
941         
942         * python/service.py: Import signal and method from decorators.py
943
944         * python/types.py: Add Variant type
945
946 2005-08-16  Colin Walters  <walters@verbum.org>
947
948         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
949         DBusError message is NULL.
950
951 2005-08-09  Havoc Pennington  <hp@redhat.com>
952
953         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
954         malloc'd copy of the name parameter
955
956 2005-08-09  Havoc Pennington  <hp@redhat.com>
957
958         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
959         warning if the reply serial is set to 0
960
961 2005-08-04  Colin Walters  <walters@verbum.org>
962
963         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
964         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
965         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
966         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
967         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
968         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
969         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
970         * glib/dbus-gvalue.h (dbus_g_value_types_init)
971         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
972         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
973         
974         Prefix name with _ to ensure they're not exported.  All callers
975         updated.
976
977         * glib/dbus-gvalue.c (typecode_to_gtype)
978         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
979         (signature_iter_to_g_type_dict)
980         (signature_iter_to_g_type_array)
981         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
982         (dbus_gtypes_from_arg_signature):
983         Move to dbus-gsignature.c.
984
985         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
986         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
987         (dbus_binding_tool_output_glib_client): Ditto.
988
989         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
990         and dbus-gsignature.h
991
992         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
993         unused variable.
994
995 2005-08-03  Colin Walters  <walters@verbum.org>
996
997         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
998         catch any incompatible changes accidentally made.
999
1000 2005-08-03  Havoc Pennington  <hp@redhat.com>
1001
1002         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1003         typo, from Julien Puydt
1004
1005         * bus/connection.c (bus_connection_disconnected): we were always
1006         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1007
1008 2005-08-01  Colin Walters  <walters@verbum.org>
1009
1010         Patch from Joe Markus Clarke:   
1011         
1012         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1013         use-after-free.
1014
1015 2005-08-01  Colin Walters  <walters@verbum.org>
1016         
1017         Patch from Joe Markus Clarke:   
1018         
1019         * tools/dbus-send.c (main): 
1020         
1021         Don't use C99 style initializers (bug #3933).
1022         
1023 2005-08-01  Colin Walters  <walters@verbum.org>
1024
1025         Patch from Joe Markus Clarke:   
1026
1027         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1028         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1029         * glib/dbus-gobject.c (write_interface):
1030
1031         Don't use C99 style initializers (bug #3933).
1032
1033 2005-07-31  Havoc Pennington  <hp@redhat.com>
1034
1035         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1036         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1037
1038 2005-07-30  Havoc Pennington  <hp@redhat.com>
1039
1040         * fix a bunch of Doxygen warnings and mistakes
1041
1042 2005-07-30  Havoc Pennington  <hp@redhat.com>
1043
1044         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1045         DBUS_BUILD_TESTS since it's now used in production code
1046
1047 2005-07-29  Havoc Pennington  <hp@redhat.com>
1048
1049         * test/glib/test-profile.c (write_junk): initialize the junk
1050         buffer so valgrind doesn't have a breakdown
1051
1052 2005-07-29  Havoc Pennington  <hp@redhat.com>
1053
1054         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1055         (match_rule_matches): remove unused arg
1056         (test_matching): add tests for match_rule_matches()
1057
1058         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1059         do arg0='foo' arg5='bar' in the match rules
1060         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1061
1062         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1063
1064 2005-07-29  Ross Burton  <ross@openedhand.com>
1065
1066         * dbus/dbus-connection.c:
1067         Don't create a DBusCondVar which is never used.
1068
1069 2005-07-27  Ross Burton  <ross@openedhand.com>
1070
1071         * dbus/dbus-message.c:
1072         Reduce the size of the maximum cached message to 10K.
1073
1074 2005-07-25  Ross Burton  <ross@openedhand.com>
1075
1076         * glib/dbus-gproxy.c:
1077         Remove matches when all proxies are unregistered.
1078
1079 2005-07-24  Colin Walters  <walters@verbum.org>
1080
1081         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1082         typedata; recursive arrays won't have it.
1083
1084         * test/glib/test-dbus-glib.c:
1085         * test/glib/test-service-glib.c:
1086         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1087         
1088 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1089
1090         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1091         proxies.py, service.py: Cleanup of code after running it through the
1092         pyflakes code checker mostly dealing with undefined names.  
1093         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1094
1095 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1096
1097         * NEWS: Update to 0.35.2
1098
1099 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1100
1101         * python/_dbus.py: Remove import of the dbus.services
1102         module as it no longer exists (patch from Dimitur Kirov)
1103
1104         * python/service.py (Object::__init__): Fixed typo
1105         s/name/bus_name (patch from Dimitur Kirov)
1106
1107         * python/examples/example-signal-emitter.py: import dbus.glib
1108         to get the main loop and use glib mainloop instead of gtk so
1109         X doesn't have to be running.
1110
1111         * python/examples/example-signal-recipient.py: import dbus.glib
1112         to get the main loop and use glib mainloop instead of gtk so
1113         X doesn't have to be running. Import the decorators module
1114         directly.
1115
1116         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1117         didn't pick up on but are needed to build
1118
1119         * configure.in: upped version to 0.35.2
1120
1121         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1122         added Colin Walters' SELinux API rename patch from head 
1123         s/unix sercurity context/selinux security context/
1124
1125 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1126
1127         * python/Makefile.am: dbus_binding.pxd.in should be included 
1128         in EXTRA_DIST not dbus_binding.pxd
1129         fix up $(srcdir) hopefully for the last time
1130
1131         * NEWS: Update to 0.35.1
1132
1133 2005-07-16  Colin Walters  <walters@verbum.org>
1134
1135         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1136         from bus_driver_handle_get_connection_unix_security_context.  Update for
1137         error usage.
1138         (message_handlers): Update for renames.
1139
1140         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1141         _dbus_string_init failure correctly.
1142         (bus_selinux_append_context): Convert SID to context.  Append it
1143         as a byte array.
1144         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1145         hasn't been called.
1146
1147         * bus/selinux.h: Update prototype.
1148
1149         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1150         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1151
1152 2005-07-15  Colin Walters  <walters@verbum.org>
1153
1154         * doc/TODO: Add note about convenience wrappers.
1155
1156 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1157
1158         * NEWS: Update to 0.35
1159
1160 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1161
1162         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1163         so distcheck doesn't fail
1164
1165         * glib/examples/Makefile.am: Add example-service.xml and 
1166         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1167
1168         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1169         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1170
1171         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1172         compiler looks in the right places during distcheck
1173
1174 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1175
1176         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1177         to fail
1178
1179 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1180
1181         * python/examples/example-service.py,
1182         python/examples/example-signal-emitter.py: Fixed up examples
1183         for API changes
1184
1185 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1186
1187         * python/__init__.py: Upped to version (0,42,0) because of
1188         the API change
1189
1190 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1191
1192         * ChangeLog: fix date in last entry
1193
1194         * configure.in, bus/system.conf.in: add the ability to configure 
1195         the system bus user at compiletime with the --with-dbus-user flag
1196         (patch from Kristof Vansant)
1197
1198 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1199
1200         * bus/dispatch.c, test/test-service.c: Add testcase
1201         for sending messages to oneself (TODO item).
1202
1203         * python/service.py (class Object): Swap ordering of bus_name 
1204         and object_path parameters to better support inheritance.
1205
1206         * doc/dbus-tutorial.xml: change Python docs to reflect change
1207         in parameter ordering and fix the inheritance section.
1208
1209         * doc/TODO: remove sending message to oneself TODO item
1210
1211 2005-07-15  Ross Burton  <ross@openedhand.com>
1212
1213         * glib/dbus-gproxy.c:
1214         Fix a leak when calling methods via the proxy.
1215
1216 2005-07-15  Colin Walters  <walters@verbum.org>
1217
1218         * bus/selinux.c (bus_selinux_append_context): Wrap in
1219         HAVE_SELINUX.
1220
1221 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1222
1223         * python/_dbus.py (Bus::remove_signal_receiver):
1224         don't add a callback to the match if none has been passed in
1225         
1226         * python/matchrules.py (SignalMatchTree::remove): if the rule
1227         being matched does not have a callback treat it as a wildcard
1228         fix matching logic
1229
1230         * doc/dbus-tutorial.xml: Add Python tutorial
1231
1232 2005-07-14  Colin Walters  <walters@verbum.org>
1233
1234         * bus/driver.c
1235         (bus_driver_handle_get_connection_unix_security_context): New function.
1236         (message_handlers): Add.
1237
1238         * bus/selinux.c (bus_selinux_append_context): New function; appends
1239         security context to message.
1240
1241         * bus/selinux.h: Prototype.
1242
1243         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1244
1245 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1246
1247         * bus/activation.c: clean up all tabs to be 8 spaces 
1248         (bus_activation_activate_service): make sure we clean up
1249         if activation fails
1250
1251         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1252         (check_shell_fail_service_auto_start): New function
1253         tests to make sure we get fail properly when trying to auto start a service
1254         with a faulty command line
1255         (check_shell_service_success_auto_start): New function tests to make sure
1256         auto started services get the arguments on the command line
1257
1258         * test/test-shell-service.c: Added service for testing auto-starting with 
1259         command line arguments
1260
1261         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1262         test/data/valid-service-files/debug-shell-echo-success.service.in:
1263         Added service files for testing auto-starting with command line arguments
1264
1265         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1266
1267 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1268
1269         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1270         
1271         * dbus/Makefile.am: added new files to build.
1272
1273         * bus/activation.c (bus_activation_activate_service): support
1274         activation commands with parameters.
1275
1276         * test/shell-test.c: added test program for the shell parsing
1277         code.
1278
1279 2005-07-13  David Zeuthen  <davidz@redhat.com>
1280
1281         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1282         64 bit signed and unsigned parameters
1283
1284 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1285
1286         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1287
1288         * python/service.py (class Name): renamed BusName to make it clearer
1289         what the object is for (a name on the bus)
1290
1291         * python/examples/example-service.py,
1292         python/examples/example-signal-emitter.py: change the Name object to
1293         BusName
1294
1295 2005-07-12  Colin Walters  <walters@verbum.org>
1296
1297         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1298
1299         * tools/dbus-launch.c: Include sys/select.h.
1300
1301 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1302         * python/dbus_bindings.pyx.in: removed
1303
1304         * python/dbus_bindings.pyx: Added.
1305         - Fixed some memleaks (patch from 
1306         Sean Meiners <sean.meiners@linspireinc.com>)
1307         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1308         own pxd file (Pyrex definition)
1309         - Broke out glib dependancies into its own pyx module
1310         
1311         * python/dbus_bindings.pdx: Added.
1312         - Defines C class Connection for exporting to other modules
1313
1314         * python/dbus_glib_bindings.pyx: Added.
1315         - New module to handle lowlevel dbus-glib mainloop integration
1316
1317         * python/glib.py: Added.
1318         - Registers the glib mainloop when you import this module
1319
1320         * python/services.py: Removed (renamed to service.py)
1321         
1322         * python/service.py: Added.
1323         - (class Server): renamed Name
1324
1325         * python/__init__.py: Bump ro version (0,41,0)
1326         -don't import the decorators or service module
1327         by default.  These now reside in the dbus.service namespace
1328
1329         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1330         setup function on creation 
1331
1332         * python/examples/example-service.py,
1333         python/examples/example-signal-emitter.py: update examples
1334
1335         * python/examples/gconf-proxy-service.py,
1336         python/examples/gconf-proxy-service2.py: TODO fix these up
1337
1338         * doc/TODO: Addition
1339         - Added a Python Bindings 1.0 section
1340         - added "Add match on args or match on details to match rules"
1341
1342
1343 2005-07-12  Colin Walters  <walters@verbum.org>
1344
1345         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1346         (statemachine-glue.h): 
1347         * glib/examples/Makefile.am (example-service-glue.h) 
1348         (example-signal-emitter-glue.h): 
1349         * glib/Makefile.am (dbus-glib-error-switch.h): 
1350         Add libtool --mode=execute so we use the built library instead
1351         of any installed one.
1352
1353 2005-07-11  Colin Walters  <walters@verbum.org>
1354
1355         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1356         (dbus_g_value_types_init): Remove assertion.
1357         (dbus_g_value_get_g_type, dbus_g_value_open)
1358         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1359         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1360         functions related to DBusGValue.  Now we marshal/demarshal
1361         structures as GValueArray.
1362         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1363         structures.
1364         (signature_iter_to_g_type_array): Don't call
1365         signature_iter_to_g_type_struct.
1366         (signature_iter_to_g_type_struct): Delete.
1367         (dbus_gvalue_to_signature): Delete.
1368         (dbus_gvalue_to_signature): New function with same name as other
1369         one; we can convert structures to signatures.
1370         (demarshal_valuearray): New function.
1371         (get_type_demarshaller): Use it.
1372         (demarshal_recurse): Delete.
1373         (marshal_proxy): New function.
1374         (marshal_map): Warn if we can't determine signature from type.
1375         (marshal_collection_ptrarray): Ditto.
1376         (marshal_collection_array): Ditto.
1377         (get_type_marshaller): Use marshal_valuearray.
1378         (marshal_recurse): Delete.
1379         (_dbus_gvalue_test): Add some tests.
1380
1381         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1382         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1383         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1384         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1385         (dbus_g_value_free): Remove prototypes.
1386
1387         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1388         G_TYPE_VALUE_ARRAY.
1389
1390         * glib/examples/example-service.c:
1391         * glib/examples/example-client.c: Implement GetTuple.
1392
1393         * test/glib/test-dbus-glib.c:
1394         * test/glib/test-service-glib.c:
1395         * test/glib/test-service-glib.xml: Add structure tests.
1396
1397 2005-07-10  Colin Walters  <walters@verbum.org>
1398
1399         * doc/TODO: Knock off some GLib items with this patch.
1400
1401         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1402         (_dbus_gvalue_signals_error): New functions.
1403
1404         * glib/dbus-gvalue-utils.h: Prototype them.
1405
1406         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1407         and change to not output const/retval flags for input args.  All
1408         callers updated.
1409         (invoke_object_method): Refactor to handle return values.  Add
1410         some more comments in various places.  Remove debug g_print.
1411
1412         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1413
1414         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1415         Handle G_TYPE_NONE.
1416         (compute_gsignature): New function; refactored from code from
1417         compute_marshaller and compute_marshaller_name.  Enhance to
1418         handle return values and async ops more cleanly.  Update for
1419         async ops returning NONE instead of BOOLEAN.
1420         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1421         and output appropriate string.
1422         (generate_glue): Handle return value annotation.  Also don't dump
1423         constness flag for input arguments.
1424
1425         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1426         files shared between installed library and utilities.
1427         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1428         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1429         binding tool can access gtype utility functions.
1430
1431         * test/glib/test-service-glib.c: 
1432         * test/glib/test-service-glib.xml: 
1433         * test/glib/test-dbus-glib.c: Add some tests for return values.
1434
1435 2005-07-09  Colin Walters  <walters@verbum.org>
1436
1437         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1438         argument if available, not method.
1439
1440         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1441         (invoke_object_method): First, remove some redundant
1442         GValues (object_value, error_value) in favor of working on
1443         array directly.  Second, rework constness to be less buggy.
1444         Now we iterate directly over the argument metadata instead
1445         of parallel iterating over output signature and metadata.
1446
1447         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1448
1449         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1450         annotation on input args.
1451         
1452 2005-07-09  Colin Walters  <walters@verbum.org>
1453
1454         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1455         Define.
1456
1457         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1458         annotation.
1459
1460         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1461         (method_dir_signature_from_object_info): Handle arg_iterate change.
1462         (write_interface): Ditto.
1463         (lookup_object_info): Don't barf if format_version is > 0.
1464         (invoke_object_method): Handle arg constness.
1465
1466         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1467         (arg_info_new): Create.
1468         (arg_info_unref): Destroy.
1469         (arg_info_get_annotations, arg_info_get_annotation) 
1470         (arg_info_add_annotation): New functions.
1471
1472         * glib/dbus-gidl.h: Prototype them.
1473
1474         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1475         args, disallow them in properties.
1476         (parse_annotation): Handle arg annotations.
1477
1478         * test/glib/test-service-glib.xml: 
1479         * test/glib/test-service-glib.c: Update to make some methods
1480         const.
1481
1482 2005-07-08  Colin Walters  <walters@verbum.org>
1483
1484         * test/glib/test-service-glib.xml: 
1485         * test/glib/test-service-glib.c:
1486         * test/glib/test-dbus-glib.c: Test a{sv}.
1487
1488         * glib/examples/statemachine/statemachine.c:
1489         * glib/examples/statemachine/statemachine-server.c:
1490         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1491         add progress bar, etc.
1492
1493         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1494         needed anymore due to generic array/map marshalling.
1495         (dbus_g_value_types_init): Don't register basic arrays or the
1496         string/string hash.
1497         (dbus_gtype_from_signature_iter): Don't try to recurse into
1498         variants.
1499         (dbus_gtype_to_signature): Check collection/map before type
1500         metadata.
1501         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1502         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1503         generic map creation/append functions instead of hash table
1504         specifically.
1505         (get_type_demarshaller): Handle maps.
1506         (demarshal_collection): Dispatch on collection type to either
1507         demarshal_collection_ptrarray or demarshal_collection_array.
1508         (get_type_marshaller): Handle maps.
1509         (marshal_collection): Dispatch collection type to either
1510         marshal_collection_ptrarray or marshal_collection_array.
1511         (_dbus_gvalue_test): New test.
1512
1513         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1514         (hash_free_from_gtype): Use it to free GValues.
1515         (hashtable_append): New function.
1516         (ptrarray_append): Fix prototype.
1517         (slist_append): Ditto.
1518         (_dbus_gvalue_utils_test): Extend tests.
1519
1520         * glib/dbus-gtype-specialized.c
1521         (dbus_g_type_specialized_init_append): Renamed from
1522         dbus_g_type_specialized_collection_init_append.  Remove const from
1523         value, since we steal it.
1524         (dbus_g_type_specialized_map_append): New function.
1525
1526         * glib/dbus-gtype-specialized.h: Update prototypes.
1527         Add DBusGTypeSpecializedMapAppendFunc.
1528
1529         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1530         _dbus_gvalue_test.
1531         
1532         * glib/dbus-gtest.h: Prototype it.
1533
1534 2005-07-08  Ross Burton  <ross@openedhand.com>
1535
1536         * dbus/dbus-glib.h:
1537         Add DBysGAsyncData for the async bindings.
1538
1539         * glib/dbus-binding-tool-glib.c:
1540         Re-enable the async bindings.
1541
1542         * test/glib/test-dbus-glib.c:
1543         Add a test for the generated async bindings.
1544
1545 2005-07-08  Colin Walters  <walters@verbum.org>
1546
1547         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1548         connection concept.
1549         
1550 2005-07-08  Colin Walters  <walters@verbum.org>
1551         
1552         * tools/Makefile.am: Kill of print-introspect in favor of using
1553         dbus-send --print-reply=literal.
1554
1555         * test/glib/test-service-glib.xml: 
1556         * test/glib/test-service-glib.c (my_object_get_objs): New test
1557         for "ao".
1558
1559         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1560         (main): Test GetObjs.
1561
1562         * glib/examples/statemachine/Makefile.am:
1563         * glib/examples/statemachine/sm-marshal.list:
1564         * glib/examples/statemachine/statemachine-client.c:
1565         * glib/examples/statemachine/statemachine-server.c:
1566         * glib/examples/statemachine/statemachine-server.xml:
1567         * glib/examples/statemachine/statemachine.c:
1568         * glib/examples/statemachine/statemachine.h:
1569         * glib/examples/statemachine/statemachine.xml:
1570
1571         New example.
1572
1573         * glib/examples/example-service.c (main): Move invocation
1574         of dbus_g_object_type_install_info earlier, to emphasize it
1575         should only be done once.
1576
1577         * glib/examples/example-signal-emitter.c (main): Ditto.
1578
1579         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1580
1581         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1582         (dbus_gvalue_marshal): Update prototypes.
1583
1584         * glib/dbus-gvalue.c: Update all marshalling functions to take
1585         const GValue instead of GValue.
1586         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1587         types.
1588         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1589         change.
1590         (dbus_gtype_to_signature): Handle generic collecitons and maps.
1591         Return a newly-allocated string.
1592         (demarshal_proxy, demarshal_object_path, demarshal_object)
1593         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1594         we get the wrong types from message.
1595         (get_type_demarshaller): New function, extracted from
1596         dbus_gvalue_demarshal.
1597         (demarshal_collection): New function, demarshals generic
1598         collection.
1599         (dbus_gvalue_demarshal): Just invoke result of
1600         get_type_demarshaller.  Throw error if we don't have one.
1601         (marshal_garray_basic): Abort on OOM.
1602         (get_type_marshaller): New function, extracted from
1603         dbus_gvalue_marshal.
1604         (collection_marshal_iterator, marshal_collection): New functions;
1605         implements generic marshalling for an iteratable specialized
1606         collection.
1607         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1608
1609         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1610         G_TYPE_STRING.
1611         (ptrarray_value_from_gvalue): Ditto.
1612         (ptrarray_append, ptrarray_free): New functions.
1613         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
1614         (slist_append, slist_end_append, slist_free): New functions.
1615         (dbus_g_type_specialized_builtins_init): Add append fuctions
1616         for GPtrArray and GSList.  Register GSList.
1617         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1618
1619         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1620         New.
1621         (dbus_g_type_specialized_collection_init_append)
1622         (dbus_g_type_specialized_collection_append)
1623         (dbus_g_type_specialized_collection_end_append): Prototype.
1624         (DBusGTypeSpecializedCollectionVtable): Add append_func and
1625         end_append_func.
1626
1627         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
1628         (dbus_g_type_specialized_collection_append) 
1629         (dbus_g_type_specialized_collection_end_append): New functions.
1630         (dbus_g_type_map_value_iterate): Take const GValue.
1631         (dbus_g_type_collection_value_iterate): Ditto.
1632
1633         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1634         _dbus_gvalue_utils_test.
1635         
1636         * glib/dbus-gtest.h: Prototype it.
1637
1638         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1639         using uninitialized owner_list.
1640         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1641         public API.
1642         (dbus_g_proxy_end_call_internal): Update to use error set
1643         from dbus_gvalue_demarshal instead of setting it here.
1644         (dbus_g_proxy_begin_call): Move return_if_fail here.
1645
1646         * glib/dbus-gobject.c (write_interface): Update for
1647         dbus_gtype_to_signature returning new string.
1648
1649         * configure.in: Add glib/examples/statemachine.
1650
1651 2005-07-08  Joe Shaw  <joeshaw@novell.com>
1652
1653         * configure.in: Add a configure option, --with-console-auth-dir
1654         
1655         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1656         new setting.  Patch from Kay Sievers.
1657
1658 2005-07-06  Colin Walters  <walters@verbum.org>
1659
1660         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1661         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1662         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1663         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1664         Delete in favor of dbus_g_proxy_begin_call and
1665         dbus_g_proxy_cancel_call.
1666         (DBusGProxyCall, DBusGProxyCallNotify): New.
1667         (dbus_g_proxy_begin_call): Change prototype to take callback, user
1668         data, and destroy function.  This replaces
1669         dbus_g_pending_call_set_notify.
1670         (dbus_g_proxy_cancel_call): Prototype.
1671         (DBusGAsyncData): Delete, shouldn't be needed anymore.
1672
1673         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1674         pending_calls map.
1675         (struct _DBusGProxyManager): Add bus_proxy member, which is an
1676         internal proxy for calls to the bus. Remove
1677         pending_nameowner_calls, now the internal proxy keeps track.
1678         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1679         pending_nameowner_calls.
1680         (got_name_owner_cb): Update prototype, and use
1681         dbus_g_proxy_end_call.
1682         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1683         (dbus_g_proxy_manager_register): Delete directly libdbus code in
1684         favor of using internal proxy.
1685         (dbus_g_proxy_manager_unregister): Update to use
1686         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1687         (dbus_g_proxy_init): Initialize pending calls map.
1688         (dbus_g_proxy_constructor): New.
1689         (dbus_g_proxy_class_init): Add get/set property functions,
1690         constructor, and add NAME, PATH, and INTERFACE properties.
1691         (cancel_pending_call): New function.
1692         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1693         cancel them.
1694         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1695         (GPendingNotifyClosure): New structure.
1696         (d_pending_call_notify, d_pending_call_free): Moved here from
1697         dbus-glib.c.
1698         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1699         ordering.
1700         (manager_begin_bus_call): New internal function for talking to
1701         internal bus proxy.
1702         (dbus_g_proxy_new): Construct object using GObjet properties.
1703         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1704         Create closure of same, and insert call into map of pending calls.
1705         (dbus_g_proxy_end_call_internal): Take call id instead of pending
1706         call.  Look up pending call in current set.  Remove it when we've
1707         completed.
1708         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1709         (dbus_g_proxy_begin_call): Change API to take callback, user data,
1710         and destroy function directly.
1711         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1712         (dbus_g_proxy_call): Invoke with NULL callback.
1713         (dbus_g_proxy_cancel_call): New function, replaces
1714         dbus_g_pending_call_cancel.
1715
1716         * glib/dbus-gparser.c (validate_signature): Fix call to
1717         dbus_set_g_error.
1718
1719         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1720         New quark for attaching metadata to GType.
1721         (info_hash): Delete.
1722         (lookup_object_info): Look up using quark.
1723         (dbus_g_object_type_install_info): Check that a type is classed,
1724         not that it's an object.  Also just install type data using quark
1725         instead of using global hash.
1726
1727         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
1728         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1729         (GPendingNotifyClosure): Delete.
1730         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1731         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1732
1733         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1734         client method generation until we can fix it...
1735         
1736         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1737         (load_from_service_thread_func): Ditto.
1738
1739         * tools/dbus-names-model.c (struct NamesModel): Hold
1740         DBusGProxyCall.
1741         (have_names_notify): Update prototype, use
1742         dbus_g_proxy_cancel_call.
1743         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1744
1745         * tools/dbus-monitor.c (filter_func): Update for print_message
1746         API change.
1747
1748         * test/glib/test-dbus-glib.c: Add more tests for async
1749         invocations.  Update many begin_call/end_call pairs to just use
1750         dbus_g_proxy_call.
1751
1752         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
1753         allows us to dump print-introspect.c.
1754
1755         * tools/dbus-print-message.h (print_message): Add literal argument
1756         to print_message which is intended to allow printing arguments without
1757         metadata like "string=".
1758
1759         * tools/dbus-print-message.c (print_iter): Add literal argument.
1760         (print_message): Allow printing string messages literally.
1761
1762 2005-07-05  Colin Walters  <walters@verbum.org>
1763
1764         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1765         Remove value refcount leak, original patch from Jorn Baayen
1766         <jorn@openedhand.com>.  Also remove useless extra value in favor
1767         of prepending to value array directly.
1768
1769 2005-07-02  Colin Walters  <walters@verbum.org>
1770
1771         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1772
1773 2005-07-01  Colin Walters  <walters@verbum.org>
1774
1775         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1776         
1777         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1778         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1779         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1780         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1781
1782 2005-06-30  Colin Walters  <walters@verbum.org>
1783
1784         * test/glib/test-dbus-glib.c:
1785         * test/glib/test-service-glib.c:
1786         * test/glib/test-service-glib.xml: Update tests for new error
1787         setting bits, also add async tests (patch from Ross Burton).
1788
1789         * test/glib/Makefile.am (test_service_glib_LDADD): Add
1790         DBUS_GLIB_THREADS_LIBS.
1791
1792         * glib/dbus-gproxy.c (get_name_owner)
1793         (dbus_g_pending_call_end_valist): Ditto.
1794
1795         * glib/dbus-gobject.c (error_metadata): New mapping from GError
1796         domain (GQuark) to DBusGErrorInfo.  
1797         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
1798         quark in error_metadata.  Take message interface as default
1799         error message interface.
1800         (gerror_to_dbus_error_message): Pass message interface.
1801         (dbus_set_g_error): Resurrected.
1802         (dbus_g_error_info_free): New function.
1803         (dbus_g_object_type_install_info): Use g_type_class_ref instead
1804         of _peek to actually create the object class if it hasn't been
1805         created yet.
1806         (dbus_g_error_domain_register): New function.
1807
1808         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
1809
1810         * glib/dbus-gparser.c (validate_signature): Ditto.
1811
1812         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
1813         (dbus_g_error_domain_register): Prototype.
1814
1815         * glib/dbus-glib.c (dbus_g_error_set): Delete.
1816         Update tests.
1817
1818 2005-06-29  Colin Walters  <walters@verbum.org>
1819
1820         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
1821         DBUS_TYPE_G_OBJECT_PATH.
1822
1823         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
1824         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
1825         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
1826         (dbus_g_object_path_get_g_type): New function.
1827         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
1828         to DBUS_TYPE_G_OBJECT_PATH by default.
1829         (demarshal_proxy): Remove unused name variable.
1830         (demarshal_object_path, marshal_object_path): New functions.
1831         (demarshal_proxy_array, marshal_proxy_array): Delete.
1832         
1833         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
1834         DBUS_TYPE_G_OBJECT_PATH to char *.
1835         (dbus_g_type_get_lookup_function): Map builtin
1836         DBUS_TYPE_G_OBJECT_PATH.
1837
1838         * test/glib/test-dbus-glib.c
1839         * test/glib/test-service-glib.c (my_object_objpath): 
1840         Adapt tests to new object path marshalling.
1841
1842 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
1843
1844         * configure.in: force check for Python >= 2.4
1845
1846 2005-06-29  Colin Walters  <walters@verbum.org>
1847         
1848         Patch from Ross Burton <ross@openedhand.com>
1849         
1850         * glib/dbus-gobject.c (invoke_object_method): Unset object
1851         value in all cases, not only in async case.
1852
1853 2005-06-29  Colin Walters  <walters@verbum.org>
1854
1855         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
1856         name_call for keeping track of any outgoing GetNameOwner call.
1857         Also add for_owner and associated.
1858         (struct _DBusGProxyManager): Add owner_names, which is hash table
1859         that maps a base name to a list of names it owns (that we're
1860         interested in).  Add pending_nameowner_calls which is a list of
1861         all outstanding GetNameOwner; avoids us having to iterate over
1862         every proxy.  Add unassociated_proxies which keeps track of name
1863         proxies with no associated name owner.
1864         (dbus_g_proxy_manager_unref): Destroy owner_names.
1865         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
1866         name refcounts.
1867         (find_name_in_info, name_owner_foreach)
1868         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
1869         (dbus_g_proxy_manager_monitor_name_owner)
1870         (dbus_g_proxy_manager_unmonitor_name_owner)
1871         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
1872         New functions; they manipulate the owner_names mapping.
1873         (got_name_owner_cb): New function.
1874         (get_name_owner): New function, extracted from
1875         dbus_g_proxy_new_for_name_owner.
1876         (dbus_g_proxy_manager_register): For now we need to keep track of
1877         all NameOwnerChanged.  Also if the proxy is for a name, if we
1878         don't already know the name owner, queue a new GetNameOwner
1879         request and add it to our list of unassociated proxies.  Otherwise
1880         inc the refcount.
1881         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
1882         cancel any pending GetNameOwner call, etc.
1883         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
1884         the owner_names mapping to look up the current names for the
1885         signal source, and dispatch to any proxies for that name.
1886         (dbus_g_proxy_new): Initialize new members.
1887         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
1888         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
1889         (dbus_g_pending_call_end_valist): New function, extracted from
1890         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
1891         but want to use the GLib infrastructure.  Also note how many
1892         arguments in reply were over.
1893         (dbus_g_pending_call_end): New function, just call
1894         dbus_g_pending_call_end_valist.
1895         (dbus_g_proxy_end_call_internal): Just call
1896         dbus_g_pending_call_end_valist.
1897
1898         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
1899         of builtin marshaller for STRING_STRING_STRING.
1900
1901         * test/glib/test-dbus-glib.c: 
1902         * test/glib/test-service-glib.c:
1903         * test/glib/test-service-glib.xml:
1904         Extend tests to cover name proxies, destruction of owner proxies,
1905         etc.
1906         
1907         * glib/examples/example-signal-recipient.c
1908         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
1909         
1910         * tools/dbus-send.c (main): Print D-BUS error name in addition
1911         to message.
1912
1913 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
1914
1915         * python/dbus_bindings.pyx.in (cunregister_function_handler,
1916         cmessage_function_handler): Patch from 
1917         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
1918         by using the Py_GILState_Ensure/Release to synchronize with the
1919         python runtime.
1920         
1921 2005-06-28  Ray Strode  <rstrode@redhat.com>
1922
1923         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
1924         babysitter helper process on last unref, bug #2813.
1925
1926 2005-06-27  Colin Walters  <walters@verbum.org>
1927
1928         * test/glib/test-dbus-glib.c: 
1929         * test/glib/test-service-glib.c:
1930         * test/glib/test-service-glib.xml:
1931         Test hash table signal emitting.
1932
1933         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
1934         types to their fundamental basis types, since this is what
1935         marshallers operate on.  Also add an entry for VOID__BOXED.
1936         (dbus_g_object_register_marshaller_array): Convert to fundamental.
1937
1938 2005-06-26  Havoc Pennington  <hp@redhat.com>
1939
1940         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
1941         from Don Park
1942
1943 2005-06-26  Colin Walters  <walters@verbum.org>
1944
1945         * glib/dbus-glib.c (dbus_set_g_error): Delete.
1946         (dbus_g_error_set): New public function from its ashes; used by
1947         both service-side method implementation and GLib bindings
1948         internals.
1949         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
1950         (_dbus_glib_test): Add some tests.
1951
1952         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
1953
1954         * test/glib/test-service-glib.c (my_object_throw_error): Use
1955         dbus_g_error_set.
1956
1957         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
1958         errors thrown by dbus_g_error_set.
1959
1960         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
1961
1962         * glib/dbus-gparser.c (validate_signature): Ditto.
1963
1964         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
1965         (dbus_g_proxy_end_call_internal): Ditto.
1966
1967         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
1968         converts DBUS_ERROR_x to DBUS_GERROR_x.
1969         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
1970
1971         * doc/TODO: Remove error TODO.
1972
1973         * doc/dbus-tutorial.xml: Update with documentation about error
1974         handling.
1975
1976         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
1977         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
1978         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
1979
1980 2005-06-22  Colin Walters  <walters@verbum.org>
1981         
1982         Patch from Ross Burton <ross@openedhand.com>
1983
1984         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
1985
1986 2005-06-20  Colin Walters  <walters@verbum.org>
1987
1988         * configure.in: Add glib/examples.
1989
1990         * glib/Makefile.am: Add examples/
1991
1992         * glib/examples/.cvsignore
1993         * glib/examples/Makefile.am
1994         * glib/examples/example-client.c
1995         * glib/examples/example-service.c
1996         * glib/examples/example-service.xml
1997         * glib/examples/example-signal-emitter.c
1998         * glib/examples/example-signal-emitter.xml
1999         * glib/examples/example-signal-recipient.c:
2000         New files; GLib binding examples, ported from
2001         python/examples.
2002
2003 2005-06-20  Colin Walters  <walters@verbum.org>
2004
2005         * dbus/dbus-glib.h: 
2006         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2007         dbus_g_proxy_call.
2008
2009         * glib/dbus-binding-tool-glib.c: 
2010         * doc/dbus-tutorial.xml: 
2011         * test/glib/test-dbus-glib.c: Update for rename.
2012         
2013 2005-06-20  Colin Walters  <walters@verbum.org>
2014
2015         Patch suggested by Ross Burton <ross@openedhand.com>
2016
2017         * glib/dbus-gobject.c (export_signals): Free signal name.
2018         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2019         memory leak.  Add a bit of documentation.
2020         (dbus_g_method_return_error): Free context, and note we do
2021         so.
2022
2023 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2024
2025         * dbus/dbus-glib.h:
2026         * glib/dbus-gobject.c:
2027         * glib/dbus-gproxy.c:
2028         * glib/dbus-gvalue.c: Predeclare structs as 
2029         typedef struct _Something Something instead of 
2030         typedef struct Something Something, so we can 
2031         redeclare the prototypes. Other GNOME libraries 
2032         do this already.
2033
2034 2005-06-17  Colin Walters  <walters@verbum.org>
2035
2036         * tools/dbus-names-model.c (have_names_notify): Fix call
2037         to dbus_g_proxy_end_call.
2038         
2039 2005-06-17  Colin Walters  <walters@verbum.org>
2040
2041         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2042         spew warnings if we get malformed remote signals.
2043
2044         * glib/dbus-gobject.c (propsig_iterate): New function.
2045         (lookup_object_info): New function, extracted from
2046         lookup_object_and_method.
2047         (introspect_properties, introspect_signals): Delete; these
2048         are merged into write_interface.
2049         (write_interface): Write out signals and properties here;
2050         dump the org.gtk.object stuff and use the interface given
2051         in the introspection data blob.  Also fix up property XML.
2052         (lookup_values): New function.
2053         (introspect_interfaces): Gather a mapping from interface to a
2054         list of its methods, signals, and properties, then write out
2055         each interface.
2056         (lookup_object_and_method): Use lookup_object_info.
2057         (struct DBusGSignalClosure): Add interface.
2058         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2059         we can just use the constant data.
2060         (dbus_g_signal_closure_finalize): Don't free signal name.
2061         (signal_emitter_marshaller): Use interface from signal closure.
2062         (export_signals): Only export signals mentioned in introspection
2063         blob.
2064         (dbus_g_connection_register_g_object): Warn if we have no
2065         introspection data for an object.
2066         (funcsig_equal): Remove unused variable.
2067         (dbus_g_object_register_marshaller): Take varargs instead of
2068         list.
2069         (dbus_g_object_register_marshaller_array): New function,
2070         extracted from old dbus_g_object_register_marshaller.
2071
2072         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2073         signals and property data.
2074         (write_quoted_string): New function, extracted from generate_glue.
2075         (generate_glue): Write signals and properties to introspection
2076         blob.
2077
2078         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2079         exported_signals and exported_properties.
2080         (dbus_g_object_register_marshaller): Update prototype.
2081         (dbus_g_object_register_marshaller_array): Prototype.
2082         
2083         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2084
2085         * test/glib/test-service-glib.c: Add new test signals and method
2086         to emit them.
2087
2088         * test/glib/test-service-glib.xml: Add some test signals.
2089
2090         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2091         and my-object-marshal.h
2092         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2093         my-object-marshal.c.
2094         (my-object-marshal.c, my-object-marshal.h): Implement.
2095
2096         * test/glib/.cvsignore: Update.
2097
2098         * doc/TODO: Remove two GLib TODO items fixed by this
2099         patch.
2100
2101 2005-06-16  Colin Walters  <walters@verbum.org>
2102
2103         * doc/TODO: Update for GLib bindings.
2104         
2105 2005-06-16  Colin Walters  <walters@verbum.org>
2106
2107         * glib/dbus-binding-tool-glib.c:
2108         * glib/dbus-gobject.c:
2109         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2110         from Ross Burton, for his GLib bindings work.
2111
2112 2005-06-16  Colin Walters  <walters@verbum.org>
2113
2114         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2115         to iterate instead of walking to G_TYPE_INVALID.
2116
2117         Patch based on a patch from Ryan Gammon.
2118
2119 2005-06-16  Colin Walters  <walters@verbum.org>
2120
2121         * bus/bus.c (bus_context_new): Set parser to NULL
2122         after we unref it (Patch from Chris Boscolo, #2174).
2123         
2124 2005-06-16  Colin Walters  <walters@verbum.org>
2125
2126         * python/dbus_bindings.pyx.in: Import size_t,
2127         __int64_t, __uint64_t, and __signed.
2128
2129         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2130         Define cmsg struct, output it.
2131         (_dbus_read_credentials_unix_socket):
2132         Use cmsg struct.
2133         
2134         Patch from Joe Markus Clarke for FreeBSD support.
2135         
2136 2005-06-16  Colin Walters  <walters@verbum.org>
2137
2138         * tools/dbus-send.c (append_array): Use strtok.
2139         (append_dict): New function.
2140         (type_from_name): New function, extracted from main.
2141         (main): Handle sending dicts.
2142
2143         * tools/dbus-print-message.c (print_iter): Print dict
2144         entries.
2145         
2146 2005-06-16  Colin Walters  <walters@verbum.org>
2147
2148         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2149         values as the empty string (#2948).
2150         
2151 2005-06-16  Colin Walters  <walters@verbum.org>
2152
2153         * dbus/Makefile.am:
2154         * mono/doc/Makefile.am:
2155         * test/glib/Makefile.am:
2156
2157         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2158
2159 2005-06-16  Colin Walters  <walters@verbum.org>
2160
2161         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2162         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2163
2164         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2165         Increment pointer after swapping fixed array.  Add assertion
2166         for array length.
2167                 
2168 2005-06-15  Colin Walters  <walters@verbum.org>
2169
2170         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2171         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2172         
2173 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2174
2175         * NEWS: Update to 0.34
2176
2177 2005-06-15  David Zeuthen  <davidz@redhat.com>
2178
2179         * configure.in (LT_CURRENT): Revert back to 1 as the library
2180         hasn't changed and we've certainly not committed to protocol
2181         stability yet.  All this does is to break ABI. See commit note
2182         from hp@redhat.com 2005-05-05 for details.
2183         
2184 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2185
2186         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2187         (_dbus_connection_run_builtin_filters): New method
2188         (dbus_connection_dispatch): Run the builtin filters which in turn
2189         runs the peer filter which handles Ping messages.
2190
2191         * doc/TODO: 
2192          - Ping isn't handled: This patch fixes it
2193          
2194          - Add a test case for the Ping message: added TODO item
2195
2196 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2197
2198         * dbus/dbus-message.c:
2199         (dbus_message_has_path): New method
2200         (dbus_message_has_interface): New method
2201         (dbus_message_has_member): New method
2202
2203         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2204         New method
2205
2206         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2207         the keyring directory is private to the user
2208
2209         * doc/TODO:
2210          - The convenience functions in dbus-bus.h should perhaps have
2211          the signatures that they would have if they were autogenerated
2212          stubs. e.g. the acquire service function. We should also evaluate
2213          which of these functions to include, in light of the fact that
2214          GLib/Qt native stubs will probably also exist.: Punted
2215
2216          - add dbus_message_has_path(), maybe has_member/interface:
2217          fixed in this patch
2218
2219          - in dbus-keyring.c, enforce that the keyring dir is not
2220          world readable/writable: Fixed in this patch
2221
2222 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2223
2224         * dbus/dbus-marshal-validate.h: Added a new validation
2225         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2226         out of memory errors when validating signitures
2227
2228         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2229         in places where we previously used DBUS_VALID and a FALSE return 
2230         value to indicate OOM
2231         
2232         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2233         Use a stack to track the number of elements inside containers.  The 
2234         stack values are then used to validate that dict entries have only two
2235         elements within them.
2236         (validate_body_helper): check the reason for failure when validating
2237         varients
2238         
2239         * dbus/dbus-message.c (load_message): use 
2240         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2241         DBUS_VALID and a FALSE return value to indicate OOM
2242
2243         * doc/TODO: remove "- validate dict entry number of fields" as this
2244         patch fixes it
2245
2246 2005-06-14  David Zeuthen  <davidz@redhat.com>
2247
2248         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2249         watches (if applicable) and add new watches
2250
2251         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2252         (main): Setup SIGIO signal handler if using D_NOTIFY
2253
2254         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2255
2256         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2257         (merge_included): Also merge conf_dirs list
2258         (bus_config_parser_unref): Clear conf_dirs list
2259         (include_dir): Add directory to conf_dirs list
2260         (bus_config_parser_get_conf_dirs): New function
2261
2262         * bus/dir-watch.[ch]: New files
2263
2264         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2265
2266         * configure.in: Add checks for D_NOTIFY on Linux
2267
2268 2005-06-14  Colin Walters  <walters@verbum.org>
2269
2270         * glib/dbus-binding-tool-glib.c:
2271         * glib/dbus-gobject.c:
2272         * glib/dbus-gvalue.c: Fix indentation and brace style.
2273         
2274 2005-06-14  Ross Burton <ross@openedhand.com>.
2275
2276         * glib/dbus-glib.h: Make DBusGMethodInvocation
2277         a private structure.  Rearrange prototypes a bit.
2278         
2279         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2280         documentation for first_arg_type.
2281         
2282         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2283         here, add documentation.  Move dbus_g_method_return
2284         and dbus_g_method_return_error into public API
2285         section.
2286
2287 2005-06-14  Colin Walters  <walters@verbum.org>
2288
2289         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2290         Add missing return statements, noticed by Ross Burton.
2291         
2292 2005-06-13  Ross Burton <ross@openedhand.com>.
2293
2294         * glib/dbus-gobject.c: Handle errors on message
2295         demarshalling by sending error message back.
2296         * glib/dbus-gvalue.c: Initialize return variables.
2297
2298 2005-06-13  Colin Walters  <walters@verbum.org>
2299
2300         * glib/Makefile.am: Fix thinko in last patch.
2301
2302 2005-06-13  Colin Walters  <walters@verbum.org>
2303
2304         * glib/Makefile.am: Move dbus-gtype-specialized.c
2305         and dbus-gtype-specialized.h into a _HEADERS variable,
2306         install them.
2307
2308 2005-06-12  Colin Walters  <walters@verbum.org>
2309
2310         Async signals and various bugfixes and testing by
2311         Ross Burton <ross@openedhand.com>.
2312
2313         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2314         (dbus_gvalue_genmarshal_name_from_type)
2315         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2316         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2317         (dbus_g_value_types_init, dbus_gtype_from_signature)
2318         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2319         (dbus_gtypes_from_arg_signature): New function prototypes.
2320         (dbus_gvalue_demarshal): Take context and error arguments.
2321         (dbus_gvalue_demarshal_variant): New function.
2322         (dbus_gvalue_demarshal_message): New function.
2323         (dbus_gvalue_store): Delete.
2324
2325         * glib/dbus-gvalue.c:
2326
2327         File has been almost entirely rewritten; now we special-case
2328         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2329         hash tables correctly, etc.  Full support for recursive values
2330         is not yet complete.
2331
2332         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2333         argument of signal to G_TYPE_POINTER since we now pass a
2334         structure.
2335         (lookup_g_marshaller): Delete in favor of
2336         _dbus_gobject_lookup_marshaller.
2337         (marshal_dbus_message_to_g_marshaller): Use
2338         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2339         to handle remote signal callbacks.
2340         (dbus_g_proxy_new_from_proxy): New function; creates a new
2341         DBusGProxy by copying an existing one.
2342         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2343         (dbus_g_proxy_get_path): New functions.
2344         (dbus_g_proxy_marshal_args_to_message): New function;
2345         factored out of existing code.
2346         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2347         from a varargs array.
2348         (dbus_g_proxy_begin_call_internal): New function.
2349         (dbus_g_proxy_end_call_internal): New function.
2350         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2351         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2352         after collecting args into value array.
2353         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2354         invoke dbus_g_proxy_end_call_internal.
2355         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2356         end_call_internal.
2357         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2358         types.
2359         (array_free_all): New function.
2360         (dbus_g_proxy_add_signal): Take GTypes.
2361
2362         * glib/dbus-gobject.h:
2363         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2364         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2365         Prototype.
2366
2367         * glib/dbus-gobject.c: Add a global marshal_table hash which
2368         stores mappings from type signatures to marshallers.  Change lots
2369         of invocations of dbus_gtype_to_dbus_type to
2370         dbus_gtype_to_signature.
2371         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2372         (introspect_signals): Fix test for query.return_type.
2373         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2374         (invoke_object_method): Many changes.  Handle asynchronous
2375         invocations.  Convert arguments with
2376         dbus_gvalue_demarshal_message.  Handle errors.  Use
2377         DBusSignatureIter instead of strlen on args. Handle all arguments
2378         generically.  Special-case variants.
2379         (dbus_g_method_return, dbus_g_method_return_error): New function.
2380         (DBusGSignalClosure): New structure, closes over signal
2381         information.
2382         (dbus_g_signal_closure_new): New function.
2383         (dbus_g_signal_closure_finalize): New function.
2384         (signal_emitter_marshaller): New function; is special marshaller
2385         which emits signals on bus.
2386         (export_signals): New function; introspects object signals and
2387         connects to them.
2388         (dbus_g_object_type_install_info): Take GType instead of
2389         GObjectClass.
2390         (dbus_g_connection_register_g_object): Invoke export_signals.
2391         (dbus_g_connection_lookup_g_object): New function.
2392         (DBusGFuncSignature) New structure; used for mapping type
2393         signatures to marshallers.
2394         (funcsig_hash): New function; hashes DBusGFuncSignature.
2395         (funcsig_equal): New function; compares DBusGFuncSignature.
2396         (_dbus_gobject_lookup_marshaller): New function.
2397         (dbus_g_object_register_marshaller): New function; used to
2398         register a marshaller at runtime for a particular signature.
2399
2400         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2401
2402         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2403         which notes a server method implementation should be
2404         asynchronous.
2405
2406         * glib/dbus-binding-tool-glib.c
2407         (dbus_binding_tool_output_glib_server): Call
2408         dbus_g_value_types_init.
2409         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2410         variants specially.
2411         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2412         of a lookup function.
2413         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2414         (write_untyped_out_args): New method; write output arguments.
2415         (write_formal_declarations_for_direction): Function for
2416         writing prototypes.
2417         (write_formal_parameters_for_direction): Function for
2418         writing implementations.
2419         (write_typed_args_for_direction): Function for writing
2420         arguments prefixed with GTypes.
2421         (write_async_method_client): Write out async version
2422         of method.
2423
2424         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2425         (dbus_g_type_get_marshal_name): Move mapping from GType
2426         to marshal name into here.
2427         (dbus_g_type_get_c_name): Move into here.
2428         (compute_marshaller): Convert signature to type with
2429         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2430         (compute_marshaller_name): Ditto.
2431         (compute_marshaller): Handle async signal annotations.
2432         (gather_marshallers): Return if we don't have a known
2433         prefix.
2434         (generate_glue): Collect introspection blob here, and
2435         write all of the blob at the end.  This allows an object
2436         with multiple interfaces to work.
2437         Mark async methods in introspection blob.
2438
2439         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2440         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2441         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2442
2443         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2444         avoids people accidentally using DBUS_TYPE_* which should
2445         not be necessary anymore.
2446         Do include dbus-gtype-specialized.h, which are utilities
2447         for GLib container types.
2448         Add various #defines for types such as
2449         DBUS_TYPE_G_BOOLEAN_ARRAY.
2450         (DBusGValueIterator, DBusGValue): Define, not fully used
2451         yet.
2452         (dbus_g_value_get_g_type): Type for recursive value.
2453         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2454         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2455         (dbus_g_value_free): Prototypes.
2456         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2457         (dbus_g_proxy_set_interface): Prototype.
2458         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2459         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2460         types.
2461         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2462         Accessors.
2463         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2464         doing async invocations.
2465         (dbus_g_method_return, dbus_g_method_return_error):
2466         Prototypes.
2467         * doc/dbus-tutorial.xml: Update GLib section.
2468         
2469         * tools/dbus-viewer.c (load_child_nodes): Update
2470         for new invocation type of dbus_g_proxy_end_call.
2471         (load_from_service_thread_func): Ditto.
2472
2473         * tools/print-introspect.c (main): Ditto.
2474
2475         * tools/dbus-names-model.c (have_names_notify)
2476         (names_model_reload, names_model_set_connection)
2477         Use GTypes.
2478
2479         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2480         needed since Python bindings use GLib bindings.
2481
2482         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2483         Add --prefix argument.
2484
2485         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2486         unneeded --ignore-unsupported arg.
2487         
2488         * test/glib/test-service-glib.c: 
2489         * test/glib/test-service-glib.xml:
2490         * test/glib/test-dbus-glib.c: Add many more tests.
2491
2492 2005-06-06  David Zeuthen  <davidz@redhat.com>
2493
2494         * doc/TODO: Add item about need to remove deprecated functions.
2495
2496         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2497
2498         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2499         to repair the ABI which was broken with the last commit.
2500
2501 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2502
2503         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2504         (dbus_connection_disconnect): renamed to dbus_connection_close 
2505         for API symmetry with dbus_connection_open
2506         (_dbus_connection_open_internal): 
2507         s/dbus_connection_disconnect/dbus_connection_close
2508
2509         * dbus/dbus-bus.c (dbus_bus_get):
2510         s/dbus_connection_disconnect/dbus_connection_close
2511
2512         * bus/connection.c (bus_connections_unref, 
2513         bus_connections_setup_connection, bus_connections_expire_incomplete):
2514         s/dbus_connection_disconnect/dbus_connection_close
2515
2516         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2517         kill_client_connection_unchecked, check_hello_connection):
2518         s/dbus_connection_disconnect/dbus_connection_close
2519
2520         * bus/bus.c (new_connection_callback):
2521         s/dbus_connection_disconnect/dbus_connection_close
2522
2523         * tools/dbus-send.c (main):
2524         s/dbus_connection_disconnect/dbus_connection_close
2525
2526         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2527         s/dbus_connection_disconnect/dbus_connection_close
2528         
2529         * test/test-service.c (path_message_func, filter_func):
2530         s/dbus_connection_disconnect/dbus_connection_close
2531         
2532         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2533         
2534 2005-05-25  Colin Walters  <walters@verbum.org>
2535
2536         * dbus/dbus-protocol.h: Move various bus service #defines such
2537           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2538           dbus/dbus-shared.h.
2539         * dbus/dbus-shared.h: Various defines moved here.
2540         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2541
2542 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
2543
2544         * python/__init__.py: Python bindings deserve a minor version
2545         update.  Upped to (0, 40, 2)
2546
2547 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
2548
2549         * python/decorators.py: add explicitly_pass_message decorator
2550         for passing in the dbus message as keyword for edge case signal
2551         handling
2552
2553         * python/matchrules.py (SignalMatchRule.__repr__): fix output
2554         to conform with what dbus expects for match rules
2555         (SignalMatchRule.execute): add the dbus message as a keyword
2556         if the signal handler has requested it
2557
2558         * python/examples/example/signal-recipient.py: added some more
2559         examples on how to hook up to signals
2560
2561 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
2562
2563         * python/decorators.py: import dbus_bindings
2564
2565         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
2566         SignalMatchNode): new classes that implement wildcard signal
2567         callback matching using a tree lookup. Heavily modified from a
2568         patch sent by Celso Pinto (fd.o bug #3241)
2569
2570         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2571         use new match classes to handle signals.
2572
2573 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
2574         
2575         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2576
2577 2005-05-18  Havoc Pennington  <hp@redhat.com>
2578
2579         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2580         gettext. Not really worth requiring yet perhaps, but any
2581         production quality 1.0 would require it so we should go ahead and
2582         get things set up. We do have a couple token calls to
2583         bindtextdomain in the code already.
2584
2585 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
2586
2587         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2588         when using recursive g_main_loops
2589
2590         * python/_dbus.py (class Bus): add the ProxyObjectClass
2591         alias for ProxyObject to make it easier for the Twisted 
2592         networking framework to integrate dbus.
2593
2594         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2595         alias for ProxyMethod to make it easier for the Twisted 
2596         networking framework to integrate dbus. 
2597
2598 2005-05-11  Ross Burton  <ross@openedhand.com>
2599
2600         * glib/dbus-glib-tool.c: Add --prefix argument.
2601         * glib/dbus-binding-tool-glib.h: Add prefix argument.
2602         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2603         Add prefix argument.
2604         (generate_glue): Pass prefix argument down.
2605         (dbus_binding_tool_output_glib_server): Pass prefix to
2606         glib-genmarshal.
2607         
2608 2005-05-11  Colin Walters  <walters@verbum.org>
2609
2610         * tools/dbus-send.c (append_array): New function.
2611         (append_arg): Broken out from main.
2612         (main): Add cheesy hack to send arrays and variants.
2613         (usage): Update.
2614         * tools/dbus-print-message.c (print_iter): Broken out
2615         from main.
2616
2617 2005-05-11  Colin Walters  <walters@verbum.org>
2618
2619         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2620         New function, returns signature string for signature iter.
2621         * dbus/dbus-signature.h: Prototype it.
2622         * dbus/dbus-message.c (dbus_message_iter_get_signature):
2623         New function, returns signature string for message iter.
2624         (dbus_message_iter_get_array_len): New function, returns
2625         length of array.
2626         (dbus_message_iter_get_fixed_array): Fix assertion; this
2627         function should be used when the iter is pointing to the
2628         contents of an array
2629         * dbus/dbus-message.h: Prototypes.
2630         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2631         New function; returns length of an array.
2632         * dbus/dbus-marshal-recursive.h: Prototype it.
2633         
2634 2005-05-11  Colin Walters  <walters@verbum.org>
2635
2636         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2637         compilation error.
2638         
2639 2005-05-08  Havoc Pennington  <hp@redhat.com>
2640
2641         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2642         daemon's pid, not the parent's pid, to the file descriptor.
2643         Reported by Taj Morton.
2644
2645 2005-05-05  Havoc Pennington  <hp@redhat.com>
2646
2647         * configure.in (LT_*): add notes on how the libtool versioning
2648         works to save thinking. Increment soname to indicate protocol
2649         breakage (though really the library interface hasn't changed I
2650         guess)
2651
2652         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2653         verify the GUID received from server matches what we were
2654         expecting, if we had an expectation
2655
2656         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2657         (_dbus_auth_get_guid_from_server): new function
2658         (send_begin): parse the OK args
2659
2660         * doc/dbus-specification.xml: add GUID to the auth protocol
2661
2662 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
2663
2664         * Fix my name in previous changelog ;)
2665
2666         * python/proxies.py (ProxyObject.__getattr__): add further patch
2667         from Anthony Baxter to throw an AttributeError when python 
2668         __special__ functions are called instead of marshling them over 
2669         the bus (Bug#1685 comment 3).
2670
2671 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
2672
2673         * python/Makefile.am: changed to use pyexecdir for the binding
2674         shared libraries (Bug#2494)
2675
2676         * python/exceptions.py: bring exceptions over from the bindings
2677         so they can be used in applications (Bug#2036)
2678         Make all exceptions derive from DBusException
2679
2680         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2681         of classes so that print obj doesn't throw an exception (Bug #1685)
2682
2683 2005-05-03  Ross Burton  <ross@openedhand.com>
2684
2685         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2686         Return if we get an error during registration.  Set up a
2687         weak reference on object to unregister if object is destroyed.
2688         (unregister_gobject): New function.
2689         
2690 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
2691
2692         * python/dbus_bindings.pyx.in: 
2693         - added new type classes for hinting to the marashaler what type 
2694         to send over the wire
2695         - added int16 and uint16 marshalers
2696         - Fixed a bug in the type constants that caused int32 to go out
2697         as uint16 over the wire
2698         * python/dbus.py: split up into different files and renamed _dbus.py
2699         * python/__init__.py, python/_util.py, python/decorators.py, 
2700         python/exceptions.py, python/proxies.py, python/services.py,
2701         python/types.py: new files split off from dbus.py
2702         * python/Makefile.am: Add new files, remove dbus.py and 
2703         install all python files to <python module dir>/dbus
2704         * python/examples/*: Added #!/usr/bin/env python to the top of
2705         every example.  Patch provided by Tatavarty Kalyan
2706
2707 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2708
2709         * NEWS: Update to 0.33
2710
2711 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2712
2713         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2714         method for doing async calls
2715         (_pending_call_notification): New C function for handling pendning call
2716         callbacks
2717         (set_notify): New method for setting pending call notification
2718         
2719         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2720         Async capabilities added to remote method calls
2721         (Sender): class removed
2722         (RemoteService): class removed
2723         (ObjectTree): class removed for now
2724         (RemoteObject): Renamed to ProxyObject
2725         (RemoteMethod): Renamed to ProxyMethod
2726         (method): Decorator added for decorating python methods as dbus methods
2727         (signal): Decorator added for decorating python methods as signal emitters
2728         (ObjectType): Metaclass added for generating introspection data and the
2729         method callback vtable
2730         (Interface): Wrapper class added to wrap objects in a dbus interface
2731         (Object): Uses ObjectType as its metaclass and exports Introspect
2732         of the org.freedesktop.DBus.Introspectable interface
2733         (ValidationException, UnknownMethodException): new exceptions
2734
2735         * python/examples/*: Modified to fit with the new bindings
2736
2737 2005-04-23  Havoc Pennington  <hp@redhat.com>
2738
2739         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2740         reported by Tony Houghton
2741
2742         * test/test-service.c (main): test
2743         dbus_connection_get_object_path_data()
2744
2745         * dbus/dbus-object-tree.c (find_handler): be sure we always init
2746         the exact_match
2747         (_dbus_object_tree_get_user_data_unlocked): new function used by
2748         dbus_connection_get_object_path_data()
2749         (do_register): add assertion test for get_user_data_unlocked
2750         (object_tree_test_iteration): more tests
2751
2752         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2753         new function from Dan Reed to let you get the user data from 
2754         dbus_connection_register_object_path()
2755
2756 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
2757
2758         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2759         in numerous places that did not account for the NULL terminator
2760         (signature_from_seed): changed the manual string copy loop to 
2761         just use strcpy instead
2762         make check should now pass
2763
2764 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
2765
2766         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2767         so that it allows messages that are not signals to pass in 
2768         NULL as the interface.
2769
2770 2005-04-18  David Zeuthen  <davidz@redhat.com>
2771
2772         * glib/dbus-gmain.c (io_handler_destroy_source): 
2773         (timeout_handler_destroy_source, connection_setup_free): 
2774         Also unref the source to avoid memory leaks.
2775
2776 2005-04-13  David Zeuthen  <davidz@redhat.com>
2777
2778         * bus/config-parser.c (bus_config_parser_new): Bump this to a
2779         more reasonable, yet still totally arbitrary, value :-). 
2780
2781 2005-04-13  David Zeuthen  <davidz@redhat.com>
2782
2783         * doc/TODO: Added an "important for 1.0" item about selinux
2784         allow/deny messages
2785
2786 2005-04-13  David Zeuthen  <davidz@redhat.com>
2787
2788         * bus/selinux.c: Add c-file-style to top of file
2789         (log_audit_callback): Don't free the data here anymore
2790         (bus_selinux_check): Don't take spid and tpid since appending
2791         that to auxdata may OOM.
2792         (bus_selinux_allows_acquire_service): Handle OOM and signal back
2793         to the caller if we are OOM by taking an error object.
2794         (bus_selinux_allows_send): -do-
2795
2796         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
2797         and bus_selinux_allows_send
2798
2799         * bus/bus.c (bus_context_check_security_policy): Pass error and
2800         pass on OOM thrown by bus_selinux_allows_send()
2801
2802         * bus/services.c (bus_registry_acquire_service): Pass error and
2803         pass on OOM thrown by bus_selinux_allows_acquire_service()
2804
2805 2005-04-13  Havoc Pennington  <hp@redhat.com>
2806
2807         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
2808         message at a time to avoid monopolizing the main loop, bug 
2809         #2953 from Benjamin Otte
2810
2811 2005-04-09  Havoc Pennington  <hp@redhat.com>
2812
2813         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
2814         possible overlap, fix from Daniel Reed
2815         (fixup_alignment): fix signedness warnings
2816         (_dbus_string_append_unichar): ditto
2817
2818 2005-04-09  Havoc Pennington  <hp@redhat.com>
2819
2820         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
2821
2822         * glib/dbus-glib-tool.c (main): fix warning
2823
2824         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
2825
2826         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
2827         add a new function that can be used in simple applications that
2828         don't have a main loop and are willing to block
2829
2830 2005-04-05  David Zeuthen  <davidz@redhat.com>
2831
2832         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
2833
2834         * glib/dbus-gmain.c:
2835         (io_handler_destroy_source): Remove from list of IO handlers
2836         of the ConnectionSetup object
2837         (timeout_handler_destroy_source): -do- for timeout handlers
2838         (io_handler_source_finalized): Don't remove from list since
2839         we now do that in io_handler_destroy_source(). Renamed from
2840         io_handler_source_destroyed
2841         (timeout_handler_source_destroyed): -do- for timeout handlers
2842         (connection_setup_free): It is now safe to iterate over all
2843         IO and timeout handlers as the _destroy_source removes them
2844         from the list synchronously
2845
2846 2005-03-30  Havoc Pennington  <hp@redhat.com>
2847
2848         * configure.in: change check to gtk 2.4
2849
2850         * tools/dbus-viewer.c (name_combo_changed_callback): remove
2851         gtk_combo_box_get_active_text() usage to decrement GTK requirement
2852         to 2.4
2853
2854 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
2855
2856         * News: Update 0.32
2857
2858         * HACKING: Fixed realease instructions.  configure.in should be updated to
2859           the next release by the person who made the last release.
2860
2861 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
2862
2863         * python/lvalue_cast_post_process.py - removed.  Patch has been
2864           submitted to Pyrex maintainers that fixes gcc4.0 errors
2865
2866         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
2867
2868 2005-03-24  Daniel Reed  <n@ml.org>
2869
2870         * tools/Makefile.am: Make print-introspect and
2871         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
2872
2873 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
2874
2875         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
2876
2877         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
2878           had in Red Hat packages for a while but for some reason never 
2879           got merged upstream
2880           (_dbus_is_a_number): New checks if a string
2881           can be converted to a number and does the conversion if it can
2882           (_dbus_user_database_lookup): Add check to see if the given username
2883           is a udi.  This allows udi's to be used instead of usernames in the
2884           config file.
2885           (_dbus_user_database_lookup_group): Add check to see if the given groupname
2886           is a gdi.  This allows gdi's to be used instead of groupnames in the
2887           config file.
2888
2889 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
2890
2891         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
2892           code so that it compiles with gcc4.0
2893
2894         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
2895           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
2896           results back to dbus_binding.c
2897
2898 2005-03-20  Colin Walters  <walters@verbum.org>
2899
2900         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
2901
2902         * configure.in: Require GTK+ 2.6.
2903         
2904 2005-03-20  Colin Walters  <walters@verbum.org>
2905
2906         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
2907
2908 2005-03-17  Tom Parker  <palfrey@tevp.net>
2909
2910         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
2911         print DBUS_UID_UNSET; instead print passed username.  Also
2912         be sure to actually use gid looked up in cache.
2913         
2914         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
2915         for DBUS_GID_UNSET and groupname.
2916
2917 2005-03-17  Colin Walters  <walters@verbum.org>
2918
2919         * bus/print-introspect.c: Move to tools/.
2920         * bus/run-with-tmp-session-bus.sh: Ditto.
2921         
2922         * glib/Makefile.am (dbus-glib-bindings.h): Move
2923         generation to tools/Makefile.am.
2924
2925         * test/glib/run-test.sh: Update to handle move
2926         of run-with-tmp-session-bus.sh.
2927
2928         * test/glib/test-service-glib.c: Update to handle
2929         move of dbus-glib-bindings.h.
2930
2931         * tools/print-introspect.c: Moved here
2932         from bus/, and ported to GLib bindings.
2933
2934         * tools/run-with-tmp-session-bus.sh: Moved here
2935         from bus/.
2936
2937         * tools/Makefile.am: Generate dbus-glib-bindings.h
2938         and dbus-bus-introspect.xml here.
2939
2940         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
2941         Update.
2942
2943 2005-03-17  Colin Walters  <walters@verbum.org>
2944
2945         * bus/driver.c (write_args_for_direction): Use
2946         _dbus_string_get_const_data to retrieve string;
2947         _dbus_string_get_const_data_len doesn't actually return
2948         a NULL-terminated substring.
2949
2950         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
2951         (main): Change to use org_freedesktop_DBus_request_name
2952         instead of using g_proxy_begin_call/end_call.
2953
2954 2005-03-15  Joe Shaw  <joeshaw@novell.com>
2955
2956         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
2957         generating the finalizer.  Fixes from Ben Maurer.
2958
2959 2005-03-12  Joe Shaw  <joeshaw@novell.com>
2960
2961         * mono/BusDriver.cs: Update method names: ListServices
2962         becomes ListNames; GetOwner becomes GetNameOwner.
2963
2964         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
2965         onto the eval stack when removing the delegate.
2966
2967 2005-03-12  Joe Shaw  <joeshaw@novell.com>
2968
2969         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
2970         LT_CURRENT.  Set it to the autoconf variable.
2971                                                                                 
2972         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
2973         classes that disconnects the signal handler delegate from the
2974         service object.  Fixes a big leak of proxy objects on the
2975         client side of things.  Patch from Ben Maurer
2976         <bmaurer@ximian.com>
2977
2978 2005-03-12  Colin Walters  <walters@verbum.org>
2979
2980         * bus/driver.c (write_args_for_direction): New function,
2981         parses a type signature into arguments and outputs to
2982         XML.
2983         (bus_driver_handle_introspect): Use it instead of
2984         hardcoding XML for certain signatures.
2985         
2986         * bus/Makefile.am (dbus-bus-introspect.xml): Add
2987         dependency on dbus-daemon.
2988
2989         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
2990         argument, pass it to dbus_binding_tool_output_glib_client.
2991
2992         * glib/dbus-binding-tool-glib.c
2993         (generate_client_glue): Protect against multiple inclusion.
2994         (dbus_binding_tool_output_glib_client): Add
2995         G_BEGIN_DECLS/G_END_DECLS.
2996
2997         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
2998         Change to just take iface prefix directly.
2999         (write_formal_parameters): Clarify error message.
3000         (check_supported_parameters): New function; checks to see type
3001         signatures of method parameters are supported.
3002         (generate_client_glue): Handle ignore_unsupported flag.
3003         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3004         parameter.
3005
3006         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3007         --ignore-unsupported by default until glib bindings
3008         support arrays.
3009
3010 2005-03-11  Colin Walters  <walters@verbum.org>
3011
3012         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3013         install it.
3014
3015         * bus/print-introspect.c: New file; prints introspection
3016         data for a given name and object path.
3017
3018         * bus/run-with-tmp-session-bus.sh: New file, refactored
3019         from test/glib/run-test.sh.  Creates a temporary session
3020         bus and runs another program.
3021
3022         * test/glib/run-test.sh: Refactor to invoke
3023         run-with-tmp-session-bus.sh.
3024
3025         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3026         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3027         macros instead of hardcoding.
3028
3029         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3030
3031 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3032
3033         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3034         this unref; it doesn't match up evenly in some codepaths.
3035         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3036         this evenly matches with the ref near the top of this function.
3037
3038 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3039
3040         * dbus/dbus-object-tree.c
3041         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3042         and we try to unregister a path that's not registered, still go
3043         through the process of unlocking and don't just return.
3044
3045 2005-03-09  Colin Walters  <walters@verbum.org>
3046
3047         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3048         to this are generated for client-side wrappers.  Invokes a
3049         D-BUS method and returns reply values.  
3050
3051         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3052         function; writes signature string for argument direction.
3053         (write_args_for_direction): Change to pass input values directly
3054         instead of via address, and fix indentation.
3055         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3056         make generated wrappers inlineable.
3057
3058         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3059         note about using dbus_type_is_fixed.
3060
3061         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3062         dbus/dbus-signature.c as dbus_type_is_fixed.
3063
3064         All callers updated.
3065
3066         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3067         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3068
3069         * dbus/dbus-signature.h: Prototype.
3070
3071         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3072         error printf code.
3073
3074         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3075         appropriate instead of just freeing it.
3076         (main): Free returned strings using g_free.
3077
3078         * test/glib/Makefile.am (test-service-glib-glue.h)
3079         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3080
3081         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3082         simply maps a simple D-BUS type to GType.
3083         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3084         GType.
3085         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3086         initialize the value with it.
3087         (dbus_gvalue_binding_type_from_type): Unused, delete.
3088         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3089         various types instead of unmarshalling to value data directly.
3090         Remove can_convert boolean.
3091         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3092         returning directly instead of using can_convert boolean.
3093         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3094         Stores a GValue in a pointer to a value of its corresponding C
3095         type.
3096
3097         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3098         add dbus_gvalue_store.
3099
3100 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3101
3102         Fix a bunch of lifecycle and memory management problems
3103         in the mono bindings.
3104
3105         * mono/Arguments.cs (Arguments): Implement IDisposable
3106
3107         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3108         strictly a static class.
3109
3110         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3111         delegates into this file.
3112         (Connection): Implement IDisposable.
3113         (Dispose): Disconnect the connection and set the raw connection
3114         pointer to IntPtr.Zero.
3115         (~Connection): Call Dispose().
3116         (RegisterObjectPath): Added.  Manages the registration of object
3117         paths so we can cleanly disconnect them at dispose/finalize time.
3118         (UnregisterObjectPath): Ditto.
3119         (set_RawConnection): Unregister all of the object paths when
3120         changing the underlying DBusConnection.  Add them back onto the
3121         new connection, if any.
3122
3123         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3124         more unmanaged resources anymore, so it's not necessary.  Move all
3125         the DBusObjectPathVTable stuff out of here.
3126         (Handler): Save references to our delegates so that they don't get
3127         finalized.  Call Connection.RegisterObjectPath() instead of
3128         dbus_connection_register_object_path() directly.
3129         (Message_Called): Dispose the message after we're finished with
3130         it.
3131
3132         * mono/Message.cs (Message): Implement IDisposable.
3133         (Dispose): Dispose the Arguments, and set the RawMessage to
3134         IntPtr.Zero.
3135         (SendWithReplyAndBlock): We own the ref to the reply that comes
3136         back from dbus_connection_send_with_reply_and_block() so add a
3137         comment about that and unref it after we've constructed a managed
3138         MethodReturn class around it.  Fixes a big, big leak.
3139
3140         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3141         method.
3142         (BuildSignalHandler): After we've sent the Signal message, dispose
3143         of it.
3144         (BuildMethod): Dispose of the method call and reply messages after
3145         we've sent the message and extracted the data we want from the
3146         reply.
3147
3148         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3149         anymore.
3150         (Service_FilterCalled): Dispose of the message after we're
3151         finished with it.
3152
3153 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3154
3155         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3156         After we attach our pending call to the connection, unref
3157         it.  Fixes a leak.
3158  
3159         * mono/Connection.cs (set_RawConnection): Disconnect our
3160         filter and match callbacks from the old connection and
3161         reconnect them to the new connection, if any.
3162
3163         * mono/DBusType/Array.cs: "Code" is a static member, so
3164         don't use "this" to refer to it.  Fix for stricter checking
3165         in Mono 1.1.4.
3166  
3167         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3168         object path that we pass into unmanaged code.
3169  
3170         * mono/DBusType/String.cs (Append): Don't leak the string
3171         that we pass into unmanged code.
3172
3173 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3174         * NEWS: Update for 0.31
3175
3176         * configure.in: Release 0.31
3177         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3178
3179         * qt/Makefile.am: fixed build
3180
3181         * dbus/Makefile.am: soname bump for libdbus
3182
3183         * glib/Makefile.am: soname bump for libdbus-glib
3184
3185 2005-03-05  Havoc Pennington  <hp@redhat.com>
3186
3187         * dbus/dbus-sysdeps.c:
3188         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3189         value
3190         (_dbus_generate_random_bytes_buffer): fix return value
3191
3192         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3193         checks actually work, from Tom Parker <fdo@tevp.net>
3194
3195 2005-03-01  Colin Walters  <walters@verbum.org>
3196
3197         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3198         functions copied from dbus-glib-tool.c.
3199         (main): Convert lots of error code to use them.
3200         Also add some testing for introspection bits.
3201
3202 2005-03-01  Colin Walters  <walters@verbum.org>
3203         
3204         * doc/TODO: Remove introspection signature TODO.
3205
3206 2005-02-27  Colin Walters  <walters@verbum.org>
3207
3208         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3209         Change return value to const char * instead of int so we can do
3210         full signatures.
3211         (struct PropertyInfo, struct ArgInfo): Store char *.
3212         (property_info_new, arg_info_new): Update parameters, strdup.
3213         (property_info_unref, arg_info_unref): Free.
3214
3215         * glib/dbus-gidl.h: Update prototypes.
3216
3217         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3218         (validate_signature): New function, just validates signature and
3219         sets GError.
3220         (parse_property, parse_arg): Invoke validate_signature.  Store
3221         signature instead of just type code.
3222
3223         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3224         function to return a primary type for a signature, dropping
3225         information about types in container types.
3226         (dbus_gvalue_genmarshal_name_from_type)
3227         (dbus_gvalue_binding_type_from_type)
3228         (dbus_gvalue_ctype_from_type): Update to take full signature
3229          instead of type code.
3230         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3231
3232         * glib/dbus-gvalue.h: Update prototypes for above.
3233
3234         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3235         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3236         (introspect_properties, introspect_signals, write_interface):
3237         Update to handle signatures, and remove usage of
3238         _dbus_gutils_type_to_string.
3239         (handle_introspect): Print out type codes instead of e.g. "string"
3240         in hardcoded introspection XML; also use x_AS_STRING constants
3241         instead of hardcoding in string.
3242
3243         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3244         to string.  Remove usage of _dbus_gutils_type_to_string.
3245
3246         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3247
3248         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3249         deletion.
3250         
3251         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3252         (compute_marshaller_name, generate_glue): Handle signature change
3253         to string.
3254         (write_formal_parameters, write_args_for_direction): Ditto, and
3255         remove FIXME.
3256
3257         * tools/dbus-tree-view.c (type_to_string): Delete.
3258         (info_set_func_text): Update to print full signatures.
3259
3260         * test/glib/test-service-glib.xml: Change types to new
3261         introspection format.
3262
3263 2005-02-26  Havoc Pennington  <hp@redhat.com>
3264
3265         * doc/TODO: remove the "guid" item
3266
3267         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3268         (with_bus_thread_func): use open_private
3269
3270         * dbus/dbus-connection.c (dbus_connection_open_private): new
3271         function that works like the old dbus_connection_open()
3272         (dbus_connection_open): now returns an existing connection if
3273         possible
3274
3275         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3276         through the GUID to the transport
3277
3278         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3279         GUID in hex-encoded form.
3280
3281         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3282         pass GUID argument in to the transport
3283
3284         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3285         guid argument
3286
3287         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3288
3289         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3290
3291 2005-02-25  Havoc Pennington  <hp@redhat.com>
3292
3293         * doc/dbus-specification.xml: document the GUID thing
3294
3295         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3296         globally unique ID for the server, and put a "guid=hexencoded"
3297         field in the address
3298
3299         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3300
3301         * dbus/dbus-message.c: ditto
3302
3303         * dbus/dbus-dataslot.c: ditto
3304
3305         * dbus/dbus-list.c: ditto
3306
3307         * dbus/dbus-internals.h: wait, just include
3308         dbus-threads-internal.h here
3309         
3310         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3311         use in main library
3312
3313         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3314
3315 2005-02-24  Colin Walters  <walters@verbum.org>
3316
3317         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3318
3319 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3320
3321         * glib/Makefile.am: added dbus-gobject.h to sources list
3322         so distcheck doesn't fail
3323         
3324 2005-02-24  Havoc Pennington  <hp@redhat.com>
3325
3326         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3327         you must disconnect before unref, since locking and other things
3328         are screwed up otherwise. Fix assorted other locking stuff.
3329
3330         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3331         fix compilation
3332
3333         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3334         into a private header and don't export from the library
3335
3336         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3337
3338 2005-02-24  Colin Walters  <walters@verbum.org>
3339         
3340         * dbus/dbus-signature.c: New file; implements various functions
3341         related to type signatures.  Includes an interator for parsing,
3342         validation functions.
3343         (dbus_type_is_basic): Moved here from
3344         dbus-marshal-basic.c:_dbus_type_is_basic.
3345         (dbus_type_is_container): Moved here from
3346         dbus-marshal-basic.c:_dbus_type_is_container.
3347
3348         All callers of _dbus_type_is_container and _dbus_type_is_basic
3349         updated, and include dbus-signature.h.
3350
3351         * dbus/dbus-signature.h: New file; prototypes for the above.
3352
3353         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3354         dbus-signature.h.
3355
3356         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3357         function factored out of _dbus_first_type_in_signature.
3358         (_dbus_first_type_in_signature_c_str): New function; returns first
3359         type code for a type signature character.
3360
3361         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3362         handle function moves.
3363
3364         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3365
3366         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3367         function; skips to next complete type in type signature.
3368         Implemented using previous skip_one_complete_type.  Now
3369         skip_one_complete_type just delegates to
3370         _dbus_type_signature_next.
3371
3372         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3373         to dbus-signature.c
3374         (_dbus_type_is_container): Ditto.
3375
3376         * doc/dbus-specification.xml: Update introspection sample to
3377         use real type signatures.
3378
3379         * dbus/dbus-test.h: Prototype signature test.
3380
3381         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3382         signature tests.
3383
3384         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3385
3386 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3387
3388         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3389         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3390
3391 2005-02-21  Colin Walters  <walters@verbum.org>
3392
3393         * dbus/dbus-test-main.c (main): Take optional specific test
3394         argument.
3395
3396         * dbus/dbus-test.c (run_test): New function, runs a test function
3397         with no data directory.
3398         (run_data_test): Like above, but takes data directory.
3399         (dbus_internal_do_not_use_run_tests): Take
3400         specific test argument.  Replace lots of cut n' paste code
3401         with run_test and run_data_test.
3402
3403         * dbus/dbus-test.h: Update prototype for
3404         dbus_internal_do_not_use_run_tests.
3405
3406 2005-02-20  Havoc Pennington  <hp@redhat.com>
3407
3408         Fix bugs reported by Daniel P. Berrange
3409         
3410         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3411         (protected_change_watch): new function
3412         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3413         (_dbus_server_add_watch): change to work like the
3414         dbus-connection.c equivalents; like those, probably kind of
3415         busted, but should at least mostly work for now
3416         (dbus_server_disconnect): drop the lock if we were already
3417         disconnected, patch from Daniel P. Berrange
3418
3419         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3420         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3421         same stuff
3422
3423         * doc/TODO: todo about unscrewing this mess
3424
3425 2005-02-19  Colin Walters  <walters@verbum.org>
3426
3427         * glib/dbus-binding-tool-glib.c
3428         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3429
3430         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3431         as errno.h and sys/stat.h.
3432         (lose): New function, prints error with
3433         newline and exits.
3434         (lose_gerror): Similar, but takes GError for message.
3435         (main): Add --output argument to specify output file to write to,
3436         instead of always printing to stdout.  In this mode, determine
3437         timestamps on source files to see whether any are newer than the
3438         target file.  If not, exit.  Also convert a number of error
3439         messages to use lose (since it's shorter), and switch to using
3440         g_io_channel_shutdown.
3441
3442 2005-02-19  Havoc Pennington  <hp@redhat.com>
3443
3444         * glib/dbus-gobject.c
3445         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3446
3447         * glib/dbus-glib.c: fix doxygen warnings
3448
3449         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3450         is found on an <arg>
3451
3452 2005-02-17  Colin Walters  <walters@verbum.org>
3453
3454         * glib/dbus-gobject.h: Don't export
3455         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3456         
3457         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3458         (invoke_object_method): Handle it.
3459
3460         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3461         Handle rename.
3462         
3463 2005-02-17  Colin Walters  <walters@verbum.org>
3464
3465         * bus/.cvsignore, doc/.cvsignore
3466         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3467         Update.
3468
3469 2005-02-17  Colin Walters  <walters@verbum.org>
3470         
3471         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3472         Rename to DBUS_SERVICE_DBUS.
3473         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3474         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3475         Change the value from "org.freedesktop.Local"
3476         to "org.freedesktop.DBus.Local".
3477         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3478         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3479         DBUS_INTERFACE_INTROSPECTABLE.
3480         Change the value from "org.freedesktop.Introspectable"
3481         to "org.freedesktop.DBus.Introspectable".
3482         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3483         DBUS_INTERFACE_PROPERTIES.
3484         Change the value from "org.freedesktop.Properties"
3485         to "org.freedesktop.DBus.Properties".
3486         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3487         DBUS_INTERFACE_PEER.
3488         Change the value from "org.freedesktop.Peer"
3489         to "org.freedesktop.DBus.Peer".
3490         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3491         DBUS_INTERFACE_LOCAL.
3492         Change the value from "org.freedesktop.Local"
3493         to "org.freedesktop.DBus.Local".
3494
3495         All other users of those constants have been changed.
3496
3497         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3498
3499         * glib/dbus-gobject.c (handle_introspect): Use constants.
3500
3501         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3502
3503 2005-02-17  Colin Walters  <walters@verbum.org>
3504
3505         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3506         (parse_node, parse_interface, parse_method, parse_signal)
3507         (parse_property, parse_annotation): Lose if we're currently in an
3508         annotation.
3509         (parse_annotation): New function.
3510         (parser_start_element, parser_end_element): Handle annotation.
3511         (parse_method, parse_interface): Remove support for c_name attribute,
3512         switch to annotations.
3513
3514         * glib/dbus-gidl.h (interface_info_get_binding_names)
3515         (method_info_get_binding_names)
3516         (interface_info_get_binding_name, method_info_get_binding_name)
3517         (interface_info_set_binding_name, method_info_set_binding_name):
3518         Remove.
3519         (interface_info_get_annotations, method_info_get_annotations)
3520         (interface_info_get_annotation, method_info_get_annotation)
3521         (interface_info_add_annotation, method_info_add_annotation):
3522         Prototype.
3523
3524         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3525         for "bindings".
3526         (struct MethodInfo): Ditto.
3527         Straightfoward conversion of binding methods into annotation methods
3528         as prototyped.
3529
3530         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3531
3532         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3533
3534         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3535         Use new annotation API.
3536
3537         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3538         annotation element.
3539         
3540         * doc/dbus-specification.xml: Discuss introspection annotations,
3541         include list of well-known annotations.
3542
3543         * test/glib/test-service-glib.xml: Make validate against new DTD.
3544
3545 2005-02-17  Colin Walters  <walters@verbum.org>
3546
3547         This patch is based on initial work from
3548         Paul Kuliniewicz <kuliniew@purdue.edu>.
3549
3550         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3551         initialization of GValue from dbus type to here.
3552         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3553         for the "glib-genmarshal" program from a DBus type.
3554         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3555         into the C name for it we use in the glib bindings.
3556         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3557         glib C type (not GValue).
3558         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3559
3560         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3561         from dbus-gobject.c.
3562
3563         * glib/dbus-gutils.h: Prototype it.
3564
3565         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3566         (marshal_dbus_message_to_g_marshaller): Use new shared function
3567         dbus_glib_marshal_dbus_message_to_gvalue_array.
3568
3569         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3570         Will be changed once we have annotations.
3571
3572         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3573         GStaticRWLock.  Callers updated.
3574         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
3575         (string_table_next): New function for iterating over zero-terminated
3576         string value array.
3577         (string_table_lookup): New function; retrieves specific entry in
3578         array.
3579         (get_method_data): New function; look up method data in object data chunk.
3580         (object_error_domain_prefix_from_object_info)
3581         (object_error_code_from_object_info): New functions, but not implemented yet.
3582         (method_interface_from_object_info): New function; retrieve interface name.
3583         (method_name_from_object_info): New function; retrieve method name.
3584         (method_arg_info_from_object_info): New function; retrieve argument data.
3585         (arg_iterate): New function; iterates over serialized argument data.
3586         (method_dir_signature_from_object_info): New function; returns a
3587         GString holding type signature for arguments for just one
3588         direction (input or output).
3589         (method_input_signature_from_object_info)
3590         (method_output_signature_from_object_info): New functions.
3591         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3592         converts dbus message arguments into a GValue array.  Used for both
3593         signal handling and method invocation.
3594         (struct DBusGlibWriteIterfaceData): New utility structure.
3595         (write_interface): New function; generate introspection XML for
3596         an interface.
3597         (introspect_interfaces): New function; gathers all interface->methods,
3598         generates introspection XML for them.
3599         (handle_introspect): Invoke introspect_interfaces.
3600         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3601         (lookup_object_and_method): New function; examines an incoming message
3602         and attempts to match it up (via interface, method name, and argument
3603         signature) with a known object and method.
3604         (gerror_domaincode_to_dbus_error_name): New function; converts a
3605         GError domain and code into a DBus error name.  Needs GError data
3606         added to object introspection to work well.
3607         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3608         GError.
3609         (invoke_object_method): New function to invoke an object method
3610         looked up via lookup_object_and_method.  Parses the incoming
3611         message, turns it into a GValue array, then invokes the marshaller
3612         specified in the DBusGMethodInfo.  Creates a new message with
3613         either return values or error message as appropriate.
3614         (gobject_message_function): Invoke lookup_object_and_method and
3615         invoke_object_method.
3616
3617         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3618         (enum DBusBindingOutputMode): New enum for binding output modes.
3619         (pretty_print): Print binding names.
3620         (dbus_binding_tool_error_quark): GError bits.
3621         (version): Fix typo.
3622         (main): Create GIOChannel for output.  Parse new --mode argument,
3623         possible values are "pretty-print", "glib-server", "glib-client".
3624         Use mode to invoke appropriate function.
3625         
3626         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3627
3628         * glib/dbus-glib-tool.h: New header, just includes GError bits
3629         for now.
3630
3631         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3632         maps binding style to name.
3633         (struct MethodInfo): Ditto.
3634         (get_hash_keys, get_hash_key): Utility function, returns keys for
3635         a GHashTable.
3636         (interface_info_new, method_info_new): Initialize bindings.
3637         (interface_info_unref, method_info_unref): Destroy bindings.
3638         (method_info_get_binding_names, method_info_get_binding_name)
3639         (interface_info_get_binding_names, interface_info_get_binding_name):
3640         Functions for retrieving binding names.
3641         (method_info_set_binding_name, interface_info_set_binding_name):
3642         Functions for setting binding names.
3643
3644         * glib/dbus-binding-tool-glib.h: New file, has prototypes
3645         for glib binding generation.
3646
3647         * glib/dbus-binding-tool-glib.c: New file, implements server-side
3648         and client-side glib glue generation.
3649
3650         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3651         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3652         dbus-glib-tool.h.
3653
3654         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3655         of using GClosureMarshal directly.
3656         (struct DBusGObjectInfo): Add n_infos member.
3657
3658         * test/glib/test-service-glib.xml: New file; contains introspection data
3659         for MyTestObject used in test-service-glib.c.
3660
3661         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3662         (my_object_do_nothing, my_object_increment, my_object_throw_error)
3663         (my_object_uppercase, my_object_many_args): New test methods.
3664         (main): Use dbus_g_object_class_install_info to include generated object
3665         info.
3666
3667         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3668         as well as client-side bindings.
3669
3670         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3671         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3672         using both the dbus_gproxy stuff directly as well as the generated bindings.
3673
3674 2005-02-15  Havoc Pennington  <hp@redhat.com>
3675
3676         * dbus/dbus-connection.c (dbus_connection_dispatch): always
3677         complete a pending call, don't run filters first.
3678
3679         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3680         dbus_pending_call_steal_reply
3681
3682         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3683         _dbus_connection_block_pending_call
3684         (dbus_pending_call_get_reply): change to steal_reply and return a
3685         ref
3686
3687         * dbus/dbus-connection.c
3688         (dbus_connection_send_with_reply_and_block): port to work in terms
3689         of DBusPendingCall
3690         (_dbus_connection_block_pending_call): replace block_for_reply
3691         with this
3692
3693 2005-02-14  Havoc Pennington  <hp@redhat.com>
3694
3695         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3696         properly handle looking up group information by name; fix 
3697         from j@bootlab.org
3698
3699 2005-02-13  Havoc Pennington  <hp@redhat.com>
3700
3701         * dbus/dbus-connection.c (dbus_connection_return_message) 
3702         (dbus_connection_borrow_message): hold dispatch lock while message
3703         is outstanding
3704         (_dbus_connection_block_for_reply): hold dispatch lock while we
3705         block for the reply, so nobody steals our reply
3706         (dbus_connection_pop_message): hold the dispatch lock while we
3707         pluck the message
3708
3709 2005-02-13  Havoc Pennington  <hp@redhat.com>
3710
3711         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3712         (_dbus_connection_release_dispatch)
3713         (_dbus_connection_acquire_io_path)
3714         (_dbus_connection_release_io_path): make the mutex and condvar
3715         control access to the "acquired" flag. Drop the connection lock
3716         while waiting on the condvar. Hopefully these are baby steps in
3717         roughly the right direction.
3718
3719 2005-02-13  Havoc Pennington  <hp@redhat.com>
3720
3721         * dbus/dbus-connection.c: use separate mutexes for the condition
3722         variables; this is some kind of baseline for sanity, but the
3723         condition variables still aren't used correctly afaict
3724
3725 2005-02-13  Havoc Pennington  <hp@redhat.com>
3726
3727         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3728         fix a double-unlock
3729
3730         * dbus/dbus-connection.c
3731         (_dbus_connection_detach_pending_call_unlocked): add this
3732
3733         Initial semi-correct pass through to fix thread locking; there are
3734         still some issues with the condition variable paths I'm pretty
3735         sure
3736         
3737         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3738         lock/unlock calls
3739
3740         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3741         rename to add _unlocked
3742         (struct DBusConnection): move "dispatch_acquired" and
3743         "io_path_acquired" to use only one bit each.
3744         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3745         (dbus_connection_set_watch_functions): hacky fix to reentrancy
3746         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
3747         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
3748         (_dbus_connection_remove_timeout) 
3749         (_dbus_connection_toggle_timeout): drop lock when calling out to
3750         user functions; done in a hacky/bad way.
3751         (_dbus_connection_send_and_unlock): add a missing unlock
3752         (_dbus_connection_block_for_reply): add a missing unlock
3753
3754         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3755         drop lock in a hacky probably unsafe way to call out to user
3756         function
3757
3758 2005-02-12  Havoc Pennington  <hp@redhat.com>
3759
3760         * tools/dbus-tree-view.c (info_set_func_text): display more
3761         details on args
3762
3763         * bus/driver.c (bus_driver_handle_list_services): list the bus
3764         driver
3765
3766         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3767
3768         * glib/dbus-gidl.c (signal_info_get_n_args): new function
3769         (method_info_get_n_args): new function
3770
3771 2005-02-12  Havoc Pennington  <hp@redhat.com>
3772
3773         * bus/driver.c (bus_driver_handle_introspect): add introspection
3774         for bus driver
3775
3776 2005-02-12  Havoc Pennington  <hp@redhat.com>
3777
3778         * bus/driver.c: put the signature of each bus driver method in the
3779         table of handlers and check it on incoming calls; this isn't
3780         really useful, but going to add introspect support in a minute.
3781
3782 2005-02-11  Joe Shaw  <joeshaw@novell.com>
3783
3784         * mono/Connection.cs: The unpredictability of finalizers in mono
3785         prevents us from deterministically disconnecting the filters from
3786         the Service class's finalizer, so move tracking of filters and
3787         matches here.  Add API for that.
3788
3789         * mono/Service.cs: Remove the code, add code which calls the
3790         methods now on the Connection class.
3791
3792 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
3793
3794         * python/dbus.py (class Sender): added to support dbus signals better
3795         (Bus::add_signal_receiver): added expand_args parameter which defaults
3796         to True.  When expand args is True the signal handler will pass the 
3797         message arguments as parameters to the signal handler.  If False
3798         revert to previous behavior where the signal handler must get the
3799         argument list from the message.  This is to help port applications
3800         like HAL that have a tendancy to send variable length argument lists.
3801         self._match_rule_to_receivers is now a dict of dicts.
3802         (Bus::remove_signal_receiver): pop handler off the dict intead of 
3803         removing it from a list
3804         (Bus::_signal_func): change signal handlers so that interface,
3805         signal_name, service, path and message are packed into a Sender
3806         object and that is passed to the handler.  If expand_args is True
3807         extract the args list from the message and append it to the parameter
3808         list
3809         
3810         * python/dbus_bindings.pyx.in (class Signature): added to support 
3811         signiature types
3812         (MessageIter::__init__): changed iteration limit to match D-BUS
3813         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
3814         STRUCT and VARIENT type support
3815         (MessageIter::python_value_to_dbus_sig): made recursive to support
3816         recursive types
3817         (MessageIter::append*): added Signature, dict, tuple 
3818         support
3819
3820         * python/examples/example-client.py: added examples of getting tuples
3821         and dicts
3822
3823         * python/examples/example-service.py: added examples of sending tuples
3824         and dicts
3825
3826         * python/examples/example-signal-recipient.py: Fixed to handle new
3827         signal callback format
3828
3829 2005-02-10  Havoc Pennington  <hp@redhat.com>
3830
3831         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
3832         (call dbus_g_proxy_add_signal)
3833
3834         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3835         escape the hostname
3836         (_dbus_server_new_for_domain_socket): escape the path
3837
3838         * dbus/dbus-address.c (dbus_address_escape_value): new
3839         (dbus_address_unescape_value): new
3840         (dbus_parse_address): unescape values
3841
3842         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
3843
3844         * doc/dbus-specification.xml: explain how to escape values in
3845         addresses
3846
3847 2005-02-10  Havoc Pennington  <hp@redhat.com>
3848
3849         * dbus/dbus-message-factory.c (generate_special): modify test to
3850         avoid using a non-basic dict key
3851
3852         * dbus/dbus-marshal-validate-util.c: add test for the below
3853
3854         * doc/dbus-specification.xml: require that dict keys are a basic
3855         type
3856
3857         * dbus/dbus-marshal-validate.c
3858         (_dbus_validate_signature_with_reason): require that dict key is a
3859         basic type
3860
3861 2005-02-10  Havoc Pennington  <hp@redhat.com>
3862
3863         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3864         change to be _and_unlock instead of _unlocked
3865
3866         * dbus/dbus-connection.c
3867         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
3868         have no_update so we can find this bug quickly in future
3869
3870 2005-02-10  Havoc Pennington  <hp@redhat.com>
3871
3872         * dbus/dbus-message-util.c (verify_test_message): tests for string
3873         array
3874
3875         * dbus/dbus-message.c (dbus_message_append_args_valist): add
3876         support for arrays of string/signature/path
3877
3878 2005-02-10  Joe Shaw  <joeshaw@novell.com>
3879
3880         * dbus/dbus-connection.c
3881         (_dbus_connection_queue_received_message_link,
3882         _dbus_connection_message_sent): Add the path to
3883         the verbose output.
3884         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
3885         _dbus_connection_send_preallocated_unlocked(), updated the
3886         dispatch status, and unlocks.  Fixes a bug where certain
3887         situations (like a broken pipe) could cause a Disconnect message
3888         to not be sent, tricking the bus into thinking a service was still
3889         there when the process had quit.
3890         (_dbus_connection_send_preallocated): Call
3891         _dbus_connection_send_preallocated_and_unlock().
3892         (_dbus_connection_send_and_unlock): Added.  Calls
3893         _dbus_connection_send_preallocated_and_unlock().
3894         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
3895         (dbus_connection_send_with_reply): Update the dispatch status and
3896         unlock.
3897
3898         * mono/Service.cs (~Service): Added.  Removes the filter so that
3899         we don't get unmanaged code calling back into a GCed delegate.
3900         (RemoveFilter); Added.
3901
3902 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
3903
3904         * dbus/dbus-message.c (dbus_message_iter_open_container):
3905         - Removed check for iterator type being an array because
3906         get_arg_type does not work with writer iterators
3907         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
3908
3909 2005-02-07  Havoc Pennington  <hp@redhat.com>
3910
3911         * doc/dbus-specification.xml: some more language cleanups; add
3912         stuff about how to deal with invalid protocol and extension
3913         points; add _ to allowed chars in auth commands; add EXTENSION_
3914         auth command prefix
3915
3916 2005-02-06  Havoc Pennington  <hp@redhat.com>
3917
3918         * s/expected/required/ in a couple places for clarity
3919
3920 2005-02-07  Colin Walters  <walters@verbum.org>
3921
3922         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
3923         sender or proposed_recipient.
3924
3925 2005-02-06  Havoc Pennington  <hp@redhat.com>
3926
3927         * dbus/dbus-message-factory.c (generate_special): more tests
3928
3929         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
3930         array length that exceeds the maximum
3931
3932 2005-02-05  Havoc Pennington  <hp@redhat.com>
3933
3934         * dbus/dbus-message-factory.c (generate_special): more test cases,
3935         increasing coverage
3936
3937         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
3938         reason why a signature was invalid
3939
3940         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
3941         skip the length of the string before we look at it in validation
3942
3943         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
3944         equal_substring
3945
3946         * dbus/dbus-message.c (_dbus_message_loader_new): default
3947         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
3948
3949 2005-02-05  Havoc Pennington  <hp@redhat.com>
3950
3951         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
3952         if the signature of a variant was empty
3953         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
3954         struct with no element type)
3955
3956         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
3957         mangled messages to break things
3958
3959 2005-02-04  Havoc Pennington  <hp@redhat.com>
3960
3961         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
3962         g_quark_try_string() so it actually can return 0
3963         (dbus_g_proxy_connect_signal): ditto
3964
3965 2005-02-04  Havoc Pennington  <hp@redhat.com>
3966
3967         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
3968         bogus warning
3969         (tristring_from_message): assert cleanly on null path/interface
3970         (should not be possible though I decided later)
3971         (dbus_g_proxy_dispose): move proxy manager unregistration here
3972         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
3973         g_return_if_fail() checks
3974
3975 2005-02-04  Havoc Pennington  <hp@redhat.com>
3976
3977         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
3978
3979         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
3980         (with some minor changes)
3981
3982         * doc/dbus-specification.xml: add deprecated attribute to
3983         introspection format
3984
3985 2005-01-31  Havoc Pennington  <hp@redhat.com>
3986
3987         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
3988         think it's sort of right
3989
3990 2005-01-30  Havoc Pennington  <hp@redhat.com>
3991
3992         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
3993
3994 2005-01-30  Havoc Pennington  <hp@redhat.com>
3995
3996         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
3997
3998         * autogen.sh: change to autotools 1.9
3999
4000         * glib/dbus-gproxy.c: completely change how signals work
4001         (dbus_g_proxy_add_signal): new function to specify signature of a
4002         signal
4003         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4004         and g_warning if the incoming message has the wrong signature.
4005
4006 2005-01-30  Havoc Pennington  <hp@redhat.com>
4007
4008         * tools/dbus-names-model.c (have_names_notify): fix this
4009
4010         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4011         up the string array handling a bit 
4012
4013 2005-01-30  Havoc Pennington  <hp@redhat.com>
4014
4015         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4016         (dbus_g_pending_call_cancel): new function
4017
4018         * dbus/dbus-glib.h: move GType decls for connection/message here;
4019         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4020         here, just kind of rationalizing how we handle all that
4021
4022         * tools/dbus-names-model.c: new file for a tree model listing the
4023         services on a bus
4024
4025         * tools/dbus-tree-view.c (model_new): use proper typing on the
4026         model rows
4027
4028 2005-01-30  Havoc Pennington  <hp@redhat.com>
4029
4030         * glib/dbus-gmain.c: add a custom GSource back that just checks
4031         whether the message queue has anything in it; otherwise, there are 
4032         cases where we won't see messages in the queue since there was no 
4033         IO visible to the glib main loop
4034
4035         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4036         increase default message timeout to 25 seconds
4037
4038 2005-01-30  Havoc Pennington  <hp@redhat.com>
4039
4040         * test/glib/test-profile.c (no_bus_stop_server): remove the
4041         warning about the g_warning that I just fixed
4042
4043         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4044         custom source, seems to be a lot easier to understand and work
4045         better.
4046
4047 2005-01-30  Havoc Pennington  <hp@redhat.com>
4048
4049         I think this main loop thing is conceptually broken, but here are 
4050         some band aids. I'll maybe rewrite it in a minute.
4051         
4052         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4053         custom GSource, so don't pass it in; confusing
4054         (gsource_server_finalize, gsource_connection_finalize): add
4055         finalize handlers that remove all the watches.  
4056
4057 2005-01-30  Havoc Pennington  <hp@redhat.com>
4058
4059         * glib/dbus-gobject.c (introspect_properties): fix the XML
4060         generated
4061
4062         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4063         which effectively detects the use of freed messages
4064
4065         * glib/dbus-gobject.c (handle_introspect): modify and return the
4066         reply message instead of the incoming message
4067
4068         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4069         gee, maybe it should SEND THE XML instead of just making a string
4070         and freeing it again ;-)
4071
4072         * tools/dbus-print-message.c (print_message): improve printing of
4073         messages
4074
4075         * configure.in: add debug-glib.service to the output
4076
4077 2005-01-30  Havoc Pennington  <hp@redhat.com>
4078
4079         dbus-viewer introspected and displayed the bus driver
4080         
4081         * dbus/dbus-object-tree.c 
4082         (object_tree_test_iteration): add tests for a handler registered on "/"
4083
4084         * dbus/dbus-object-tree.c
4085         (_dbus_decompose_path): fix to handle path "/" properly
4086         (run_decompose_tests): add tests for path decomposition
4087         
4088         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4089         properly
4090
4091         * glib/dbus-gobject.c (handle_introspect): fix quotes
4092
4093         * test/glib/run-test.sh: support launching the bus, then running
4094         dbus-viewer
4095
4096         * test/glib/test-service-glib.c (main): put in a trivial gobject
4097         subclass and register it on the connection
4098
4099         * bus/driver.c (bus_driver_handle_introspect): implement
4100         introspection of the bus driver service
4101
4102         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4103         identifiers, doctype decl
4104
4105         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4106         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4107         returning the service unchanged.
4108         (bus_driver_handle_message): remove old check for reply_serial in
4109         method calls, now the message type deals with that
4110         (bus_driver_handle_message): handle NULL interface
4111
4112         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4113
4114         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4115         -1 for len
4116
4117         * tools/dbus-viewer.c: add support for introspecting a service on
4118         a bus
4119
4120         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4121         (dbus_g_pending_call_unref): add
4122
4123 2005-01-29  Havoc Pennington  <hp@redhat.com>
4124
4125         * tools/dbus-tree-view.c: add support for displaying properties.
4126         (run dbus-viewer with an introspect xml file as arg, then resize
4127         the window so the tree elements show up, not sure what that is)
4128
4129         * glib/dbus-gobject.c (handle_introspect): return
4130         org.freedesktop.Properties and org.freedesktop.Introspectable
4131         interfaces when we are introspected.
4132
4133         * doc/dbus-specification.xml: allow empty interface name when 
4134         Get/Set a property
4135
4136 2005-01-29  Havoc Pennington  <hp@redhat.com>
4137
4138         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4139         though it uses glib, it could be extended for any binding in
4140         principle
4141
4142         * glib/dbus-gobject.c (gobject_message_function): change to the
4143         new way properties work
4144
4145         * dbus/dbus-protocol.h: add the new interfaces
4146
4147         * doc/dbus-specification.xml: document the introspection format,
4148         Introspectable interface, and add an org.freedesktop.Properties
4149         interface.
4150
4151         * glib/dbus-gparser.c: add support for a <property> element
4152
4153         * glib/dbus-gidl.c: add PropertyInfo
4154
4155         * glib/dbus-gobject.c (handle_introspect): put the outermost
4156         <node> outside the signal and property descriptions.
4157         (introspect_properties): export properties as <property> rather
4158         than as method calls
4159
4160 2005-01-28  Havoc Pennington  <hp@redhat.com>
4161
4162         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4163         related to authentication protocol
4164
4165 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4166
4167         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4168                 - BUS_ACTIVATION -> BUS_STARTER
4169                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4170                 - class MessageIter (__init__): Added recursion checking 
4171                 so we throw a nice error instead of just disconnecting from the
4172                 bus.
4173                 (get): Added arg_type parameter for recursion.
4174                 Removed the nil type
4175                 Added signiture type placeholder (not implemented)
4176                 Added struct type placeholder (not implemented)
4177                 Added varient type placeholder (not implemented)
4178                 Commented out dict type for now     
4179                 (get_element_type): renamed from get_array_type
4180                 (get_*): changed to use the dbus_message_iter_get_basic API
4181                 (get_*_array): removed in favor of recursive get_array method
4182                 (get_array): new recursive method which calls get to marshal
4183                 the elements of the array
4184                 (value_to_dbus_sig): New method returns the corrasponding
4185                 dbus signiture to a python value
4186                 (append): Comment out dict handling for now
4187                 Handle lists with the new recursive API
4188                 Comment out None handling for now
4189                 (append_nil): removed
4190                 (append_*): changed to use dbus_message_iter_append_basic API
4191                 (append_*_array): removed in favor of recursive append_array 
4192                 method
4193                 (__str__): Make it easier to print out recursive iterators
4194                 for debugging
4195                 - class Message (__str__): moved type inspection to the
4196                 MessageIter class' __str__ method
4197                 (get_iter): Added an append parameter wich defaults to False
4198                 If True use the new API's to create an append iterator
4199
4200         * python/dbus.py: Update to use new bindings API
4201                 - TYPE_ACTIVATION -> TYPE_STARTER
4202                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4203                 - class ActivationBus -> class StarterBus
4204                 - class RemoteObject (__call__): get an append iterator
4205                 - (_dispatch_dbus_method_call): get an append iterator
4206                 - class Object (emit_signal): get an append iterator
4207
4208         * python/examples/: Fixed up the examples to work with the new API
4209                 
4210 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4211
4212         * configure.in: Bump version up to 0.30.
4213
4214         * HACKING: Add a release item to bump the version number up after 
4215         a release.
4216
4217 2005-01-28  Havoc Pennington  <hp@redhat.com>
4218
4219         * doc/dbus-specification.xml: update to describe 16-bit types and
4220         dict entries
4221
4222         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4223         assertion
4224
4225         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4226         type
4227
4228         * dbus/dbus-marshal-recursive.c: implement
4229
4230 2005-01-27  Havoc Pennington  <hp@redhat.com>
4231
4232         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4233
4234         * configure.in: find the right type for 16 and 32 bit ints as well
4235         as 64
4236
4237         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4238         the 16-bit types so people don't have to stuff them in 32-bit or
4239         byte arrays.
4240
4241 2005-01-27  Havoc Pennington  <hp@redhat.com>
4242
4243         * dbus/dbus-message.c: byteswap the message if you init an
4244         iterator to read/write from it
4245         
4246         * dbus/dbus-marshal-byteswap.c: new file implementing 
4247         _dbus_marshal_byteswap()
4248
4249         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4250
4251 2005-01-26  Havoc Pennington  <hp@redhat.com>
4252         
4253         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4254         build, apparently - nobody noticed?)
4255         
4256 2005-01-26  Havoc Pennington  <hp@redhat.com>
4257
4258         * dbus/dbus-marshal-recursive.h: remove todo comment
4259
4260 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4261
4262         * Land the mono binding changes to conform to the new APIs.
4263
4264         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4265         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4266
4267         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4268         type code as a string.
4269         (InitAppending): Rename dbus_message_append_iter_init() to
4270         dbus_message_iter_init_append().
4271
4272         * mono/BusDriver.cs: Rename ServiceEventHandler to
4273         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4274         Rename ServiceOwnerChanged to NameOwnerChanged.
4275
4276         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4277         underlying C call.
4278
4279         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4280
4281         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4282         dbus_bus_acquire_service() to dbus_bus_request_name().
4283
4284         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4285         of Type.UnderlyingSystemType to get the correct element type for
4286         the array.
4287         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4288         dbus_message_get_{element|arg}_type() instead of
4289         dbus_message_iter_init_array_iterator().
4290         (Append): Replace dbus_message_iter_append_array() with
4291         dbus_message_iter_open_container() and
4292         dbus_message_iter_close_container().
4293
4294         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4295         types have been removed.
4296         
4297         * mono/DBusType/*.cs: Replace calls of
4298         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4299         but specify the type in the DllImport extern declaration.  Ditto
4300         for dbus_message_iter_append_[type]() ->
4301         dbus_message_iter_append_basic().
4302
4303         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4304         NameOwnerChangedHandler.
4305
4306 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4307
4308         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4309                 - get_base_service -> get_unique_name
4310                 - bus_get_base_service -> bus_get_unique_name
4311                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4312                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4313                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4314                 - bus_activate_service -> bus_start_service_by_name
4315                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4316                 - bus_acquire_service -> bus_request_name
4317                 - dbus_bus_acquire_service -> dbus_bus_request_name
4318                 - bus_service_exists -> bus_name_has_owner
4319                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4320
4321         * python/dbus.py: Rename of methods
4322                 - activate_service -> start_service_by_name
4323                 - bus_acquire_service -> bus_request_name
4324                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4325                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4326
4327         
4328 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4329
4330         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4331         signature for the method that can't be found.
4332
4333         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4334         the message has any arguments, we need to call
4335         _dbus_type_reader_get_current_type(), not
4336         _dbus_type_reader_has_next().
4337
4338 2005-01-24  Havoc Pennington  <hp@redhat.com>
4339
4340         * dbus/dbus-message-factory.c: more testing of message validation
4341
4342         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4343         header
4344
4345 2005-01-23  Havoc Pennington  <hp@redhat.com>
4346
4347         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4348         get this all working, not many tests in the framework yet though
4349
4350 2005-01-22  Havoc Pennington  <hp@redhat.com>
4351
4352         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4353         tutorial, based on work from David Wheeler.
4354
4355 2005-01-21  Havoc Pennington  <hp@redhat.com>
4356
4357         * dbus/dbus-bus.c: add more return_if_fail checks
4358
4359         * dbus/dbus-message.c (load_message): have the "no validation"
4360         mode (have to edit the code to toggle the mode for now though)
4361
4362         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4363         skips all validation; I want to use this at least for benchmark
4364         baseline, I'm not sure if it should be a publicly-available switch.
4365
4366 2005-01-21  Havoc Pennington  <hp@redhat.com>
4367
4368         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4369         toplevel doxygen group as the low-level API stuff
4370
4371         * dbus/dbus.h: note that libdbus is the low-level API
4372
4373 2005-01-20  Havoc Pennington  <hp@redhat.com>
4374
4375         * update-dbus-docs.sh: script to update docs on the web site, only
4376         works for me though. neener.
4377
4378 2005-01-20  Havoc Pennington  <hp@redhat.com>
4379
4380         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4381         code can reveal bugs in it
4382
4383 2005-01-20  Havoc Pennington  <hp@redhat.com>
4384
4385         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4386         select() version, patches from Tor Lillqvist
4387
4388 2005-01-20  Havoc Pennington  <hp@redhat.com>
4389
4390         * doc/dbus-tutorial.xml: replace > with &gt;
4391
4392         * bus/services.c (bus_registry_acquire_service): validate the name
4393         and return a better error if it's no good.
4394
4395         * doc/dbus-specification.xml: note NO_AUTO_START change
4396
4397         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4398         from AUTO_START, we're toggling the default
4399
4400         * bus/dispatch.c: adapt the tests to change of auto-start default
4401
4402 2005-01-18  Havoc Pennington  <hp@redhat.com>
4403
4404         * rename dbus-daemon-1 to dbus-daemon throughout
4405
4406 2005-01-18  Havoc Pennington  <hp@redhat.com>
4407
4408         * Throughout, grand renaming to strip out the use of "service",
4409         just say "name" instead (or "bus name" when ambiguous).  Did not
4410         change the internal code of the message bus itself, only the
4411         programmer-facing API and messages.
4412         
4413         * doc/dbus-specification.xml: further update the message bus section
4414         
4415         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4416         in error case
4417
4418 2005-01-17  Havoc Pennington  <hp@redhat.com>
4419
4420         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4421         ever
4422
4423         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4424         "invalid name character" not only non-ASCII
4425
4426         * doc/dbus-specification.xml: further update spec, message bus 
4427         parts are still out-of-date but the marshaling etc. stuff is now
4428         accurate-ish
4429
4430 2005-01-17  Havoc Pennington  <hp@redhat.com>
4431
4432         * doc/dbus-specification.xml: partially update spec
4433
4434 2005-01-17  Havoc Pennington  <hp@redhat.com>
4435
4436         * Throughout, align variant bodies according to the contained
4437         type, rather than always to 8. Should save a fair bit of space in
4438         message headers.
4439         
4440         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4441         fix handling of case where p == end
4442
4443         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4444
4445 2005-01-17  Havoc Pennington  <hp@redhat.com>
4446
4447         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4448
4449         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4450         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4451         are marshaling/unmarshaling a boolean.
4452
4453 2005-01-16  Havoc Pennington  <hp@redhat.com>
4454
4455         This is about it on what can be disabled/deleted from libdbus
4456         easily, back below 150K anyhow. Deeper cuts are more work than 
4457         just turning the code off as I've done here.
4458         
4459         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4460         signed int convenience funcs
4461
4462         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4463         verbose mode
4464
4465         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4466         things out of libdbus
4467
4468         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4469         
4470         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4471         tests-enabled-only, though it should probably be deleted)
4472
4473         * dbus/dbus-message-util.c: same stuff
4474
4475         * dbus/dbus-auth-util.c: same stuff
4476
4477 2005-01-16  Havoc Pennington  <hp@redhat.com>
4478
4479         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4480
4481         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4482         way for stripping down dbus-userdb.c stuff included in libdbus.
4483         Rename _dbus_parse_uid for consistency.
4484
4485 2005-01-16  Havoc Pennington  <hp@redhat.com>
4486
4487         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4488         name the assertion failed in
4489
4490         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4491         (_dbus_return_val_if_fail): assert that the name of the function
4492         containing the check doesn't start with '_', since we only want to 
4493         use checks on public functions
4494         
4495         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4496         checks to assertions
4497
4498         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4499         change checks to asserts for private function
4500
4501         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4502         to asserts for private function
4503
4504         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4505         broken assertion that was breaking make check
4506         (_dbus_type_reader_array_is_empty): remove this rather than fix
4507         it, was only used in assertions
4508
4509 2005-01-16  Havoc Pennington  <hp@redhat.com>
4510
4511         * test/unused-code-gc.py: hacky script to find code that's used
4512         only by the bus (not libdbus) or used only by tests or not used at
4513         all. It has some false alarms, but looks like we can clean up a
4514         lot of size from libdbus.
4515
4516         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4517         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4518         
4519 2005-01-16  Havoc Pennington  <hp@redhat.com>
4520
4521         * Add and fix docs according to Doxygen warnings throughout
4522         source.
4523         
4524         * dbus/dbus-marshal-recursive.c
4525         (_dbus_type_reader_array_is_empty): change this to just call
4526         array_reader_get_array_len() and make it static
4527
4528         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4529         from get_array_type
4530         (dbus_message_iter_init_append): rename from append_iter_init
4531
4532         * dbus/dbus-marshal-recursive.c
4533         (_dbus_type_reader_get_element_type): rename from
4534         _dbus_type_reader_get_array_type
4535
4536 2005-01-15  Havoc Pennington  <hp@redhat.com>
4537
4538         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4539
4540         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4541         when DBUS_DISABLE_ASSERT
4542         (_dbus_marshal_set_basic): be sure we align for the string length
4543
4544         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4545         this look faster
4546
4547         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4548         inline macro version
4549         (_dbus_string_set_byte): provide inline macro version
4550
4551 2005-01-15  Havoc Pennington  <hp@redhat.com>
4552
4553         * Land the new message args API and type system.
4554
4555         This patch is huge, but the public API change is not 
4556         really large. The set of D-BUS types has changed somewhat, 
4557         and the arg "getters" are more geared toward language bindings;
4558         they don't make a copy, etc.
4559
4560         There are also some known issues. See these emails for details
4561         on this huge patch:
4562         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4563         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4564         
4565         * dbus/dbus-marshal-*: all the new stuff
4566
4567         * dbus/dbus-message.c: basically rewritten
4568
4569         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4570         freed blocks to be all non-nul bytes so using freed memory is less
4571         likely to work right
4572
4573         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4574         DBUS_FAIL_MALLOC=N environment variable, so you can do
4575         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4576         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4577         thorough.
4578
4579         * qt/message.cpp: port to the new message args API
4580         (operator<<): use str.utf8() rather than str.unicode()
4581         (pretty sure this is right from the Qt docs?)
4582
4583         * glib/dbus-gvalue.c: port to the new message args API
4584
4585         * bus/dispatch.c, bus/driver.c: port to the new message args API
4586
4587         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4588         "locked" flag to TRUE and align_offset to 0; I guess we never
4589         looked at these anyhow, but seems cleaner.
4590
4591         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4592         move allocation padding macro to this header; use it to implement
4593         (_DBUS_STRING_STATIC): ability to declare a static string.
4594
4595         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4596         change to return TRUE if the interface is not set.
4597
4598         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4599         to dbus-marshal-validate.[hc]
4600
4601         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4602         dbus-internals.c
4603
4604         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4605         to dbus-marshal-*.[hc]
4606
4607         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4608         function here from dbus-marshal.c
4609
4610 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4611
4612         * NEWS: Update for 0.23.
4613
4614         * configure.in: Release 0.23.
4615
4616 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4617
4618         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
4619         dbus DLL with --debug.  Clean up after the .mdb files this leaves
4620         behind.
4621
4622         * mono/doc/Makefile.am: Need to uninstall the docs on "make
4623         uninstall"
4624
4625         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4626         is an enum, get the enum's underlying type.  Another mono
4627         1.1.3 fix.
4628
4629 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4630
4631         Patch from Sjoerd Simons <sjoerd@luon.net>
4632
4633         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4634         DESTDIR.  It breaks stuff.
4635
4636 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4637
4638         Patch from Tambet Ingo <tambet@ximian.com>
4639
4640         * mono/DBusType/Array.cs (Get): Get the underlying element type by
4641         calling type.GetElementType().  The code previously depended on
4642         broken Mono behavior, which was fixed in Mono 1.1.3.
4643
4644         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4645         Activator.CreateInstance() so that the class's constructor is
4646         called with the right parameters.
4647
4648 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4649
4650         Patch from Timo Teräs <ext-timo.teras@nokia.com>
4651
4652         * dbus/dbus-connection.c
4653         (_dbus_connection_queue_received_message_link): Call
4654         _dbus_connection_remove_timeout() instead of the _locked()
4655         variant, since it's always called from
4656         _dbus_connection_handle_watch(), which handles the locking.
4657         Removed the _locked() variant since it's no longer used.
4658
4659 2005-01-03  Havoc Pennington  <hp@redhat.com>
4660
4661         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4662         return
4663         
4664 2004-12-26  Havoc Pennington  <hp@redhat.com>
4665
4666         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4667
4668 2005-01-03  Havoc Pennington  <hp@redhat.com>
4669
4670         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4671         floating point
4672
4673         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4674
4675 2005-01-02  Havoc Pennington  <hp@redhat.com>
4676
4677         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4678
4679 2005-01-01  Havoc Pennington  <hp@redhat.com>
4680
4681         * configure.in: add -Wfloat-equal
4682
4683 2005-01-01  Havoc Pennington  <hp@redhat.com>
4684
4685         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
4686         for a variety of reasons '==' doesn't do this.
4687
4688 2004-12-31  Havoc Pennington  <hp@redhat.com>
4689
4690         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4691         I keep wishing I had
4692
4693 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4694
4695         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4696
4697 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4698
4699         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4700         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4701         dbus-protocol.h.  Because they are defines and not enums they are not
4702         autogenerated.
4703
4704 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
4705
4706         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4707         dbus_bus_activate_service
4708
4709         * python/dbus.py (Bus.activate_service): activate a service on the
4710         bus.
4711
4712 2004-12-24  Havoc Pennington  <hp@redhat.com>
4713
4714         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4715         file format has also changed and I haven't adapted to that yet
4716         
4717         * Makefile.am: load .gcno files from latest gcc
4718
4719 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
4720         * Patch from Rob Taylor <robtaylor@fastmail.fm>
4721
4722         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4723         lowlevel binding
4724
4725         * python/dbus.py (get_unix_user): Added binding to 
4726         call dbus_bindings.bus_get_unix_user
4727
4728         * python/extract.py: Modified the proto_pat regex to
4729         handle unsigned long
4730
4731 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4732
4733         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4734         better POSIX compliance.
4735
4736 2004-12-19  Havoc Pennington  <hp@redhat.com>
4737
4738         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
4739         (_dbus_string_insert_8_aligned): new functions
4740
4741         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4742
4743 2004-12-18  Havoc Pennington  <hp@redhat.com>
4744
4745         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4746         macro
4747
4748         * dbus/dbus-message.c: fix a comment, and add a still-unused
4749         not-implemented function
4750
4751         * dbus/dbus-marshal.h: fix comment
4752
4753         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4754
4755 2004-12-17  Joe Shaw  <joeshaw@novell.com>
4756
4757         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4758         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4759         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4760         Type.UnderlyingSystemType to get the actual system type
4761         underneath.  This code previously depended on the broken Mono
4762         behavior, which was fixed in 1.1.3.
4763
4764 2004-11-27  Havoc Pennington  <hp@redhat.com>
4765
4766         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4767         are disabled
4768         (_dbus_string_get_const_data): inline when asserts are disabled
4769
4770         * dbus/dbus-message.c: record the _dbus_current_generation of
4771         creation so we can complain if dbus_shutdown() is used improperly.
4772         Do this only if checks are enabled.
4773
4774         * dbus/dbus-connection.c: ditto
4775         
4776 2004-11-26  Havoc Pennington  <hp@redhat.com>
4777
4778         * test/glib/test-profile.c: add with_bus mode to profile echoes
4779         that go through the bus.
4780
4781         * test/glib/run-test.sh: add ability to run test-profile
4782
4783         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4784         config file reload.
4785
4786 2004-11-26  Havoc Pennington  <hp@redhat.com>
4787
4788         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4789         thing was implemented
4790
4791 2004-11-26  Havoc Pennington  <hp@redhat.com>
4792
4793         * test/glib/test-profile.c: tweak a bit, add support for some
4794         made-up minimal malloc overhead with plain sockets, since in 
4795         real life some sort of buffers are unavoidable thus we could 
4796         count them in the theoretical best case
4797
4798 2004-11-26  Havoc Pennington  <hp@redhat.com>
4799
4800         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
4801         where I was trying to cache one too many messages
4802
4803 2004-11-26  Havoc Pennington  <hp@redhat.com>
4804
4805         * dbus/dbus-message.c: reimplement message cache as an array which 
4806         makes the cache about twice as fast and saves maybe 1.5% overall
4807
4808 2004-11-26  Havoc Pennington  <hp@redhat.com>
4809
4810         * dbus/dbus-threads.c (init_global_locks): forgot to put the
4811         message cache lock here
4812
4813 2004-11-26  Havoc Pennington  <hp@redhat.com>
4814
4815         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
4816         the "char byte_order" next to each other to save 4 bytes
4817         (dbus_message_new_empty_header): reduce preallocation, since the
4818         message cache should achieve a similar effect
4819         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
4820         message cache that keeps a few DBusMessage around in a pool,
4821         another 8% speedup or so.
4822
4823         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
4824
4825 2004-11-25  Havoc Pennington  <hp@redhat.com>
4826
4827         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
4828         to write, without reading or blocking, try it before the poll()
4829         and skip the poll() if nothing remains to write. This is about a
4830         3% speedup in the echo client/server
4831
4832 2004-11-25  Havoc Pennington  <hp@redhat.com>
4833
4834         The primary change here is to always write() once before adding
4835         the write watch, which gives us about a 10% performance increase.
4836         
4837         * dbus/dbus-transport-unix.c: a number of modifications to cope
4838         with removing messages_pending
4839         (check_write_watch): properly handle
4840         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
4841         messages_pending stuff
4842         (check_read_watch): properly handle WAITING_FOR_MEMORY and
4843         AUTHENTICATED cases
4844         (unix_handle_watch): after writing, see if the write watch can be
4845         removed
4846         (unix_do_iteration): assert that write_watch/read_watch are
4847         non-NULL rather than testing that they aren't, since they 
4848         aren't allowed to be NULL. check_write_watch() at the end so 
4849         we add the watch if we did not finish writing (e.g. got EAGAIN)
4850
4851         * dbus/dbus-transport-protected.h: remove messages_pending call,
4852         since it resulted in too much inefficient watch adding/removing; 
4853         instead we now require that the transport user does an iteration 
4854         after queueing outgoing messages, and after trying the first
4855         write() we add a write watch if we got EAGAIN or exceeded our 
4856         max bytes to write per iteration setting
4857
4858         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
4859         function
4860
4861         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
4862         freed and then accessed, valgrind flagged this bug, fix it
4863
4864         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
4865         as the last valid field plus 1, where really it is equal to the
4866         last valid field. Corrects some message corruption issues.
4867
4868         * dbus/dbus-mainloop.c: verbosity changes
4869
4870         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
4871         instead of aborting in one of the test codepaths
4872
4873         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
4874         caused not printing the pid ever again if a verbose was missing
4875         the newline at the end
4876         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
4877
4878         * dbus/dbus-connection.c: verbosity changes; 
4879         (dbus_connection_has_messages_to_send): new function
4880         (_dbus_connection_message_sent): no longer call transport->messages_pending
4881         (_dbus_connection_send_preallocated_unlocked): do one iteration to
4882         try to write() immediately, so we can avoid the write watch. This
4883         is the core purpose of this patchset
4884         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
4885         dump the outgoing message queue, so nobody will get confused
4886         trying to send them or thinking stuff is pending to be sent
4887
4888         * bus/test.c: verbosity changes
4889
4890         * bus/driver.c: verbosity/assertion changes
4891
4892         * bus/dispatch.c: a bunch of little tweaks to get it working again
4893         because this patchset changes when/where you need to block.
4894
4895 2004-11-23  Havoc Pennington  <hp@redhat.com>
4896
4897         * test/glib/test-profile.c: modify to accept a plain_sockets
4898         argument in which case it will bench plain sockets instead of
4899         libdbus, for comparison purposes.
4900
4901 2004-11-22  Havoc Pennington  <hp@redhat.com>
4902
4903         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
4904         threads for more time, so sysprof can get a grip on it.
4905
4906         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
4907         pointless variable
4908
4909 2004-11-13  Havoc Pennington  <hp@redhat.com>
4910
4911         * test/glib/test-profile.c: fix this thing up a bit
4912
4913         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
4914         preallocation sizes by a fair bit; not sure if this will be an
4915         overall performance win or not, but it does reduce reallocs.
4916
4917         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
4918         the test hack that forced constant realloc if asserts are
4919         disabled, so we can profile sanely. Sprinkle in some
4920         _DBUS_UNLIKELY() which are probably pointless, but before I
4921         noticed the real performance problem I put them in.
4922         (_dbus_string_validate_utf8): micro-optimize this thing a little
4923         bit, though callgrind says it didn't help; then special-case
4924         ascii, which did help a lot; then be sure we detect nul bytes as
4925         invalid, which is a bugfix.
4926         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
4927         superstition; use memset to nul the padding instead of a manual
4928         loop.
4929         (_dbus_string_get_length): inline this as a
4930         macro; it showed up in the profile because it's used for loop
4931         tests and so forth
4932
4933 2004-11-10  Colin Walters  <walters@verbum.org>
4934
4935         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
4936         for extra paranoia.
4937
4938 2004-11-09  Colin Walters  <walters@verbum.org>
4939
4940         * dbus/dbus-string.c (_dbus_string_get_length): New
4941         function, writes DBusString to C buffer.
4942
4943         * dbus/dbus-string.h: Prototype it.
4944
4945         * dbus/dbus-message.c (dbus_message_type_to_string): New
4946         function, converts message type into C string.
4947
4948         * dbus/dbus-message.h: Prototype it.
4949
4950         * bus/selinux.c (bus_selinux_check): Take source pid,
4951         target pid, and audit data.  Pass audit data to
4952         avc_has_perm.
4953         (log_audit_callback): New function, appends extra
4954         audit information.
4955         (bus_selinux_allows_acquire_service): Also take
4956         service name, add it to audit data.
4957         (bus_selinux_allows_send): Also take message
4958         type, interface, method member, error name,
4959         and destination, and add them to audit data.
4960         (log_cb): Initialize func_audit.
4961         
4962         * bus/selinux.h (bus_selinux_allows_acquire_service)
4963         (bus_selinux_allows_send): Update prototypes 
4964
4965         * bus/services.c (bus_registry_acquire_service): Pass
4966         service name to bus_selinux_allows_acquire_service.
4967
4968         * bus/bus.c (bus_context_check_security_policy): Pass
4969         additional audit data.  Move assignment of dest
4970         to its own line.
4971
4972 2004-11-07  Colin Walters  <walters@verbum.org>
4973
4974         * dbus/dbus-transport-unix.c (do_authentication): Always
4975         initialize auth_completed.
4976         
4977 2004-11-07  Colin Walters  <walters@verbum.org>
4978
4979         * bus/bus.c (load_config): Break into three
4980         separate functions: process_config_first_time_only,
4981         process_config_every_time, and process_config_postinit.
4982         (process_config_every_time): Move call of
4983         bus_registry_set_service_context_table into
4984         process_config_postinit.
4985         (process_config_postinit): New function, does
4986         any processing that needs to happen late
4987         in initialization (and also on reload).
4988         (bus_context_new): Instead of calling load_config,
4989         open config parser here and call process_config_first_time_only
4990         and process_config_every_time directly.  Later, after
4991         we have forked but before changing UID,
4992         invoke bus_selinux_full_init, and then call
4993         process_config_postinit.
4994         (bus_context_reload_config): As in bus_context_new,
4995         load parse file inside here, and call process_config_every_time
4996         and process_config_postinit.
4997
4998         * bus/services.h, bus/services.c
4999         (bus_registry_set_service_context_table): Rename
5000         from bus_registry_set_sid_table.  Take string hash from config
5001         parser, and convert them here into SIDs.
5002
5003         * bus/config-parser.c (struct BusConfigParser): Have
5004         config parser only store a mapping of service->context
5005         string.
5006         (merge_service_context_hash): New function.
5007         (merge_included): Merge context string hashes instead
5008         of using bus_selinux_id_table_union.
5009         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5010         simply create a new string hash.
5011         (bus_config_parser_unref): Unref it.
5012         (start_selinux_child): Simply insert strings into hash,
5013         don't call bus_selinux_id_table_copy_over.
5014
5015         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5016         (bus_selinux_id_table_copy_over): Delete.
5017
5018 2004-11-03  Colin Walters  <walters@verbum.org>
5019
5020         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5021         variables.
5022         
5023 2004-11-03  Colin Walters  <walters@verbum.org>
5024
5025         * bus/test-main.c (test_pre_hook): Fix test logic,
5026         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5027
5028 2004-11-02  Colin Walters  <walters@redhat.com>
5029
5030         * bus/selinux.c (bus_selinux_init): Split into two functions,
5031         bus_selinux_pre_init and bus_selinux_post_init.
5032         (bus_selinux_pre_init): Just determine whether SELinux is
5033         enabled.
5034         (bus_selinux_post_init): Do everything else.
5035
5036         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5037         config file, and bus_selinux_post_init after.  This ensures that
5038         we don't lose the policyreload notification thread that
5039         bus_selinux_init created before forking previously.
5040         
5041         * bus/test-main.c (test_pre_hook): Update for split.
5042
5043 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5044
5045         Patch from Johan Fischer <linux@fischaz.com>
5046         
5047         * mono/doc/Makefile.am (install-data-local): Added directory
5048         install for DESTDIR
5049
5050 2004-10-29  Colin Walters  <walters@redhat.com>
5051
5052         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5053         parameter for fd to write pid to.       
5054
5055         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5056         
5057         * bus/bus.c (bus_context_new): Pass print_pid_fd
5058         to _dbus_become_daemon (bug #1720)
5059
5060 2004-10-29  Colin Walters  <walters@redhat.com>
5061
5062         Patch from Ed Catmur <ed@catmur.co.uk>
5063
5064         * mono/doc/Makefile.am (install-data-local): Handle
5065         DESTDIR.
5066
5067 2004-10-29  Colin Walters  <walters@redhat.com>
5068
5069         * bus/.cvsignore, qt/.cvsignore: Update.
5070
5071 2004-10-29  Colin Walters  <walters@redhat.com>
5072
5073         Patch from Kristof Vansant <de_lupus@pandora.be>
5074
5075         * configure.in: Detect Slackware.
5076         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5077         * bus/rc.messagebus.in: New file.
5078
5079 2004-10-29  Colin Walters  <walters@redhat.com>
5080
5081         * tools/dbus-monitor.c (filter_func): Return
5082         DBUS_HANDLER_RESULT_HANDLED in filter function
5083         for now.  See:
5084         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5085
5086 2004-10-29  Colin Walters  <walters@redhat.com>
5087
5088         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5089
5090         * bus/services.c (bus_registry_acquire_service): 
5091         Correctly retrieve service name from DBusString
5092         for printing.
5093
5094 2004-10-29  Colin Walters  <walters@redhat.com>
5095
5096         * dbus/dbus-glib.h: Update documentation to not
5097         refer to internal APIs.
5098
5099 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5100
5101         * mono/Arguments.cs (GetDBusTypeConstructor):
5102         type.UnderlyingSystemType will return "System.Byte" if you do it
5103         on "byte[]", which is not what we want.  So check the type.IsArray
5104         property and use System.Array instead.
5105
5106 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5107
5108         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5109         the DBusUserInfo structure since this is passed into the function.
5110         This would cause a double free when the function that allocated
5111         the structure would try to free it when an error occured.
5112
5113         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5114         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5115         for service activation to avoid 32bit/64bit parallel install issues
5116
5117 2004-10-21  Colin Walters  <walters@verbum.org>
5118
5119         * AUTHORS: Fix my email address, the @gnu.org one
5120         has been bouncing for some time.  Also add J5.
5121         
5122 2004-10-21  Colin Walters  <walters@verbum.org>
5123
5124         * dbus/dbus-transport-unix.c (do_authentication): Return
5125         authentication status to callers.
5126         (unix_handle_watch): If we completed authentication this round,
5127         don't do another read.  Instead wait until the next iteration,
5128         after we've read any pending data in the auth buffer.
5129         (unix_do_iteration): Ditto.
5130         (unix_handle_watch): Updated for new do_authentication prototype.
5131
5132 2004-10-18  Colin Walters  <walters@verbum.org>
5133
5134         * bus/selinux.c (bus_selinux_enabled): Handle
5135         --disable-selinux case.
5136         
5137 2004-10-18  Colin Walters  <walters@verbum.org>
5138
5139         * bus/selinux.h: Add bus_selinux_enabled.
5140         
5141         * bus/selinux.c (bus_selinux_enabled): Implement it.
5142         
5143         * bus/config-parser.c (struct include): Add
5144         if_selinux_enabled member.
5145         (start_busconfig_child): Parse if_selinux_enabled
5146         attribute for include.
5147         (bus_config_parser_content): Handle it.
5148
5149         * bus/session.conf.in, bus/system.conf.in: Add
5150         inclusion of context mapping to default config files;
5151         conditional on SELinux being enabled.
5152         
5153         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5154         
5155         * test/data/invalid-config-files/badselinux-1.conf, 
5156         test/data/invalid-config-files/badselinux-2.conf:
5157         Test files for bad syntax.
5158         
5159 2004-10-17  Colin Walters  <walters@verbum.org>
5160
5161         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5162         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5163         format specifier mismatches.
5164
5165 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5166
5167         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5168         format string.
5169
5170         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5171         pointer (bug #1540, Leonardo Boiko).
5172
5173 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5174
5175         * mono/BusDriver.cs: Changed BusDriver struct to remove
5176         the ServiceCreated and ServiceDeleted events and replace them
5177         with the new ServiceOwnerChanged event.
5178
5179         * mono/example/BusListener.cs: Added a new example program,
5180         which listens for and reports any ServiceOwnerChanged events
5181         on the bus driver.
5182
5183         * mono/example/Makefile.am (DESTDIR): Build changes for the
5184         new BusListener.cs example.
5185
5186 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5187
5188         * bus/signals.c (bus_match_rule_parse): validate the components of
5189         match rules (bug #1439).
5190
5191         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5192
5193 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5194
5195         * doc/dbus-specification.xml: document ServiceOwnerChanged
5196         signal.
5197         
5198         * bus/driver.c, bus/driver.h, bus/services.c: Use
5199         ServiceOwnerChanged signal instead of ServiceCreated and
5200         ServiceDeleted.
5201         
5202         * bus/dispatch.c: update testcase for the new signal.
5203
5204 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5205
5206         Patch from Nat Friedman <nat@novell.com>
5207
5208         * mono/Makefile.am: A number of small build fixes to allow "make
5209         distcheck" to succeed.
5210
5211         * mono/example/Makefile.am: "make distcheck" fixes.
5212
5213         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5214         key in @srcdir@.
5215
5216         * test/Makefile.am: "make distcheck" fixes.
5217
5218 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5219
5220         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5221
5222         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5223
5224         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5225         messages after the first one (bug #1389).
5226         
5227         * bus/dispatch.c (check_double_hello_message): add a test case for
5228         the double hello message bug.
5229         (check_existent_service_activation): fix check of spawning error.
5230         
5231 2004-09-16  David Zeuthen  <david@fubar.dk>
5232
5233         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5234
5235 2004-09-12  David Zeuthen  <david@fubar.dk>
5236
5237         Patch from Kay Sievers <kay.sievers@vrfy.org>
5238
5239         * bus/bus.c (bus_context_new):
5240         * bus/bus.h:
5241         * bus/main.c (usage)
5242         (main):
5243         Add commandline option --nofork to override configuration file
5244         setting.
5245
5246 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5247
5248         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5249         compilers don't like it (bug #974).
5250
5251 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5252
5253         * qt/connection.*: Applied patch by Jérôme Lodewyck
5254         <lodewyck@clipper.ens.fr> to integrate an existing
5255         connection into the Qt eventloop
5256
5257 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5258
5259         * mono/BusDriver.cs: Added.  This is a class for interacting with
5260         the org.freedesktop.DBus service.
5261
5262         * mono/Message.cs: Added a mechanism to expose the message that is
5263         currently being dispatched via the static Message.Current
5264         property.  Added Message.Sender and Message.Destination
5265         properties.
5266
5267         * mono/Handler.cs: Expose the dispatched message via
5268         Message.Current when handling method calls.
5269
5270         * mono/Service.cs: Expose the dispatched message via
5271         Message.Current when handling signal emissions.
5272         
5273         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5274         Connection.BaseService property.
5275
5276 2004-08-28  Havoc Pennington  <hp@redhat.com>
5277
5278         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5279
5280         More fixes from Steve Grubb
5281         
5282         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5283         (_dbus_listen_tcp_socket): fix fd leak
5284
5285         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5286         EINTR to a bit lower in the code
5287
5288 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5289
5290         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5291         TRUE if we are inquiring about the existence of the built-in
5292         org.freedesktop.DBus service.
5293
5294 2004-08-25  John Palmieri  <johnp@redhat.com>
5295         * bus/config-parser.c:
5296         (struct PolicyType): Add POLICY_CONSOLE
5297         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5298         (start_busconfig_child): Sets up console element when
5299         <policy at_console=""> is encountered in a policy file
5300         (append_rule_from_element): Convert console elements to console
5301         rules.
5302
5303         * bus/policy.c: 
5304         (bus_policy_create_client_policy): Add console rules to the client
5305         policy based on if the client is at the console
5306         (bus_policy_append_console_rule): New function for adding a
5307         console rule to a policy
5308         (bus_policy_merge): Handle console rule merging
5309
5310         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5311         where we check for console user files
5312         
5313         * dbus/dbus-sysdeps.c:
5314         (_dbus_file_exists): New function which checks if the given
5315         file exists
5316         (_dbus_user_at_console): New function which does the system
5317         specific process of checking if the user is at the console
5318
5319         * dbus/dbus-userdb.c:
5320         (_dbus_is_console_user): New function converts a UID to user name
5321         and then calls the system specific _dbus_user_at_console to 
5322         see if the user is at the console and therefor a console user
5323
5324 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5325
5326         * bus/config-parser.c (set_limit):
5327         * bus/dbus-daemon-1.1.in:
5328         * test/data/valid-config-files/many-rules.conf: set the
5329         max_match_rules_per_connection limt from the config file. 
5330
5331         * doc/busconfig.dtd: update the DTD.
5332
5333         * bus/driver.c: remove some unused variables.
5334
5335 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5336
5337         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5338         it's been replaced by dbus_g_bus_get
5339
5340 2004-08-23  Colin Walters  <walters@redhat.com>
5341
5342         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5343
5344         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5345
5346         * bus/selinux.c: Create a thread for policy reload notification.
5347         (bus_selinux_get_policy_root): Implement.
5348
5349         * bus/config-parser.c (start_busconfig_child)
5350         (bus_config_parser_content): Support SELinux-root relative
5351         inclusion.
5352
5353         * configure.in <HAVE_SELINUX>: Add -lpthread.
5354         
5355         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5356         (test_post_hook): Move memory checking into here.
5357         (test_pre_hook, test_post_hook): Move SELinux checks in
5358         here, but conditional on a DBUS_TEST_SELINUX environment
5359         variable.  Unfortunately we can't run the SELinux checks
5360         as a normal user, since they won't have any permissions
5361         for /selinux.  So this will have to be tested manually
5362         for now, until we have virtualization for most of
5363         libselinux.
5364         
5365 2004-08-23  Havoc Pennington  <hp@redhat.com>
5366
5367         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5368         drop supplementary groups, suggested by Steve Grubb
5369
5370 2004-08-20  Colin Walters  <walters@redhat.com>
5371
5372         * bus/config-parser.c (start_busconfig_child): Remove some unused
5373         variables.
5374         
5375         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5376         warning.
5377
5378 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5379
5380         * configure.in: If --enable-mono is passed in, if we can't find
5381         mono error out.
5382
5383         * mono/Makefile.am: Use /gacutil to install assemblies into the
5384         GAC and not /root.
5385
5386 2004-08-12  Havoc Pennington  <hp@redhat.com>
5387
5388         * NEWS: update for 0.22
5389
5390         * configure.in: release 0.22
5391
5392 2004-08-11  Colin Walters  <walters@redhat.com>
5393
5394         * tools/dbus-send.c (main, usage): Add --reply-timeout
5395         argument.
5396
5397 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5398
5399         * bus/bus.c (process_config_first_time_only): get rid of an unused
5400         DBusError that was causing a memoy leak (bug #989).
5401
5402         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5403         fix compilation on Solaris/Forte C (bug #974)
5404
5405         * bus/main.c (main): plug two minuscule memleaks.
5406
5407 2004-08-10  Havoc Pennington  <hp@redhat.com>
5408
5409         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5410
5411 2004-08-09  Havoc Pennington  <hp@redhat.com>
5412
5413         * COPYING: switch to Academic Free License version 2.1 instead of
5414         2.0, to resolve complaints about patent termination clause.
5415
5416 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5417
5418         * README: added documentation for the --enable-python 
5419         configure switch.
5420
5421 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5422
5423         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5424         _unref in the SELinux support.
5425
5426         * doc/busconfig.dtd: update DTD for SELinux support.
5427
5428         * bus/config-loader-libxml.c: fix error handler and parser
5429         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5430
5431         * configure.in: remove the warning about libxml2.
5432
5433         * dbus/dbus-bus.c: silence doxygen warning.
5434
5435 2004-07-31  Colin Walters  <walters@redhat.com>
5436
5437         * configure.in: Move #error in SELinux check to its own line.
5438
5439 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5440
5441         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5442         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5443         dbus_error_set.
5444
5445         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5446         broken by the change in the _SET_OOM macros.
5447
5448 2004-07-31  Colin Walters  <walters@redhat.com>
5449
5450         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5451         BUS_SET_OOM.
5452
5453 2004-07-31  Colin Walters  <walters@redhat.com>
5454
5455         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5456         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5457         AC_MSG_CHECKING.
5458
5459 2004-07-24  Havoc Pennington  <hp@redhat.com>
5460
5461         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5462
5463         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5464         functionality
5465
5466         * configure.in: add --enable-selinux
5467         
5468         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5469
5470         * bus/main.c (main): initialize and shut down selinux
5471
5472         * bus/connection.c: store SELinux ID on each connection, to avoid 
5473         repeated getting of the string context and converting it into 
5474         an ID
5475
5476         * bus/bus.c (bus_context_get_policy): new accessor, though it
5477         isn't used
5478         (bus_context_check_security_policy): check whether the security
5479         context of sender connection can send to the security context of
5480         recipient connection
5481
5482         * bus/config-parser.c: add parsing for <selinux> and <associate>
5483         
5484         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5485         implement dbus_connection_get_unix_fd()
5486
5487         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5488         function, used by the selinux stuff
5489         
5490 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5491
5492         * bus/config-loader-libxml.c: complete the implementation of
5493         libxml backend for config file loader. Doesn't work with full OOM
5494         test yet. 
5495         
5496         * configure.in: change error when selecting libxml into a warning.
5497         
5498         * test/data/invalid-config-files: add two non-well-formed XML
5499         files. 
5500         
5501         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5502         
5503         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5504         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5505         be necessary to read all the buffer. (bug #894)
5506
5507         * bus/activation.c (bus_activation_activate_service): fix a
5508         potential assertion failure (bug #896). Small optimization in the
5509         case of auto-activation messages.
5510
5511         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5512         add test case for byte-through-vararg bug (#901). patch by Kimmo
5513         Hämäläinen. 
5514
5515 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5516
5517         * python/dbus.py:
5518         * python/dbus_bindings.pyx.in:
5519         Add dbus.init_gthreads (), allow emit_signal to pass
5520         arguments to the signal.
5521         
5522 2004-07-24  Havoc Pennington  <hp@redhat.com>
5523
5524         * AUTHORS: add some people, not really comprehensively, let me
5525         know if I missed you
5526
5527 2004-07-24  Havoc Pennington  <hp@redhat.com>
5528
5529         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5530         Owen
5531
5532         * test/Makefile.am (DIST_SUBDIRS): here also
5533
5534 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5535
5536         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5537         breaking build on Solaris, reported by Farhad Saberi on the ML.
5538
5539         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5540         va_arg invocation to account for integer promotion in the case of
5541         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5542
5543         * bus/services.c (bus_service_remove_owner): fix bug #902, use
5544         _dbus_list_get_first_link, not _dbus_list_get_first.
5545
5546         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5547
5548         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5549         handler functions so that the asserts in _dbus_object_subtree_unref
5550         do not fail.
5551
5552         * dbus/dbus-transport-unix.c (do_reading):
5553         _dbus_transport_queue_messages return value is of type
5554         dbus_bool_t, not DBusDispatchStatus.
5555         
5556 2004-07-19  David Zeuthen  <david@fubar.dk>
5557
5558         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5559
5560         * bus/dispatch.c:
5561         (check_get_connection_unix_user): Debug says GetProperty; but the
5562         method is called GetConnectionUnixUser
5563         (check_get_connection_unix_process_id): New function
5564         (bus_dispatch_test): Actually call check_get_connection_unix_user();
5565         also call check_get_connection_unix_process_id()
5566         
5567         * bus/driver.c:
5568         (bus_driver_handle_get_connection_unix_process_id): New function,
5569         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5570         interface
5571         
5572         * dbus/dbus-auth.c:
5573         (handle_server_data_external_mech): Set pid from the credentials
5574         obtained from the socket
5575         
5576         * dbus/dbus-connection.c:
5577         (dbus_connection_get_unix_process_id): New function
5578         
5579         * dbus/dbus-connection.h: 
5580         Add prototype for dbus_connection_get_unix_process_id
5581         
5582         * dbus/dbus-transport.c:
5583         (_dbus_transport_get_unix_process_id): New function
5584         
5585         * dbus/dbus-transport.h:
5586         Add prototype for _dbus_transport_get_unix_process_id
5587         
5588 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5589
5590         * dbus/dbus-message.c: Message counter fix, patch by Christian
5591         Hammond <chipx86@gnupdate.org>
5592
5593 2004-07-18  Seth Nickell  <seth@gnome.org>
5594
5595         * python/dbus.py:
5596         * python/dbus_bindings.pyx.in:
5597         * python/tests/test-client.py:
5598
5599         Add dbus.ByteArray and dbus_bindings.ByteArray
5600         types so that byte streams can be passed back.
5601
5602         Give jdahlin the heaps of credit that are so
5603         rightfully his.
5604         
5605 2004-07-12  Seth Nickell  <seth@gnome.org>
5606
5607         * python/dbus.py:
5608
5609         Add message argument to the default object_method_handler
5610         function.
5611         
5612         * python/dbus_bindings.pyx.in:
5613
5614         Automatically return NIL when passed an empty list
5615         (we can't pass back a list since lists are typed
5616         and we don't have any idea what type the the client
5617         intended the list to be... :-( )
5618         
5619 2004-07-10  Seth Nickell  <seth@gnome.org>
5620
5621         * python/examples/Makefile.am:
5622
5623         Fix distcheck breakage caused by new examples.
5624
5625 2004-07-10  Seth Nickell  <seth@gnome.org>
5626
5627         * python/dbus.py:
5628
5629         Add "message" argument to service-side dbus.Object
5630         methods. This will break existing services written
5631         using the python bindings, but will allow extraction
5632         of all the message information (e.g. who its from).
5633
5634         Add improved "object oriented" signal handling/emission.
5635         
5636         * python/examples/example-service.py:
5637
5638         Nix this example.
5639         
5640         * python/examples/example-signal-emitter.py:
5641         * python/examples/example-signal-recipient.py:
5642
5643         Two new examples that show how to emit and receive
5644         signals using the new APIs.
5645         
5646         * python/examples/example-signals.py:
5647         * python/examples/gconf-proxy-service.py:
5648         * python/examples/gconf-proxy-service2.py:
5649
5650         Add "message" argument to service methods.
5651
5652 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
5653
5654         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5655         * dbus/bus.c (dbus_bus_get_unix_user)
5656         * doc/dbus-specification.xml: implement GetConnectionUnixUser
5657         method of org.freedesktop.DBus interface.
5658
5659         * bus/dispatch.c: test case
5660
5661 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
5662
5663         * python/Makefile.am: switched include directory from glib/ to dbus/
5664         since dbus-glib.h moved
5665  
5666 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5667
5668         * configure.in: prevent building the gcj stuff and libxml loader
5669         since they are broken.
5670
5671 2004-06-20  Havoc Pennington  <hp@redhat.com>
5672
5673         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
5674         codes from the dbus error names
5675         
5676         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
5677         as dbus/dbus-glib.h and that breakage is now visible due to 
5678         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5679         
5680         * glib/dbus-glib.h: s/gproxy/g_proxy/
5681
5682         * dbus/dbus-shared.h: new header to hold stuff shared with
5683         binding APIs
5684         
5685         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5686         than dbus-errors.h
5687
5688         * glib/dbus-glib.h (dbus_set_g_error): move to
5689         dbus-glib-lowlevel.h
5690
5691         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5692         of stuff to enable this
5693
5694         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5695
5696         * a bunch of other changes with the same basic "separate glib 
5697         bindings from dbus.h" theme
5698         
5699 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
5700
5701         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5702
5703         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5704
5705 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5706
5707         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5708         the reply value of the ServiceExists message.
5709
5710 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
5711
5712         * python/dbus_bindings.pyx.in: No longer need to parse path
5713         elements and pass them as arrays of strings.  The C API now
5714         accepts plain path strings.
5715         (_build_parsed_path): removed 
5716
5717 2004-06-07  Havoc Pennington  <hp@redhat.com>
5718
5719         * doc/TODO: remove auto-activation item since it's done; sort
5720         items by importance/milestone
5721
5722 2004-06-07  Havoc Pennington  <hp@redhat.com>
5723
5724         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5725         random signature when using REQUIRED_FIELDS (this hack won't work
5726         in the long term)
5727
5728         * dbus/dbus-message.c: change the signature to be a header field,
5729         instead of message->signature special-case string. Incremental
5730         step forward. Then we can fix up code to send the signature in the
5731         message, then fix up code to validate said signature, then fix up
5732         code to not put the typecodes inline, etc.
5733         (load_one_message): don't make up the signature after the fact
5734         (decode_header_data): require signature field for the known
5735         message types
5736
5737         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5738
5739         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5740
5741 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
5742
5743         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5744
5745         * mono/Handler.cs: Updated to follow new path argument for
5746         (un-)registering objects.
5747
5748         * mono/example/Makefile.am:
5749         * mono/Makefile.am:
5750         * configure.in: Bumped required version for mono and use new -pkg
5751         syntax for deps
5752
5753 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5754
5755         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5756         registration functions take the path argument as char* instead of
5757         char**.
5758
5759         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5760         split off the path decompostion part of
5761         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5762         warnings. 
5763
5764         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5765         
5766 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5767  
5768         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5769         machine approach.  A state is implemented as a function that
5770         handles incoming events as specified for that state.
5771         
5772         * doc/dbus-specification.xml: Update auth protocol state machine
5773         specification to match implementation.  Remove some leftover
5774         base64 examples.
5775
5776 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5777
5778         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5779         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5780         quiet doxygen.
5781
5782         * Doxyfile.in: remove deprecated options.
5783
5784         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5785         glib/test-thread.h, glib/test-thread-client.c,
5786         glib/test-thread-server.c, glib/test-profile.c,
5787         glib/test-dbus-glib.c: remove these unused files.
5788
5789 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5790
5791         * dbus/dbus-object-tree.c
5792         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5793         non-fallback handlers (bug #684).
5794         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5795         (find_subtree_recurse): report wether the returned subtree is an
5796         exact match or a "fallback" match higher up in the tree.
5797         (object_tree_test_iteration): update test case.
5798
5799 2004-06-01  Seth Nickell  <seth@gnome.org>
5800
5801         * python/dbus_bindings.pyx.in:
5802         * python/tests/test-client.py:
5803
5804         Round off basic type support. Add dicts (yay!), and 
5805         remaining array types.
5806
5807         Make MessageIter more general so it works for dicts too.
5808
5809         Mark all loop variables as C integers.
5810         
5811 2004-05-31  Havoc Pennington  <hp@redhat.com>
5812
5813         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
5814         "in" before "out"
5815
5816         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
5817
5818         * glib/dbus-glib-tool.c (main): set up to have a --self-test
5819         option that runs the tests, and start filling in some code
5820         including for starters just dumping the interfaces to stdout
5821
5822         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
5823
5824         * test/data/valid-introspection-files/lots-of-types.xml: test of
5825         an example introspection file
5826
5827         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
5828         "node" (I think...)
5829
5830 2004-05-31  Seth Nickell  <seth@gnome.org>
5831
5832         * python/dbus_bindings.pyx.in:
5833         * python/tests/test-client.py:
5834
5835         Test Suite: 1
5836         Python Bindings: 0
5837
5838         Fix string array memory trashing bug... oops...
5839
5840 2004-05-30  Seth Nickell  <seth@gnome.org>
5841
5842         * python/dbus.py:
5843
5844         Add a nicer-but-less-flexible alternate API for handling 
5845         calls to virtual objects in dbus.ObjectTree.
5846
5847         Screw up the argument order to the dbus.Object constructor
5848         for consistency with dbus.ObjectTree (and to make dbus_methods
5849         optional for future extension)
5850         
5851         * python/examples/Makefile.am:
5852         * python/examples/gconf-proxy-service.py:
5853         * python/examples/gconf-proxy-service2.py:
5854
5855         Alternate implementation of gconf-proxy-service using the
5856         nicer dbus.ObjectTree API.
5857         
5858         * python/examples/example-service.py:
5859         * python/tests/test-server.py
5860
5861         Reverse the argument order to deal with dbus.Object constructor
5862         changes.
5863         
5864 2004-05-30  Seth Nickell  <seth@gnome.org>
5865
5866         * python/examples/example-client.py:
5867         * python/examples/example-service.py:
5868
5869         Take it back. Lists seem to work but they're broken
5870         in the test suite. Make the base examples use
5871         lists (works fine).
5872
5873 2004-05-30  Seth Nickell  <seth@gnome.org>
5874
5875         * python/dbus_bindings.pyx.in:
5876         * python/tests/test-client.py:
5877
5878         Add some more tests and fix errors that crop up.
5879         Unfortunately, currently it seems like marshalling
5880         and unmarshalling of lists is completely broken :-(
5881
5882 2004-05-30  Seth Nickell  <seth@gnome.org>
5883
5884         * python/dbus_bindings.pyx.in:
5885
5886         Add support for ObjectPath type.
5887
5888         * python/dbus.py:
5889
5890         Refactor message handling code to a common function.
5891         
5892         * python/tests/test-client.py:
5893         * python/tests/test-server.py:
5894
5895         Add tests that check to make sure values of all types
5896         can be echoed from a service w/o mangling.
5897         
5898 2004-05-29  Seth Nickell  <seth@gnome.org>
5899
5900         * python/dbus.py:
5901
5902         Add ObjectTree class which allows implementation
5903         of trees of "virtual" objects. Basically the python
5904         wrapper for "register_fallback".
5905         
5906         * python/examples/Makefile.am
5907         * python/examples/gconf-proxy-client.py:
5908         * python/examples/gconf-proxy-service.py:
5909
5910         Implement a simple GConf proxy service that supports
5911         get/set on string and int GConf keys using the ObjectTree.
5912         
5913 2004-05-29  Seth Nickell  <seth@gnome.org>
5914
5915         * python/dbus.py:
5916         * python/examples/example-client.py:
5917         * python/examples/example-service.py:
5918         * python/examples/list-system-services.py:
5919
5920         Add SessionBus, SystemBus and ActivationBus classes
5921         so you don't need to know the special little BUS_TYPE
5922         flag.
5923         
5924 2004-05-29  Havoc Pennington  <hp@redhat.com>
5925
5926         * bus/config-parser.c (process_test_valid_subdir): temporarily
5927         stop testing config parser OOM handling, since expat has issues
5928         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
5929
5930         * bus/dbus-daemon-1.1.in: change requested_reply to
5931         send_requested_reply/receive_requested_reply so we can send the
5932         replies, not just receive them.
5933
5934         * bus/config-parser.c: parse the new
5935         send_requested_reply/receive_requested_reply
5936
5937         * bus/policy.c (bus_client_policy_check_can_send): add
5938         requested_reply argument and use it
5939
5940         * bus/bus.c (bus_context_check_security_policy): pass through
5941         requested_reply status to message send check
5942
5943         * bus/system.conf.in: adapt to requested_reply change
5944         
5945 2004-05-28  Havoc Pennington  <hp@redhat.com>
5946
5947         * test/glib/test-service-glib.c (main): remove unused variable
5948
5949         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
5950
5951         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
5952         from the enum, no longer in use.
5953
5954         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
5955         works right.
5956
5957         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
5958         whether error_name passed in is a valid error name.
5959
5960 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
5961
5962         * dbus/dbus-message.c (dbus_message_get_args): Added support for
5963         OBJECT_PATH and OBJECT_PATH_ARRAY
5964
5965 2004-05-28  Seth Nickell  <seth@gnome.org>
5966
5967         * python/examples/Makefile.am:
5968
5969         Forget to add Makefile.am. Do not pass go.
5970
5971 2004-05-28  Michael Meeks  <michael@ximian.com>
5972
5973         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
5974         fix no int64 case.
5975
5976         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
5977
5978         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
5979         (_dbus_message_iter_get_basic_type_array): impl.
5980         drastically simplify ~all relevant _get methods to use these.
5981         (_dbus_message_iter_append_basic_array),
5982         (dbus_message_iter_append_basic): impl
5983         drastically simplify ~all relevant _append methods to use these.
5984
5985         * dbus/dbus-message-builder.c (parse_basic_type) 
5986         (parse_basic_array, lookup_basic_type): impl.
5987         (_dbus_message_data_load): prune scads of duplicate /
5988         cut & paste coding.
5989
5990         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
5991         (_dbus_demarshal_basic_type): implement,
5992         (demarshal_and_validate_len/arg): beef up debug.
5993         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
5994
5995 2004-05-27  Seth Nickell  <seth@gnome.org>
5996
5997         * configure.in:
5998         * python/Makefile.am:
5999
6000         Include the example python apps in the tarball.
6001         
6002         * python/examples/list-system-services.py
6003
6004         Add a python new example that fetches the list of services
6005         from the system bus.
6006         
6007 2004-05-27  Seth Nickell  <seth@gnome.org>
6008
6009         * python/dbus.py:
6010         * python/dbus_bindings.pyx.in:
6011
6012         Fix failure to notify that a signal was not handled,
6013         resulted in hung functions.
6014         
6015 2004-05-25  Colin Walters  <walters@redhat.com>
6016
6017         * tools/dbus-monitor.c (main): Monitor all types of messages.
6018
6019 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6020
6021         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6022         which unregisters the object path and disposes the handler.
6023
6024 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6025  
6026         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6027          
6028         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6029         operands to && so we call dbus_message_iter_next () for the last
6030         argument also.
6031
6032 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6033
6034         * dbus/dbus-object-tree.c
6035         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6036         children even if the requested path isn't registered.
6037         (object_tree_test_iteration): test object_tree_list_registered.
6038
6039         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6040         it to 0.
6041         
6042 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6043
6044         * doc/TODO: Remove resolved items.
6045
6046         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6047         field.
6048         
6049         * bus/connection.c (bus_connections_expect_reply): Enforce the
6050         per-connection limit on pending replies.
6051         
6052         Patch from Jon Trowbridge <trow@ximian.com>:
6053  
6054         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6055         up a watch that triggers a config reload when one end of the pipe
6056         becomes readable.
6057         (signal_handler): Instead of doing the config reload in our SIGHUP
6058         handler, just write to the reload pipe and let the associated
6059         watch handle the reload when control returns to the main loop.
6060  
6061         * bus/driver.c (bus_driver_handle_reload_config): Added.
6062         Implements a ReloadConfig method for requesting a configuration
6063         file reload via the bus driver.
6064  
6065 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6066
6067         * HACKING: Updated release instructions concerning the wiki page.
6068
6069 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6070
6071         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6072         filter against auth->allowed_mechs; we only add allowed mechs in
6073         record_mechanisms().
6074  
6075         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6076         ALLOWED_MECHS to auth-script format so we can set the list of
6077         allowed mechanisms.
6078  
6079         * data/auth/client-out-of-mechanisms.auth-script: New test to
6080         check client disconnects when it is out of mechanisms to try.
6081  
6082         * dbus/dbus-auth.c (process_command): Remove check for lines
6083         longer that 1 MB; we only buffer up maximum 16 kB.
6084  
6085         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6086         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6087         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6088         assume there might be unused bytes.
6089  
6090         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6091         client-out-of-mechs, it is handled in process_reject(). Move check
6092         for max failures to send_rejected(), as it's a server-only thing.
6093
6094         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6095         send_auth(), send_data(), send_rejected(), send_error(),
6096         send_ok(), send_begin() and send_cancel().
6097
6098 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6099
6100         Remove base64 encoding, replace with hex encoding. Original patch
6101         from trow@ximian.com, added error handling.
6102
6103         * dbus/dbus-string.c (_dbus_string_base64_encode)
6104         (_dbus_string_base64_decode): Remove.
6105         (_dbus_string_hex_decode): Add end_return argument so we can
6106         distinguish between OOM and invalid hex encoding.
6107         (_dbus_string_test): Remove base64 tests and add test case for
6108         invalid hex.
6109
6110         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6111         Replace base64 with hex.
6112
6113         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6114         for invalid hex encoded data in auth protocol.
6115
6116 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6117
6118         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6119         leak.
6120
6121 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6122
6123         * mono/dbus-sharp.dll.config.in: Added for GAC
6124         * mono/dbus-sharp.snk: Added for GAC
6125         * mono/Assembly.cs.in: Added for GAC
6126         * mono/Makefile.am: Changes for GAC installation        
6127         * configure.in: Added refs for dbus-sharp.dll.config.in and
6128         Assembly.cs.in. More fixes for mono testing
6129         * mono/example/Makefile.am: Changed var to CSC
6130         * Makefile.am: Changed flag name to DBUS_USE_CSC
6131
6132 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6133
6134         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6135         * mono/doc/*: Added documentation framework
6136         * configure.in: Added monodoc check
6137         * README: Added description of mono configure flags
6138
6139 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6140
6141         * doc/dbus-specification.xml: Added a "Required" column to the 
6142         header fields table and changed the "zero or more" verbage in
6143         the above paragraph to read "The header must contain the required 
6144         named header fields and zero or more of the optional named header 
6145         fields".
6146         * test/data/invalid-messages/*.message: Added the required PATH 
6147         named header field to the tests so that they don't fail on 
6148         'Missing path field'
6149
6150 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6151
6152         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6153         the stack by implicitly defining variable and parameter types and
6154         removing the hack of defining C pointers as python objects and later
6155         casting them.
6156
6157 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6158
6159         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6160
6161 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6162
6163         * mono/DBusType/Dict.cs: Handle empty dicts
6164         * mono/DBusType/Array.cs: Handle empty arrays
6165         * mono/Arguments.cs: Handle empty arguments
6166
6167 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6168
6169         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6170         field
6171
6172 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6173
6174         * test/data/valid-messages/standard-*.message: Update message
6175         test scripts to new header field names.
6176
6177 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6178
6179         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6180         overflow to times_we_did_each_thing array which would chop off the
6181         first character of the failure_dir string. Increased the size of
6182         the array to 7 to reflect the number of random mutation functions
6183         we have.
6184
6185 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6186
6187         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6188         unix_server->watch here, it is unreffed in disconnect.
6189         (_dbus_server_new_for_tcp_socket): convert NULL host to
6190         "localhost" here so we don't append NULL to address.
6191         
6192         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6193         various addresses, including tcp with no explicit host.
6194
6195 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6196
6197         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6198         fix incorrect setting of .name_offset in the HeaderField (it was
6199         off by two bytes, positioned right after the name and typecode)
6200
6201         * bus/bus.c (bus_context_new, bus_context_unref): test before
6202         calling dbus_server_free_data_slot and _dbus_user_database_unref
6203         in case of an error.
6204
6205         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6206         by libdbus-gtool.
6207
6208 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6209
6210         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6211         _dbus_poll() instead of select().
6212
6213 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6214
6215         * bus/main.c (signal_handler): Reload the configuration files
6216         on SIGHUP.
6217         (main): Set up our SIGHUP handler.
6218
6219         * bus/bus.c (struct BusContext): Store the config file, user and
6220         fork flag in the BusContext.
6221         (process_config_first_time_only): Added.  Contains the code
6222         (previously in bus_context_new) for setting up the BusContext from
6223         the BusConfigParser that should only be run the first time the
6224         config files are read.
6225         (process_config_every_time): Added.  Contains the code (previously
6226         in bus_context_new) for setting up the BusContext from the
6227         BusConfigParser that should be run every time the config files are
6228         read.
6229         (load_config): Added.  Builds a BusConfigParser from the config
6230         files and passes the resulting structure off to
6231         process_config_first_time_only (assuming this is the first time)
6232         and process_config_every_time.
6233         (bus_context_new): All of the config-related code has been moved
6234         to process_config_first_time_only and process_config_every_time.
6235         Now this function just does the non-config-related initializations
6236         and calls load_config.
6237         (bus_context_reload_config): Added.
6238
6239 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6240
6241         * bus/driver.c (bus_driver_handle_get_service_owner):
6242         implement a GetServiceOwner method.
6243         * doc/dbus-specification.xml: document it.
6244         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6245         
6246         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6247         implement, using the bus GetServiceOwner method.
6248
6249         * test/glib/test-dbus-glib.c:
6250         use dbus_gproxy_new_for_service_owner so that we can receive the
6251         signal. 
6252
6253 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6254
6255         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6256         dbus/dbus-message.c, dbus/dbus-protocol.h
6257         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6258
6259         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6260         dbus/dbus-message.c, dbus/dbus-protocol.h
6261         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6262
6263         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6264         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6265         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6266
6267         * doc/dbus-specification.xml (Header Fields Table):
6268         s/SERVICE/DESTINATION
6269         s/SENDER_SERVICE/SENDER
6270
6271
6272 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6273
6274         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6275         a few seconds.
6276
6277 2004-04-13  Michael Meeks  <michael@ximian.com>
6278
6279         * glib/dbus-gobject.c (handle_introspect): split out
6280         (introspect_properties): this.
6281         (handle_introspect): implement this.
6282
6283         * test/glib/Makefile.am: use the absolute path so the bus
6284         daemon's chdir ("/") doesn't kill us dead.
6285
6286         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6287
6288 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6289
6290         * bus/config-parser.c (struct BusConfigParser): Added
6291         included_files field.
6292         (seen_include): Added.  Checks whether or not a file has already
6293         been included by any parent BusConfigParser.
6294         (bus_config_parser_new): Copy the parent's included_files.
6295         (include_file): Track which files have been included, and fail on
6296         circular inclusions.
6297         (process_test_valid_subdir): Changed printf to report if we are
6298         testing valid or invalid conf files.
6299         (all_are_equiv): Changed printf to be a bit clearer about
6300         what we are actually doing.
6301         (bus_config_parser_test): Test invalid configuration files.
6302
6303 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6304
6305         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6306         argument.  If non-null, the newly-constructed BusConfigParser will
6307         be initialized with the parent's BusLimits instead of the default
6308         values.
6309         (include_file): When including a config file, pass in
6310         the current parser as the parent and then copy the BusLimits
6311         from the included BusConfigParser pack to the current parser.
6312         (process_test_valid_subdir): Renamed from process_test_subdir.
6313         (process_test_equiv_subdir): Added.  Walks through a directory,
6314         descending into each subdirectory and loading the config files
6315         it finds there.  If any subdirectory contains two config files
6316         that don't produce identical BusConfigParser structs, fail.
6317         For now, the BusConfigParser's BusPolicies are not compared.
6318         (bus_config_parser_test): Call both process_test_valid_subdir and
6319         process_test_equiv_subdir.
6320
6321         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6322         argument and pass it along to the call to bus_config_parser_new.
6323         Also made a few small changes to allow this code to compile.
6324
6325         * bus/config-loader-expat.c (bus_config_load): Take a parent
6326         argument and pass it along to the call to bus_config_parser_new.
6327
6328         * bus/bus.c (bus_context_new): Load the config file
6329         with a NULL parent argument.
6330
6331 2004-03-29  Michael Meeks  <michael@ximian.com>
6332
6333         * glib/dbus-gobject.c (introspect_properties): split
6334         out, fix mangled 'while' flow control.
6335         (introspect_signals): implement.
6336         (handle_introspect): update.
6337
6338 2004-03-29  Michael Meeks  <michael@ximian.com>
6339
6340         * glib/dbus-gobject.c (set_object_property): split out / 
6341         re-work, use the property type, and not the message type(!)
6342         (get_object_property): ditto.
6343
6344         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6345         (dbus_gvalue_marshal): make this code re-usable, needed
6346         for signals too, also on both proxy and server side.
6347         Re-write for more efficiency / readability.
6348
6349 2004-03-29  Michael Meeks  <michael@ximian.com>
6350
6351         * dbus/dbus-message.c
6352         (dbus_message_new_error_printf): impl.
6353
6354         * dbus/dbus-connection.c
6355         (dbus_connection_unregister_object_path): fix warning.
6356
6357         * configure.in: fix no-mono-installed situation.
6358
6359 2004-03-27  Havoc Pennington  <hp@redhat.com>
6360
6361         Patch from Timo Teräs:
6362         
6363         * tools/dbus-send.c (main): if --print-reply, assume type is
6364         method call; support boolean type args
6365         
6366         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6367         bunch of memleak and logic bugs
6368         
6369 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6370
6371         * mono/Arguments.cs:
6372         * mono/Introspector.cs:
6373         * mono/Handler.cs:
6374         * mono/InterfaceProxy.cs:
6375         * mono/Message.cs
6376         * mono/ProxyBuilder.cs:
6377         * mono/Service.cs:
6378         Added InterfaceProxy class to avoid building proxies for every
6379         object.
6380
6381         * dbus-message.h:
6382         * dbus-message.c (dbus_message_append_args_valist)
6383         (dbus_message_iter_get_object_path)
6384         (dbus_message_iter_get_object_path_array)
6385         (dbus_message_iter_append_object_path)
6386         (dbus_message_iter_append_object_path_array):
6387         Added object_path iter functions to handle OBJECT_PATH arguments
6388         
6389 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6390
6391         First checkin of mono bindings.
6392         * configure.in:
6393         * Makefile.am:
6394         Build stuff for the bindings
6395         * dbus-sharp.pc.in: Added for pkgconfig
6396         
6397 2004-03-21  Havoc Pennington  <hp@redhat.com>
6398
6399         * test/test-service.c (main): remove debug spew
6400
6401 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6402
6403         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6404         arrays
6405
6406         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6407         (dbus_message_iter_init_array_iterator)
6408         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6409         indicate whether the iterator is empty
6410
6411         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6412         warnings
6413
6414 2004-03-19  Havoc Pennington  <hp@redhat.com>
6415
6416         * NEWS: 0.21 updates
6417
6418         * configure.in: 0.21
6419
6420         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6421         
6422         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6423         you don't need pyrex to make dist
6424
6425         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6426         sources; run moc
6427         
6428 2004-03-18  Richard Hult  <richard@imendio.com>
6429
6430         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6431         (dbus_message_set_auto_activation): Add doxygen docs.
6432
6433 2004-03-16  Richard Hult  <richard@imendio.com>
6434
6435         * bus/activation.c: (bus_activation_service_created),
6436         (bus_activation_send_pending_auto_activation_messages),
6437         (bus_activation_activate_service):
6438         * bus/activation.h:
6439         * bus/dispatch.c: (bus_dispatch),
6440         (check_nonexistent_service_auto_activation),
6441         (check_service_auto_activated),
6442         (check_segfault_service_auto_activation),
6443         (check_existent_service_auto_activation), (bus_dispatch_test):
6444         * bus/driver.c: (bus_driver_handle_activate_service):
6445         * bus/services.c: (bus_registry_acquire_service):
6446         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6447         (dbus_message_get_auto_activation):
6448         * dbus/dbus-message.h:
6449         * dbus/dbus-protocol.h: Implement auto-activation.
6450         
6451         * doc/dbus-specification.xml: Add auto-activation to the spec.
6452
6453 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6454
6455         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6456         fix a bug with CUSTOM types.
6457
6458         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6459         a unit test for this bug (used to fail).
6460
6461 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6462
6463         * bus/activation.c:
6464         (babysitter_watch_callback): notify all pending activations waiting for
6465           the same exec that the activation failed.
6466         (bus_activation_activate_service): shortcut the activation if we 
6467           already waiting for the same executable to start up.
6468
6469 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6470
6471         * bus/activation.c: 
6472         - Added service file reloading. 
6473           Each service files directory is kept in an hash table in 
6474           BusActivation and each BusActivationEntry knows what .service-file it
6475           was read from. So when you try to activate a service the bus will 
6476           check if it's been updated, removed or if new .service-files has 
6477           been installed.
6478         - Test code at the bottom for the service file reloading.
6479         * bus/test-main.c: (main):
6480         * bus/test.h:
6481         - added service reloading test.
6482         * dbus/dbus-sysdeps.c: 
6483         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6484
6485 2004-03-08  Michael Meeks  <michael@ximian.com>
6486
6487         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6488         bail immediately if disconnected, to avoid busy loop.
6489
6490         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6491         cleanup cut/paste/inefficiency.
6492
6493 2004-03-01  David Zeuthen  <david@fubar.dk>
6494
6495         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6496         bug where args were used twice. This bug resulted in a segfault
6497         on a Debian/PPC system when starting the messagebus daemon. Include
6498         dbus-sysdeps.h for DBUS_VA_COPY
6499
6500         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6501
6502         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6503         appropriate va_copy implementation. From GLib
6504         
6505 2004-02-24  Joe Shaw  <joe@ximian.com>
6506
6507         * bus/services.c (bus_registry_acquire_service): We need to pass
6508         in the service name to dbus_set_error() to prevent a crash.
6509
6510 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6511
6512         * AUTHORS: Reveal my True identity.
6513
6514 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6515
6516         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6517         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6518
6519 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6520
6521         * doc/TODO: Added not about better error check of configuration files.
6522
6523 2003-12-02  Richard Hult  <richard@imendio.com>
6524
6525         * Update AFL version to 2.0 throughout the source files to reflect
6526         the update that was done a while ago.
6527
6528 2003-12-02  Richard Hult  <richard@imendio.com>
6529
6530         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6531         wrote_dict_key to FALSE on the iter that the dict is appended to,
6532         just like when appending other types. Fixes a bug where a dict
6533         couldn't be put inside a dict.
6534         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6535         (message_iter_test, _dbus_message_test): Add test case for dict
6536         inside dict.
6537
6538 2003-12-01  David Zeuthen  <david@fubar.dk>
6539
6540         * python/dbus.py: Add the actual message when calling the reciever
6541         of a signal such that parameters can be inspected. Add the method
6542         remove_signal_receiver
6543         
6544 2003-11-26  Mikael Hallendal  <micke@imendio.com>
6545
6546         * bus/*.[ch]:
6547         * dbus/*.[ch]:
6548         * glib/*.[ch]: Made ref functions return the pointer
6549
6550 2003-11-25  Zack Rusin  <zack@kde.org>
6551
6552         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6553
6554         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
6555         wrappers,
6556
6557         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
6558         the Integrator and to better fit with the server,
6559
6560 2003-11-24  Zack Rusin  <zack@kde.org>
6561
6562         * qt/connection.h, qt/connection.cpp: removing initDbus method since
6563         the integrator handles it now
6564
6565         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6566         since QTimer wasn't really meant to be used the way DBusTimeout is
6567
6568 2003-11-24  Zack Rusin  <zack@kde.org>
6569
6570         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
6571         Integrator class which integrates D-BUS with the Qt event loop,
6572
6573         * qt/connection.h, qt/connection.cpp: Move all the code which
6574         was dealing with D-BUS integration to the Integrator class,
6575         and start using Integrator,
6576
6577 2003-11-23  Zack Rusin  <zack@kde.org>
6578
6579         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
6580         wrapper
6581
6582         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6583         switching namespaces to DBusQt, reworking the class,
6584
6585         * Makefile.cvs: switching dependencies so that it matches KDE 
6586         schematics,
6587         
6588         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
6589         the library
6590
6591 2003-11-19  Havoc Pennington  <hp@redhat.com>
6592
6593         * NEWS: update
6594
6595         * configure.in: bump version to 0.20
6596
6597         * configure.in (have_qt): add yet another place to look for qt
6598         (someone hand trolltech a .pc file...)
6599
6600 2003-11-01  Havoc Pennington  <hp@redhat.com>
6601
6602         * doc/dbus-specification.xml: add state machine docs on the auth
6603         protocol; just a first draft, I'm sure it's wrong.      
6604
6605 2003-10-28  David Zeuthen  <david@fubar.dk>
6606
6607         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6608         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6609         
6610 2003-10-28  Havoc Pennington  <hp@redhat.com>
6611
6612         * dbus/dbus-message.c (get_next_field): delete unused function
6613
6614 2003-10-28  Havoc Pennington  <hp@redhat.com>
6615
6616         * bus/expirelist.c (do_expiration_with_current_time): detect
6617         failure of the expire_func due to OOM
6618
6619         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6620
6621         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6622         NoReply error that's now created by the bus when the service exits
6623
6624 2003-10-28  Havoc Pennington  <hp@redhat.com>
6625
6626         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6627         tests for set_path, set_interface, set_member, etc.
6628
6629         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6630
6631         * dbus/dbus-message.c (set_string_field): always just delete and
6632         re-append the field; accept NULL for deletion
6633         (re_align_fields_recurse): reimplement
6634         
6635 2003-10-26  Havoc Pennington  <hp@redhat.com>
6636
6637         * dbus/dbus-connection.c: fix docs to properly describe the
6638         disconnected message
6639         (_dbus_connection_notify_disconnected): remove this function; 
6640         we can't synchronously add the disconnected message, we have to 
6641         do it after we've queued any remaining real messages
6642         (_dbus_connection_get_dispatch_status_unlocked): queue the
6643         disconnect message only if the transport has finished queueing all
6644         its real messages and is disconnected.
6645         (dbus_connection_disconnect): update the dispatch status here
6646
6647 2003-10-22  Havoc Pennington  <hp@redhat.com>
6648
6649         * bus/bus.c (bus_context_check_security_policy): fix up assertion
6650
6651         * bus/connection.c (bus_transaction_send_from_driver): set the
6652         destination to the connection's base service
6653
6654 2003-10-20  Havoc Pennington  <hp@redhat.com>
6655
6656         hmm, make check is currently not passing.
6657         
6658         * doc/dbus-specification.xml: add requirement that custom type
6659         names follow the same rules as interface names.
6660
6661         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6662         duplication and allow 'c' to be 'custom'; dict is now 'm' for
6663         'map'
6664
6665         * doc/dbus-specification.xml: update type codes to match
6666         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6667         CUSTOM. Add type OBJECT_PATH to the spec.
6668
6669 2003-10-17  Havoc Pennington  <hp@redhat.com>
6670
6671         * bus/driver.c (create_unique_client_name): use "." as separator
6672         in base service names instead of '-'
6673
6674         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6675         byte at the end of the string
6676
6677         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6678         optimization macros since string validation seems to be a slow
6679         point.
6680         
6681         * doc/dbus-specification.xml: restrict valid
6682         service/interface/member/error names. Add test suite code for the
6683         name validation.
6684
6685         * dbus/dbus-string.c: limit service/interface/member/error names 
6686         to [0-9][A-Z][a-z]_
6687
6688         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6689         format arg to verbose spew
6690
6691         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6692         memory, return instead of g_error
6693
6694         * test/test-service.c (path_message_func): support emitting a
6695         signal on request
6696
6697         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6698         activation bus type if DBUS_BUS_ACTIVATION was set; default to
6699         assuming the activation bus was the session bus so that services
6700         started manually will still register.
6701         (init_connections_unlocked): fix so that in OOM situation we get
6702         the same semantics when retrying the function
6703         
6704         * test/test-service.c (main): change to use path registration, to
6705         test those codepaths; register with DBUS_BUS_ACTIVATION rather
6706         than DBUS_BUS_SESSION
6707
6708 2003-10-16  Havoc Pennington  <hp@redhat.com>
6709
6710         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6711
6712         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6713         coverage of the tests
6714         (coverage-report.txt): don't move the .da and .bbg files around
6715
6716 2003-10-16  Havoc Pennington  <hp@redhat.com>
6717
6718         * bus/bus.c (struct BusContext): remove struct field I didn't mean
6719         to put there
6720
6721 2003-10-16  Havoc Pennington  <hp@redhat.com>
6722
6723         * bus/connection.c (bus_pending_reply_expired): either cancel or
6724         execute, not both
6725         (bus_connections_check_reply): use unlink, not remove_link, as we
6726         don't want to free the link; fixes double free mess
6727
6728         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6729         where no reply was received
6730
6731         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6732         fix a refcount leak
6733
6734         * bus/signals.c (match_rule_matches): add special cases for the
6735         bus driver, so you can match on sender/destination for it.
6736
6737         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6738         DBUS_PRINT_BACKTRACE is set
6739
6740         * dbus/dbus-internals.c: add pid to assertion failure messages
6741
6742         * dbus/dbus-connection.c: add message type code to the debug spew
6743
6744         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6745         sender=foo not service=foo
6746
6747         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6748         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
6749         DBUS_ACTIVATION_ADDRESS instead
6750
6751         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6752         DBUS_SYSTEM_BUS_ADDRESS if appropriate
6753
6754         * bus/bus.c (bus_context_new): handle OOM copying bus type into
6755         context struct
6756
6757         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6758         (dbus_message_iter_get_object_path_array): new function (half
6759         finished, disabled for the moment)
6760         
6761         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6762         DBUS_MESSAGE_TYPE_ERROR
6763
6764         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6765         avoid redirecting stderr to /dev/null
6766         (babysit): close stdin if not doing the "exit_with_session" thing
6767
6768         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6769         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6770         stdout/stdin, so things don't get confused
6771         
6772         * bus/system.conf.in: fix to allow replies, I modified .conf
6773         instead of .conf.in again.
6774
6775 2003-10-14  David Zeuthen  <david@fubar.dk>
6776
6777         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6778         argtype to arg_type when raising unknown arg type exception.
6779         Changed type list to reflect the changes in dbus-protocol.h so 
6780         the bindings actually work.
6781
6782 2003-10-14  Havoc Pennington  <hp@redhat.com>
6783
6784         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6785         to have a bug keeping it from outputting the .da files sometimes
6786         (string_get_string): don't append garbage nul bytes to the string.
6787
6788 2003-10-15  Seth Nickell  <seth@gnome.org>
6789
6790         * python/Makefile.am:
6791
6792         Include dbus_h_wrapper.h in the dist tarball.
6793
6794 2003-10-14  Havoc Pennington  <hp@redhat.com>
6795
6796         * bus/bus.c (bus_context_check_security_policy): revamp this to
6797         work more sanely with new policy-based requested reply setup
6798
6799         * bus/connection.c (bus_transaction_send_from_driver): set bus
6800         driver messages as no reply
6801
6802         * bus/policy.c (bus_client_policy_check_can_receive): handle a
6803         requested_reply attribute on allow/deny rules
6804
6805         * bus/system.conf: add <allow requested_reply="true"/>
6806
6807         * bus/driver.c (bus_driver_handle_message): fix check for replies
6808         sent to the bus driver, which was backward. How did this ever work
6809         at all though? I think I'm missing something.
6810
6811         * dbus/dbus-message.c (decode_header_data): require error and
6812         method return messages to have a reply serial field to be valid
6813         (_dbus_message_loader_queue_messages): break up this function;
6814         validate that reply serial and plain serial are nonzero; 
6815         clean up the OOM/error handling.
6816         (get_uint_field): don't return -1 from this
6817         (dbus_message_create_header): fix signed/unsigned bug
6818
6819         * bus/connection.c (bus_connections_expect_reply): save serial of
6820         the incoming message, not reply serial
6821
6822 2003-10-14  Havoc Pennington  <hp@redhat.com>
6823
6824         * bus/connection.c: implement pending reply tracking using
6825         BusExpireList
6826
6827         * bus/bus.c (bus_context_check_security_policy): verify that a
6828         reply is pending in order to allow a reply to be sent. Deny 
6829         messages of unknown type.
6830
6831         * bus/dbus-daemon-1.1.in: update to mention new resource limits
6832
6833         * bus/bus.c (bus_context_get_max_replies_per_connection): new
6834         (bus_context_get_reply_timeout): new
6835
6836 2003-10-13  Seth Nickell  <seth@gnome.org>
6837
6838         * python/Makefile.am:
6839
6840         Pass "make distcheck": remove a couple files from DIST_FILES
6841         that weren't included in the final version.
6842
6843 2003-10-12  Havoc Pennington  <hp@pobox.com>
6844
6845         Added test code that 1) starts an actual bus daemon and 2) uses
6846         DBusGProxy; fixed bugs that were revealed by the test. Lots 
6847         more testing possible, but this is the basic framework.
6848         
6849         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
6850         empty proxy lists from the proxy list hash
6851
6852         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
6853         couple of return_if_fail checks
6854
6855         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
6856         to allocate, so everything is cleared to NULL as it should be.
6857
6858         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
6859         source as data to dbus_connection_set_timeout_functions() as the 
6860         timeout functions expected
6861
6862         * test/glib/run-test.sh: add a little script to start up a message
6863         bus and run tests using it
6864
6865         * tools/dbus-launch.1: updates
6866
6867         * tools/dbus-launch.c (main): add --config-file option
6868
6869         * tools/dbus-launch.c (main): remove confusing else if (runprog)
6870         that could never be reached.
6871
6872         * dbus/dbus-message.c (dbus_message_new_method_return) 
6873         (dbus_message_new_error, dbus_message_new_signal): set the
6874         no-reply-expected flag on all these. Redundant, but may
6875         as well be consistent.
6876
6877 2003-10-11  Havoc Pennington  <hp@pobox.com>
6878
6879         * test/decode-gcov.c (function_solve_graph): make broken block
6880         graph a nonfatal error since it seems to be broken. Need to debug
6881         this.
6882
6883         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
6884         can't just check type > INVALID < LAST anymore
6885
6886         * dbus/dbus-message.c (dbus_message_get_signature): new function
6887         (dbus_message_has_signature): new function
6888         (struct DBusMessage): add signature field (right now it isn't sent
6889         over the wire, just generated on the fly)
6890         (dbus_message_copy): copy the signature, and init strings to
6891         proper length to avoid some reallocs
6892         (dbus_message_iter_init_array_iterator): return void, since it
6893         can't fail
6894         (dbus_message_iter_init_dict_iterator): return void since it can't fail
6895         (_dbus_message_loader_queue_messages): add silly temporary hack to
6896         fill in message->signature on load
6897
6898         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
6899         characters, so they are relatively human-readable.
6900
6901 2003-10-11  Havoc Pennington  <hp@pobox.com>
6902
6903         * dbus/dbus-message.c (_dbus_message_test): add more test
6904         coverage, but #if 0 for now since they uncover a bug 
6905         not fixed yet; I think in re_align_field_recurse()
6906         (re_align_field_recurse): add FIXME about broken assertion
6907
6908         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
6909
6910         * bus/connection.c: share a couple code bits with expirelist.c
6911
6912         * bus/expirelist.h, bus/expirelist.c: implement a generic
6913         expire-items-after-N-seconds facility, was going to share between
6914         expiring connections and replies, decided not to use for expiring
6915         connections for now.
6916
6917         * COPYING: include AFL 2.0 (still need to change all the file headers)
6918
6919 2003-10-09  Havoc Pennington  <hp@redhat.com>
6920
6921         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
6922         gcc 3.3. Not that we do anything about it yet.
6923
6924         * bus/signals.c (bus_match_rule_parse): impose max length on the
6925         match rule text
6926
6927         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
6928
6929 2003-10-09  Havoc Pennington  <hp@redhat.com>
6930
6931         Make matching rules theoretically work (add parser).
6932         
6933         * bus/bus.c (bus_context_check_security_policy): fix up to handle
6934         the case where destination is explicitly specified as bus driver
6935         and someone else is eavesdropping.
6936         
6937         * bus/policy.c (bus_client_policy_check_can_receive): fix up
6938         definition of eavesdropping and assertion
6939
6940         * tools/dbus-send.c (main): use dbus_message_type_from_string
6941
6942         * bus/signals.c (bus_match_rule_parse): implement
6943
6944         * dbus/dbus-message.c (dbus_message_type_from_string): new
6945
6946         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
6947
6948 2003-10-02  Havoc Pennington  <hp@pobox.com>
6949
6950         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
6951         dbus_gproxy_oneway_call
6952
6953         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
6954         (dbus_server_setup_with_g_main): fix to allow calling them more
6955         than once on the same args
6956         (dbus_bus_get_with_g_main): new function
6957
6958 2003-10-02  Havoc Pennington  <hp@redhat.com>
6959
6960         * doc/dbus-tutorial.xml: write some stuff
6961
6962 2003-09-29  Havoc Pennington  <hp@pobox.com>
6963
6964         * configure.in: split checks for Doxygen from XML docs, check for
6965         xmlto
6966
6967         * doc/Makefile.am: XML-ify all the docs, and add a blank
6968         dbus-tutorial.xml
6969
6970 2003-09-29  Havoc Pennington  <hp@pobox.com>
6971
6972         * Merge dbus-object-names branch. To see the entire patch 
6973         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
6974         it's huuuuge though.
6975         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
6976         
6977 2003-09-28  Havoc Pennington  <hp@pobox.com>
6978
6979         * HACKING: update to reflect new server
6980
6981 2003-09-26  Seth Nickell  <seth@gnome.org>
6982
6983         * python/dbus.py:
6984         * python/examples/example-signals.py:
6985
6986         Start implementing some notions of signals. The API
6987         is really terrible, but they sort of work (with the
6988         exception of being able to filter by service, and to
6989         transmit signals *as* a particular service). Need to
6990         figure out how to make messages come from the service
6991         we registered :-(
6992         
6993         * python/dbus_bindings.pyx.in:
6994
6995         Removed duplicate message_handler callbacks.
6996         
6997 2003-09-25  Havoc Pennington  <hp@redhat.com>
6998
6999         * bus/session.conf.in: fix my mess
7000
7001 2003-09-25  Havoc Pennington  <hp@pobox.com>
7002
7003         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7004
7005 2003-09-25  Seth Nickell  <seth@gnome.org>
7006
7007         * python/examples/example-service.py:
7008
7009         Johan notices complete wrong code in example-service, but
7010         completely wrong in a way that works exactly the same (!).
7011         Johan is confused, how could this possibly work? Example
7012         code fails to serve purpose of making things clear.
7013         Seth fixes.
7014
7015 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7016
7017         * doc/dbus-specification.sgml: don't require header fields
7018         to be 4-byte aligned and specify that fields should be
7019         distinguished from padding by the fact that zero is not
7020         a valid field name.
7021         
7022         * doc/TODO: remove re-alignment item and add item to doc
7023         the OBJECT_PATH type.
7024         
7025         * dbus/dbus-message.c:
7026         (HeaderField): rename the original member to value_offset
7027         and introduce a name_offset member to keep track of where
7028         the field actually begins.
7029         (adjust_field_offsets): remove.
7030         (append_int_field), (append_uint_field),
7031         (append_string_field): don't align the start of the header
7032         field to a 4-byte boundary.
7033         (get_next_field): impl finding the next marhsalled field
7034         after a given field.
7035         (re_align_field_recurse): impl re-aligning a number of
7036         already marshalled fields.
7037         (delete_field): impl deleting a field of any type and
7038         re-aligning any following fields.
7039         (delete_int_or_uint_field), (delete_string_field): remove.
7040         (set_int_field), (set_uint_field): no need to re-check
7041         that we have the correct type for the field.
7042         (set_string_field): ditto and impl re-aligning any
7043         following fields.
7044         (decode_header_data): update to take into account that
7045         the fields aren't 4-byte aligned any more and the new
7046         way to distinguish padding from header fields. Also,
7047         don't exit when there is too much header padding.
7048         (process_test_subdir): print the directory.
7049         (_dbus_message_test): add test to make sure a following
7050         field is re-aligned correctly after field deletion.
7051         
7052         * dbus/dbus-string.[ch]:
7053         (_dbus_string_insert_bytes): rename from insert_byte and
7054         allow the insert of multiple bytes.
7055         (_dbus_string_test): test inserting multiple bytes.
7056
7057         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7058         warning note to docs about having to re-align any
7059         marshalled values following the string.
7060         
7061         * dbus/dbus-message-builder.c:
7062         (append_string_field), (_dbus_message_data_load):
7063         don't align the header field.
7064         
7065         * dbus/dbus-auth.c: (process_test_subdir): print the
7066         directory.
7067         
7068         * test/break-loader.c: (randomly_add_one_byte): upd. for
7069         insert_byte change.
7070         
7071         * test/data/invalid-messages/bad-header-field-alignment.message:
7072         new test case.
7073         
7074         * test/data/valid-messages/unknown-header-field.message: shove
7075         a dict in the unknown field.
7076
7077 2003-09-25  Seth Nickell  <seth@gnome.org>
7078
7079         * python/dbus.py:
7080         * python/dbus_bindings.pyx.in:
7081
7082         Handle return values.
7083         
7084         * python/examples/example-client.py:
7085         * python/examples/example-service.py:
7086
7087         Pass back return values from the service to the client.
7088         
7089 2003-09-24  Seth Nickell  <seth@gnome.org>
7090
7091         * python/dbus.py:
7092
7093         Connect Object methods (when you are sharing an object) up... pass
7094         in a list of methods to be shared. Sharing all the methods just
7095         worked out too weird. You can now create nice Services over the
7096         DBus in Python. :-)
7097         
7098         * python/dbus_bindings.pyx.in:
7099
7100         Keep references to user_data tuples passed into C functions so 
7101         Python doesn't garbage collect on us.
7102
7103         Implement MethodReturn and Error subclasses of Message for creating
7104         DBusMessage's of those types.
7105         
7106         * python/examples/example-client.py:
7107         * python/examples/example-service.py:
7108
7109         Simple example code showing both how create DBus services and objects,
7110         and how to use them.
7111
7112 2003-09-23  Havoc Pennington  <hp@pobox.com>
7113
7114         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7115
7116 2003-09-23  Havoc Pennington  <hp@redhat.com>
7117
7118         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7119         (dbus_gproxy_disconnect_signal): implement
7120         (dbus_gproxy_manager_remove_signal_match): implement
7121         (dbus_gproxy_manager_add_signal_match): implement
7122         (dbus_gproxy_oneway_call): implement
7123
7124 2003-09-23  Havoc Pennington  <hp@pobox.com>
7125
7126         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7127         subclass. This means dropping the transparent thread safety of the
7128         proxy; you now need a separate proxy per-thread, or your own
7129         locking on the proxy. Probably right anyway.
7130         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7131
7132 2003-09-22  Havoc Pennington  <hp@redhat.com>
7133
7134         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7135
7136 2003-09-21  Seth Nickell  <seth@gnome.org>
7137
7138         First checkin of the Python bindings.
7139         
7140         * python/.cvsignore:
7141         * python/Makefile.am:
7142         * python/dbus_bindings.pyx.in:
7143         * python/dbus_h_wrapper.h:
7144
7145         Pieces for Pyrex to operate on, building a dbus_bindings.so
7146         python module for low-level access to the DBus APIs.
7147         
7148         * python/dbus.py:
7149
7150         High-level Python module for accessing DBus objects.
7151
7152         * configure.in:
7153         * Makefile.am:
7154
7155         Build stuff for the python bindings.
7156
7157         * acinclude.m4:
7158
7159         Extra macro needed for finding the Python C header files.
7160
7161 2003-09-21  Havoc Pennington  <hp@pobox.com>
7162
7163         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7164         implementing the proxy manager, didn't get very far.
7165
7166         * dbus/dbus-bus.c (dbus_bus_add_match): new
7167         (dbus_bus_remove_match): new
7168
7169         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7170         path_name argument; adjust the other not-yet-implemented 
7171         gproxy constructors to be what I think they should be.
7172
7173 2003-09-21  Havoc Pennington  <hp@pobox.com>
7174
7175         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7176         by default for message bus connections.
7177
7178         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7179         exit_on_disconnect flag is set and we process the disconnected
7180         signal.
7181         (dbus_connection_set_exit_on_disconnect): new function
7182
7183 2003-09-21  Havoc Pennington  <hp@pobox.com>
7184
7185         Get matching rules mostly working in the bus; only actually
7186         parsing the rule text remains. However, the client side of
7187         "signal connections" hasn't been started, this patch is only the
7188         bus side.
7189         
7190         * dbus/dispatch.c: fix for the matching rules changes
7191         
7192         * bus/driver.c (bus_driver_handle_remove_match)
7193         (bus_driver_handle_add_match): send an ack reply from these
7194         method calls
7195
7196         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7197         arguments, reported by Seth Nickell
7198
7199         * bus/config-parser.c (append_rule_from_element): support
7200         eavesdrop=true|false attribute on policies so match rules 
7201         can be prevented from snooping on the system bus.
7202
7203         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7204         and "destination" in attribute names; fix some docs bugs; 
7205         add eavesdrop=true|false attribute
7206
7207         * bus/driver.c (bus_driver_handle_add_match)
7208         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7209         messages
7210
7211         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7212         rid of broadcast service concept, signals are just always broadcast
7213
7214         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7215         mostly implement matching rules stuff (currently only exposed as signal
7216         connections)
7217
7218 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7219
7220         * doc/dbus-specification.sgml: Change the header field name
7221         to be an enum and update the rest of the spec to reference
7222         the fields using the conventinal name.
7223
7224         * dbus/dbus-protocol.h: update to reflect the spec.
7225
7226         * doc/TODO: add item to remove the 4 byte alignment requirement.
7227         
7228         * dbus/dbus-message.c: Remove the code to generalise the
7229         header/body length and serial number header fields as named
7230         header fields so we can reference field names using the 
7231         protocol values.
7232         (append_int_field), (append_uint_field), (append_string_field):
7233         Append the field name as a byte rather than four chars.
7234         (delete_int_or_uint_field), (delete_string_field): reflect the
7235         fact that the field name and typecode now occupy 4 bytes instead
7236         of 8.
7237         (decode_string_field), (decode_header_data): update to reflect
7238         protocol changes and move the field specific encoding from
7239         decode_string_field() back into decode_header_data().
7240         
7241         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7242         Add utility to aid debugging.
7243         
7244         * dbus/dbus-message-builder.c:
7245         (append_string_field), (_dbus_message_data_load): Update to
7246         reflect protocol changes; Change the FIELD_NAME directive
7247         to HEADER_FIELD and allow it to take the field's conventional
7248         name rather than the actual value.
7249         
7250         * test/data/*/*.message: Update to use HEADER_FIELD instead
7251         of FIELD_NAME; Always align the header on an 8 byte boundary
7252         *before* updating the header length.
7253
7254 2003-09-15  Havoc Pennington  <hp@pobox.com>
7255
7256         * dbus/dbus-pending-call.c: add the get/set object data
7257         boilerplate as for DBusConnection, etc. Use generic object data
7258         for the notify callback.
7259
7260         * glib/dbus-gparser.c (parse_node): parse child nodes
7261
7262         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7263         
7264         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7265         contain functions shared between the convenience lib and the
7266         installed lib
7267
7268         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7269         -export-symbols-regex to the GLib library
7270
7271         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7272         fix the locking in here, and add a default handler for
7273         Introspect() that just returns sub-nodes.
7274
7275 2003-09-14  Havoc Pennington  <hp@pobox.com>
7276
7277         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7278         rather than gfoo consistent
7279
7280         * glib/dbus-gproxy.h: delete for now, move contents to
7281         dbus-glib.h, because the include files don't work right since we
7282         aren't in the dbus/ subdir.
7283         
7284         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7285         (dbus_gproxy_end_call): finish
7286         (dbus_gproxy_begin_call): finish
7287
7288         * glib/dbus-gmain.c (dbus_set_g_error): new
7289
7290         * glib/dbus-gobject.c (handle_introspect): include information
7291         about child nodes in the introspection
7292
7293         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7294         function to help in implementation of introspection
7295
7296         * dbus/dbus-object-tree.c
7297         (_dbus_object_tree_list_registered_and_unlock): new function
7298
7299 2003-09-12  Havoc Pennington  <hp@pobox.com>
7300
7301         * glib/dbus-gidl.h: add common base class for all the foo_info
7302         types
7303
7304         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7305         similar to kdcop
7306
7307         * test/Makefile.am: try test srcdir -ef . in addition to test
7308         srcdir = ., one of them should work (yeah lame)
7309         
7310         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7311         library
7312         
7313         * glib/dbus-gparser.h: make description_load routines return
7314         NodeInfo* not Parser*
7315
7316         * Makefile.am (SUBDIRS): build test dir after all library dirs
7317
7318         * configure.in: add GTK+ detection
7319
7320 2003-09-07  Havoc Pennington  <hp@pobox.com>
7321
7322         * Make Doxygen contented.
7323
7324 2003-09-07  Havoc Pennington  <hp@pobox.com>
7325
7326         * doc/dbus-specification.sgml: more updates
7327
7328 2003-09-06  Havoc Pennington  <hp@pobox.com>
7329
7330         * doc/dbus-specification.sgml: partial updates
7331
7332         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7333         zillionth time; hopefully I edited the right file this time.
7334
7335         * bus/config-parser.c (append_rule_from_element): support
7336         send_type, send_path, receive_type, receive_path
7337
7338         * bus/policy.c: add message type and path to the list of things
7339         that can be "firewalled"
7340
7341 2003-09-06  Havoc Pennington  <hp@pobox.com>
7342
7343         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7344         (dbus_connection_register_object_path): make this not handle
7345         messages to paths below the given path
7346
7347 2003-09-03  Havoc Pennington  <hp@pobox.com>
7348
7349         * test/glib/Makefile.am: add this with random glib-linked test
7350         programs
7351
7352         * glib/Makefile.am: remove the random test programs from here,
7353         leave only the unit tests
7354
7355         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7356         uscore/javacaps conversion, and fix     
7357         (get_object_property, set_object_property): change to .NET
7358         convention for mapping props to methods, set_FooBar/get_FooBar, 
7359         since one language has such a convention we may as well copy it. 
7360         Plus real methods in either getFooBar or get_foo_bar style won't 
7361         collide with this convention.
7362
7363 2003-09-01  Havoc Pennington  <hp@pobox.com>
7364
7365         * glib/dbus-gparser.c: implement
7366
7367         * glib/dbus-gobject.c: start implementing skeletons support
7368
7369         * configure.in: when disabling checks/assert, also define
7370         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7371
7372 2003-09-01  Havoc Pennington  <hp@pobox.com>
7373
7374         * glib/Makefile.am: rearrange a bunch of files and get "make
7375         check" framework set up
7376
7377 2003-08-31  Havoc Pennington  <hp@pobox.com>
7378
7379         * fix build with --disable-tests
7380
7381 2003-08-30  Havoc Pennington  <hp@pobox.com>
7382
7383         * dbus/dbus-connection.c: purge DBusMessageHandler
7384
7385         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7386         use callbacks everywhere
7387
7388 2003-08-30  Havoc Pennington  <hp@pobox.com>
7389
7390         * test/data/valid-config-files/system.d/test.conf: change to 
7391         root for the user so warnings don't get printed
7392
7393         * dbus/dbus-message.c: add dbus_message_get_path,
7394         dbus_message_set_path
7395         
7396         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7397         dispatching to a path
7398
7399         * dbus/dbus-string.c (_dbus_string_validate_path): add
7400
7401         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7402         (_dbus_marshal_object_path): implement
7403
7404         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7405         to contain the path to the target object
7406         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7407         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7408
7409 2003-08-30  Havoc Pennington  <hp@pobox.com>
7410
7411         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7412
7413 2003-08-29  Havoc Pennington  <hp@pobox.com>
7414
7415         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7416         registered
7417         (struct DBusObjectSubtree): shrink this
7418         a lot, since we may have a lot of them
7419         (_dbus_object_tree_free_all_unlocked): implement
7420         (_dbus_object_tree_dispatch_and_unlock): implement
7421
7422 2003-08-29  Havoc Pennington  <hp@pobox.com>
7423
7424         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7425
7426 2003-08-28  Havoc Pennington  <hp@pobox.com>
7427
7428         purge DBusObjectID
7429         
7430         * dbus/dbus-connection.c: port to no ObjectID, create a
7431         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7432
7433         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7434         everything except UnregisterFunction and MessageFunction
7435         
7436         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7437         add DBUS_TYPE_OBJECT_PATH
7438         
7439         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7440         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7441         path-based object IDs
7442
7443 2003-08-25  Havoc Pennington  <hp@pobox.com>
7444
7445         Just noticed that dbus_message_test is hosed, I wonder when I
7446         broke that. I thought make check was passing earlier...
7447         
7448         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7449         container tree, will replace most of dbus-object-registry
7450
7451         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7452         screwup
7453
7454 2003-08-19  Havoc Pennington  <hp@pobox.com>
7455
7456         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7457         (dbus_message_is_error): fix this function
7458
7459         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7460         match
7461
7462         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7463         reflect clarified man page
7464         (bus_client_policy_check_can_send): ditto
7465         
7466         * bus/session.conf.in: fixup
7467
7468         * bus/system.conf.in: fixup
7469
7470 2003-08-18  Havoc Pennington  <hp@redhat.com>
7471
7472         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7473
7474         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7475         dumb bug created earlier (wrong order of args to
7476         decode_header_data())
7477         
7478         * tools/dbus-send.c: port
7479
7480         * tools/dbus-print-message.c (print_message): port
7481
7482         * test/data/*messages: port all messages over
7483         
7484         * dbus/dbus-message-builder.c: support including 
7485         message type
7486         
7487         * bus/driver.c: port over
7488         
7489         * bus/dispatch.c: port over to new stuff
7490
7491         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7492         rename disconnect signal to "Disconnected"
7493
7494 2003-08-17  Havoc Pennington  <hp@pobox.com>
7495
7496         This doesn't compile yet, but syncing up so I can hack on it from
7497         work. What are branches for if not broken code? ;-)
7498         
7499         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7500         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7501         DBUS_HEADER_FIELD_ERROR_NAME
7502         
7503         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7504         for the interface+member pairs
7505         (string_hash): change to use g_str_hash algorithm
7506         (find_direct_function, find_string_function): refactor these to
7507         share most code.
7508         
7509         * dbus/dbus-message.c: port all of this over to support 
7510         interface/member fields instead of name field
7511
7512         * dbus/dbus-object-registry.c: port over
7513         
7514         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7515         from _dbus_string_validate_name
7516
7517         * bus/dbus-daemon-1.1: change file format for the 
7518         <deny>/<allow> stuff to match new message naming scheme
7519
7520         * bus/policy.c: port over
7521
7522         * bus/config-parser.c: parse new format
7523         
7524 2003-08-16  Havoc Pennington  <hp@pobox.com>
7525
7526         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7527         broken assertion
7528
7529         * glib/dbus-gproxy.c: some hacking
7530
7531 2003-08-15  Havoc Pennington  <hp@redhat.com>
7532
7533         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7534
7535         * dbus/dbus-connection.c
7536         (dbus_connection_send_with_reply_and_block): factor out internals;
7537         change to convert any error replies to DBusError instead of 
7538         returning them as a message
7539
7540 2003-08-15  Havoc Pennington  <hp@pobox.com>
7541
7542         * dbus/dbus-connection.c, 
7543         dbus/dbus-pending-call.c: Finish the pending call stuff
7544
7545 2003-08-14  Havoc Pennington  <hp@redhat.com>
7546
7547         * dbus/dbus-pending-call.c: start on new object that will replace
7548         DBusMessageHandler and ReplyHandlerData for tracking outstanding
7549         replies
7550
7551         * dbus/dbus-gproxy.c: start on proxy object used to communicate
7552         with remote interfaces
7553
7554         * dbus/dbus-gidl.c: do the boring boilerplate in here
7555         
7556 2003-08-12  Havoc Pennington  <hp@pobox.com>
7557
7558         * bus/dispatch.c (bus_dispatch): make this return proper 
7559         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7560
7561         * dbus/dbus-errors.c (dbus_set_error): use
7562         _dbus_string_append_printf_valist
7563
7564         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7565         (_dbus_string_append_printf): new
7566
7567         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7568         UNKNOWN_METHOD
7569
7570         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7571         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7572         message is unhandled.
7573
7574 2003-08-11  Havoc Pennington  <hp@pobox.com>
7575
7576         * bus/test.c (client_disconnect_handler): change to return
7577         HANDLED (would have been REMOVE_MESSAGE)
7578
7579         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7580         HANDLED/NOT_YET_HANDLED instead of
7581         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
7582         should be used.
7583
7584 2003-08-10  Havoc Pennington  <hp@pobox.com>
7585
7586         * tools/dbus-send.c (main): add --type argument, for now
7587         supporting only method_call and signal types.
7588
7589         * tools/dbus-print-message.c: print message type
7590
7591         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7592         init connection->objects
7593
7594         * doc/dbus-specification.sgml: fix sgml
7595
7596         * bus/*.c: port over to object-instance API changes
7597
7598         * test/test-service.c: ditto
7599         
7600         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7601         name, we will have to fix up the rest of the code to also handle
7602         this
7603         (dbus_message_new): generic message-creation call
7604         (set_string_field): allow appending name field
7605
7606 2003-08-06  Havoc Pennington  <hp@pobox.com>
7607
7608         * dbus/dbus-object-registry.c: implement signal connection 
7609         and dispatch
7610
7611         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7612
7613         * dbus/dbus-internals.c (_dbus_memdup): new function
7614
7615 2003-08-02  Havoc Pennington  <hp@pobox.com>
7616
7617         * dbus/dbus-message.c (dbus_message_get_no_reply)
7618         (dbus_message_set_no_reply): add these and remove
7619         set_is_error/get_is_error
7620
7621         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
7622         remove the ERROR flag, since there's now an ERROR type
7623
7624 2003-08-01  Havoc Pennington  <hp@pobox.com>
7625
7626         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7627         implement
7628
7629         * dbus/dbus-message.c (dbus_message_get_type): new function
7630
7631         * doc/dbus-specification.sgml: add "type" byte to messages
7632
7633 2003-08-01  Havoc Pennington  <hp@pobox.com>
7634
7635         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7636         a message type enum to distinguish kinds of message
7637         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
7638         that need not be replied to
7639
7640 2003-08-01  Havoc Pennington  <hp@pobox.com>
7641
7642         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7643         (unpack_8_octets): fix no-64-bit-int bug
7644
7645         * dbus/dbus-object-registry.c (validate_id): validate the 
7646         connection ID bits, not just the instance ID.
7647
7648         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7649         the connection-global 33 bits of the object ID
7650
7651         * dbus/dbus-object-registry.c (info_from_entry): fill in 
7652         object ID in the new way
7653
7654         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
7655         define server/client/instance bits.
7656
7657 2003-07-30  Havoc Pennington  <hp@pobox.com>
7658
7659         * dbus/dbus-connection.c (dbus_connection_register_object): fix
7660         build
7661
7662 2003-07-13  Havoc Pennington  <hp@pobox.com>
7663
7664         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7665         fields to DBusObjectVTable and DBusObjectInfo
7666
7667 2003-07-12  Havoc Pennington  <hp@pobox.com>
7668
7669         * dbus/dbus-object-registry.c: implement unit test,
7670         fix bugs discovered in process
7671
7672         * dbus/dbus-connection.c: remove handler_table and
7673         register_handler(), add DBusObjectRegistry usage
7674
7675         * dbus/dbus-objectid.c (dbus_object_id_is_null)
7676         (dbus_object_id_set_null): new functions
7677
7678 2003-07-08  Havoc Pennington  <hp@pobox.com>
7679
7680         * dbus/dbus-object.c: implement some of this
7681
7682         * dbus/dbus-object-registry.c
7683         (_dbus_object_registry_add_and_unlock): fill in the object_id out
7684         param
7685         (_dbus_object_registry_new): handle OOM
7686
7687 2003-07-08  Havoc Pennington  <hp@pobox.com>
7688
7689         * dbus/dbus-object.h: sketch out an API for registering objects
7690         with a connection, that allows us to use as little as 24 bytes
7691         per object and lets application code represent an object in 
7692         any conceivable way.
7693
7694         * dbus/dbus-object-registry.c: implement the hard bits of the
7695         DBusConnection aspect of object API. Not yet wired up.
7696         
7697 2003-07-06  Havoc Pennington  <hp@pobox.com>
7698
7699         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7700         (_dbus_marshal_object_id): new
7701         (_dbus_demarshal_object_id): new
7702         (_dbus_marshal_get_arg_end_pos): support object ID type, and
7703         consolidate identical switch cases. Don't conditionalize handling
7704         of DBUS_TYPE_UINT64, need to handle the type always.
7705         (_dbus_marshal_validate_arg): consolidate identical cases, and
7706         handle DBUS_TYPE_OBJECT_ID
7707
7708         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7709
7710         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7711
7712 2003-09-28  Havoc Pennington  <hp@pobox.com>
7713
7714         * real 0.13 release
7715
7716 2003-09-28  Havoc Pennington  <hp@pobox.com>
7717
7718         * doc/Makefile.am (dbus-specification.html): testing a funky hack
7719         to work with Debian db2html
7720
7721 2003-09-28  Havoc Pennington  <hp@pobox.com>
7722
7723         * configure.in: 0.13
7724
7725         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7726         stylesheet-images for benefit of Debian
7727         
7728         Change back to using filesystem-linked sockets for the system
7729         bus, so only root can create the default system bus address.
7730         
7731         * bus/system.conf.in: change to use
7732         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7733
7734         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7735         from here.
7736
7737         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7738         here, and AC_DEFINE DBUS_SYSTEM_PATH
7739
7740 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7741
7742         * doc/TODO:
7743         * doc/busconfig.dtd:
7744         Add busconfig DTD.
7745         
7746 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7747
7748         * doc/dbus-specification.sgml:
7749         Add activation reply values.
7750         
7751 2003-08-05  Havoc Pennington  <hp@redhat.com>
7752
7753         * configure.in: 0.12
7754
7755 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
7756
7757         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7758         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7759         (add_watch), (remove_watch), (create_source):
7760         Refcount fds, fixes some reentrancy issues.
7761         
7762 2003-07-30  Havoc Pennington  <hp@redhat.com>
7763
7764         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7765         bus address to be abstract if we have abstract sockets
7766
7767         * NEWS: update
7768
7769 2003-07-28  Havoc Pennington  <hp@redhat.com>
7770
7771         * bus/messagebus.in: fix to avoid processname/servicename 
7772         confusion, from Michael Kearey
7773         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7774         
7775 2003-07-23  Havoc Pennington  <hp@pobox.com>
7776
7777         * dbus/dbus-message.c (dbus_message_iter_get_named): 
7778         fix from Andy Hanton to remove broken "+1"
7779
7780 2003-07-16  Havoc Pennington  <hp@pobox.com>
7781
7782         * tools/dbus-launch.c (babysit): close stdout/stderr in the
7783         babysitter process, as suggested by Thomas Leonard, so 
7784         an "eval `dbus-launch --exit-with-session`" will actually 
7785         return
7786
7787 2003-07-16  Havoc Pennington  <hp@pobox.com>
7788
7789         * configure.in: print out EXPANDED_* variables in the summary at
7790         the end; clean up the code that computes EXPANDED_ variables and
7791         get the ones using exec_prefix right. Should make things work
7792         when you build without --prefix
7793
7794 2003-06-29  Havoc Pennington  <hp@pobox.com>
7795
7796         * mono/Test.cs (class Test): fire up a main loop and run it
7797
7798         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
7799         done once, the app has to do it
7800
7801 2003-06-26  Havoc Pennington  <hp@pobox.com>
7802
7803         * mono/Connection.cs: set up connection with the glib main loop
7804
7805 2003-07-01  Havoc Pennington  <hp@redhat.com>
7806
7807         * doc/dbus-specification.sgml: clarify the format of a type code,
7808         change suggested by Jim Blandy
7809
7810 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
7811
7812         * doc/Makefile.am:
7813         * tools/Makefile.am: Don't assume srcdir == builddir.
7814
7815         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
7816         the allocated block.
7817         (_dbus_memory_test): New function.
7818         * dbus/dbus-test.h: Add _dbus_memory_test ().
7819         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
7820
7821         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
7822         of %c%c%c%c.
7823         (dbus_message_new): Remove obsolete @todo.
7824
7825         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
7826         (_dbus_marshal_set_uint64): Fix comment.
7827
7828         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
7829         hardcode FIELD_REPLY_SERIAL.
7830
7831         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
7832         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
7833
7834         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
7835         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
7836
7837 2003-06-24  Havoc Pennington  <hp@pobox.com>
7838
7839         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
7840
7841 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
7842
7843         * configure.in:
7844         * gcj/.cvsignore:
7845         * gcj/Hello.java:
7846         * gcj/Makefile.am:
7847         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
7848         * gcj/org/.cvsignore:
7849         * gcj/org/Makefile.am:
7850         * gcj/org/freedesktop/.cvsignore:
7851         * gcj/org/freedesktop/Makefile.am:
7852         * gcj/org/freedesktop/dbus/.cvsignore:
7853         * gcj/org/freedesktop/dbus/Makefile.am:
7854         * gcj/org/freedesktop/dbus/Message.java: (Message),
7855         (Message.Message):
7856         * gcj/org/freedesktop/dbus/natMessage.cc:
7857         Fix the build system.
7858
7859 2003-06-22  Havoc Pennington  <hp@pobox.com>
7860
7861         * mono/Connection.cs: add more bindings
7862
7863         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
7864         more than once.
7865
7866 2003-06-22  Havoc Pennington  <hp@pobox.com>
7867
7868         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
7869         Start wrapping more stuff.
7870
7871 2003-06-22  Havoc Pennington  <hp@pobox.com>
7872
7873         * mono/Message.cs: implement Message.Wrap() that ensures we only
7874         have a single C# wrapper per DBusMessage, assuming it works which
7875         it probably doesn't.
7876
7877         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
7878         (dbus_message_free_data_slot): new
7879         (dbus_message_set_data): new
7880         (dbus_message_get_data): new
7881
7882 2003-06-22  Havoc Pennington  <hp@pobox.com>
7883
7884         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
7885         (_dbus_data_slot_allocator_alloc): rework these to keep a
7886         reference count on each slot and automatically manage a global
7887         slot ID variable passed in by address
7888
7889         * bus/bus.c: convert to new dataslot API
7890
7891         * dbus/dbus-bus.c: convert to new dataslot API
7892
7893         * dbus/dbus-connection.c: convert to new dataslot API
7894
7895         * dbus/dbus-server.c: convert to new dataslot API
7896
7897         * glib/dbus-gmain.c: ditto
7898
7899         * bus/test.c: ditto
7900
7901         * bus/connection.c: ditto
7902
7903 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
7904
7905         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
7906         after the gcj checks so that the correct configuration tags
7907         will be added to libtool.
7908
7909         * dbus-glib-1.pc.in: No need to specify any includes since
7910         dbus-1.pc.in has those.
7911
7912 2003-06-22  Havoc Pennington  <hp@pobox.com>
7913
7914         * mono/*, gcj/*, configure.in, Makefile.am:
7915         Check in makefiles and subdirs for mono and gcj bindings.
7916         Neither binding actually exists, just trying to get through
7917         all the build and other boring bits.
7918
7919 2003-06-21  Philip Blundell  <philb@gnu.org>
7920
7921         * tools/dbus-monitor.1: Updated.
7922
7923         * tools/dbus-send.1: Likewise.
7924
7925 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
7926
7927         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
7928         for hangup and error after checking read so we won't discard
7929         pending data if both hangup and read are set.
7930
7931 2003-06-19  Philip Blundell  <philb@gnu.org>
7932
7933         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
7934
7935         * tools/dbus-send.c: Accept both --system and --session.
7936
7937         * tools/dbus-monitor.c: Same here.
7938
7939 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
7940
7941         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
7942         from C++ (Patch by Miloslav Trmac).
7943
7944 2003-06-15  Joe Shaw  <joe@assbarn.com>
7945
7946         * configure.in: Check for socklen_t.
7947
7948         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
7949
7950         * test/test-segfault.c: Add #include <sys/time.h>
7951
7952         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
7953         dbus-launch needs it.
7954
7955 2003-06-09  Havoc Pennington  <hp@redhat.com>
7956
7957         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
7958         SUN_LEN, it breaks abstract socket usage
7959
7960         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
7961         starts of lines.
7962
7963 2003-06-04  Havoc Pennington  <hp@pobox.com>
7964
7965         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
7966         using unix:abstract=/foo, and when listening in a tmpdir
7967         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
7968
7969         * dbus/dbus-transport.c (_dbus_transport_open): support
7970         unix:abstract=/foo
7971
7972         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7973         support abstract sockets
7974
7975         * dbus/dbus-transport-unix.c
7976         (_dbus_transport_new_for_domain_socket): support abstract sockets
7977
7978         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
7979         toggle as an argument, implement abstract namespace support
7980         (_dbus_listen_unix_socket): ditto
7981
7982         * configure.in: add --enable-abstract-sockets and implement
7983         a configure check for autodetection of the right value.
7984
7985 2003-06-01  Havoc Pennington  <hp@pobox.com>
7986
7987         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
7988         in /tmp (though on Linux this will end up being useless,
7989         when we add abstract namespace support)
7990
7991         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
7992         subst'ing it
7993
7994 2003-05-28  Colin Walters  <walters@verbum.org>
7995
7996         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
7997
7998 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
7999
8000         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8001
8002 2003-05-17  Colin Walters  <walters@gnu.org>
8003
8004         * tools/dbus-send.c: Don't exit with an error code if --help was
8005         passed.  Default to using the session bus instead of the system
8006         one.
8007
8008         * tools/dbus-launch.c: Ditto.
8009
8010         * tools/dbus-monitor.c: Ditto.
8011
8012         * tools/dbus-send.1: Update with new arguments.
8013
8014         * tools/dbus-launch.c: Emit code to export variables.  New
8015         arguments -s and -c to specify shell syntax, and a bit of code to
8016         autodetect syntax.  Also, allow specifying a program to run.
8017
8018         * tools/dbus-launch.1: Update with new arguments.
8019
8020         * tools/dbus-send.1: Ditto.
8021
8022         * tools/dbus-monitor.1: Ditto.
8023
8024 2003-05-17  Havoc Pennington  <hp@pobox.com>
8025
8026         * bus/config-parser.c (merge_included): merge in policies from
8027         child configuration file.
8028
8029         * bus/policy.c (bus_policy_merge): function to merge two policies
8030         together
8031
8032 2003-05-16  Havoc Pennington  <hp@redhat.com>
8033
8034         * dbus/dbus-connection.c: disable verbose lock spew
8035
8036         * tools/dbus-send.c: add --print-reply command line option
8037
8038         * tools/dbus-print-message.h (print_message): new util function
8039         shared by dbus-send and dbus-monitor
8040
8041         * tools/dbus-monitor.c (handler_func): exit on disconnect
8042
8043         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8044         disconnected, don't try to use the read_watch
8045
8046         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8047         so we can find this bug more easily
8048
8049 2003-05-16  Havoc Pennington  <hp@redhat.com>
8050
8051         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8052         NULL as DBusHashTable is annoyingly likely to do.
8053
8054 2003-05-16  Colin Walters  <walters@verbum.org>
8055
8056         * tools/dbus-monitor.c: Add --session argument and usage()
8057         function.
8058
8059         * tools/dbus-monitor.1: Update with new --session arg.
8060
8061         * bus/Makefile.am (install-data-hook): Create
8062         $(libdir)/dbus-1.0/services so that the session bus is happy.
8063
8064 2003-05-15  Havoc Pennington  <hp@redhat.com>
8065
8066         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8067         on non-x86. ifdef's are evil.
8068
8069 2003-05-15  Havoc Pennington  <hp@redhat.com>
8070
8071         * configure.in: 0.11
8072
8073         * NEWS: update
8074
8075         * bus/Makefile.am (initddir): apparently we are supposed to put
8076         init scripts in /etc/rc.d/init.d not /etc/init.d
8077
8078         * bus/Makefile.am: remove the "you must --enable-tests to make
8079         check" as it broke distcheck
8080
8081         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8082
8083 2003-05-13  James Willcox  <jwillcox@gnome.org>
8084
8085         * configure.in:
8086         * bus/activation.c: (bus_activation_service_created),
8087         (bus_activation_activate_service):
8088         * bus/driver.c: (bus_driver_send_service_deleted),
8089         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8090         (bus_driver_send_service_acquired),
8091         (bus_driver_send_welcome_message),
8092         (bus_driver_handle_list_services):
8093         * bus/session.conf.in:
8094         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8095         (dbus_bus_service_exists), (dbus_bus_activate_service):
8096         * dbus/dbus-bus.h:
8097
8098         Add some convenience API which lets you activate a service, and did a
8099         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8100         and dbus_message_get_args()
8101
8102 2003-05-11  Havoc Pennington  <hp@pobox.com>
8103
8104         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8105         calling _dbus_marshal_validate_arg() for every byte in a byte
8106         array, etc.
8107
8108         * dbus/dbus-message-handler.c: use atomic reference counting to
8109         reduce number of locks slightly; the global lock in here sucks
8110
8111         * dbus/dbus-connection.c
8112         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8113         update_dispatch_status that can be called with lock held; then use
8114         in a couple places to reduce locking/unlocking
8115         (dbus_connection_send): hold the lock over the whole function
8116         instead of acquiring it twice.
8117
8118         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8119
8120         * bus/connection.c (bus_connections_setup_connection): fix access
8121         to already-freed memory.
8122
8123         * dbus/dbus-connection.c: keep a little cache of linked list
8124         nodes, to avoid using the global linked list alloc lock in the
8125         normal send-message case. Instead we just use the connection lock
8126         that we already have to take.
8127
8128         * dbus/dbus-list.c (_dbus_list_find_last): new function
8129
8130         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8131         change to use a struct for the atomic type; fix docs,
8132         they return value before increment, not after increment.
8133
8134         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8135         (_dbus_string_append_8_aligned): new functions to try to
8136         microoptimize this operation.
8137         (reallocate_for_length): break this out of set_length(), to
8138         improve profile info, and also so we can consider inlining the
8139         set_length() part.
8140
8141         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8142         strings with some preallocation, cuts down on our calls to realloc
8143         a fair bit. Though if we can get the "move entire string to empty
8144         string" optimization below to kick in here, it would be better.
8145
8146         * dbus/dbus-string.c (_dbus_string_move): just call
8147         _dbus_string_move_len
8148         (_dbus_string_move_len): add a special case for moving
8149         an entire string into an empty string; we can just
8150         swap the string data instead of doing any reallocs.
8151         (_dbus_string_init_preallocated): new function
8152
8153 2003-05-11  Havoc Pennington  <hp@pobox.com>
8154
8155         Write a "test-profile" that does echo client-server with threads;
8156         profile reveals lock contention, memcpy/realloc of buffers, and
8157         UTF-8 validation as hot spots. 20% of lock contention eliminated
8158         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8159         contention is global mempool locks for GList and DBusList.
8160
8161         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8162         x86 implementation
8163
8164         * dbus/dbus-connection.c (struct DBusConnection): use
8165         dbus_atomic_t for the reference count
8166
8167         * dbus/dbus-message.c (struct DBusMessage): declare
8168         dbus_atomic_t values as volatile
8169
8170         * configure.in: code to detect ability to use atomic integer
8171         operations in assembly, from GLib patch
8172
8173         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8174         time, tired of it being wrong in threads and forked processes
8175
8176         * glib/test-profile.c: a little program to bounce messages back
8177         and forth between threads and eat CPU
8178
8179         * dbus/dbus-connection.c: add debug spew macros for debugging
8180         thread locks; include config.h at top; fix deadlock in
8181         dbus_connection_flush()
8182
8183 2003-05-08  Havoc Pennington  <hp@pobox.com>
8184
8185         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8186         data from getting written, and there wasn't a good reason to
8187         use _exit really.
8188
8189         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8190         dbus_verbose lines in test coverage
8191         (main): add list of functions sorted by # of untested blocks
8192         to the coverage report
8193
8194         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8195
8196         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8197
8198         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8199         extend test coverage
8200
8201         * test/data/auth/cancel.auth-script: test canceling an
8202         authentication
8203
8204         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8205         aren't used. in CVS history if we end up needing them.
8206
8207 2003-05-04  Havoc Pennington  <hp@pobox.com>
8208
8209         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8210         unit test
8211
8212         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8213         function, which assumed length was in # of strings, not bytes
8214
8215         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8216         missing coverage
8217
8218         * dbus/dbus-connection.c
8219         (_dbus_connection_queue_received_message): disable function for
8220         now, we are only using it in test mode
8221
8222         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8223         remove a mistaken FIXME
8224
8225 2003-05-04  Havoc Pennington  <hp@pobox.com>
8226
8227         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8228         unlock mutex on successful return, patch from Anders Gustafsson
8229
8230 2003-05-04  Havoc Pennington  <hp@pobox.com>
8231
8232         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8233         Anders Gustafsson
8234
8235 2003-05-04  Havoc Pennington  <hp@pobox.com>
8236
8237         * tools/dbus-launch.c: implement
8238
8239         * bus/main.c (main), bus/bus.c (bus_context_new):
8240         implement --print-pid and --fork
8241
8242 2003-05-03  Havoc Pennington  <hp@redhat.com>
8243
8244         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8245         the address had no value, and add to test suite. Fix and
8246         regression test from Miloslav Trmac
8247
8248 2003-05-03  Havoc Pennington  <hp@pobox.com>
8249
8250         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8251         watch is invalid when handled
8252
8253         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8254         dbus-launch utility to launch the bus from a shell script.  Didn't
8255         actually implement dbus-launch yet, it's just a placeholder still.
8256
8257 2003-05-03  Havoc Pennington  <hp@pobox.com>
8258
8259         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8260         daemon; also documents daemon config file, so replaces
8261         doc/config-file.txt. Corrected some stuff from config-file.txt in
8262         the process of moving it.
8263
8264 2003-05-03  Havoc Pennington  <hp@pobox.com>
8265
8266         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8267         add some man pages
8268
8269 2003-05-03  Colin Walters  <walters@verbum.org>
8270
8271         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8272         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8273
8274         * Makefile.am: Update to use new .pc versioning scheme.
8275
8276 2003-05-02  Havoc Pennington  <hp@redhat.com>
8277
8278         * bus/system.conf.in: allow send/receive to/from message bus
8279         service
8280
8281 2003-04-30  Havoc Pennington  <hp@redhat.com>
8282
8283         * configure.in: print a note when building with unit tests and
8284         without assertions
8285
8286 2003-04-30  Havoc Pennington  <hp@redhat.com>
8287
8288         * Makefile.am: add a check-local that complains if you didn't
8289         configure with --enable-tests
8290
8291 2003-04-29  Havoc Pennington  <hp@redhat.com>
8292
8293         * glib/dbus-gmain.c: docs cleanups
8294
8295         * dbus/dbus-types.h: add docs on int64 types
8296
8297         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8298         public API docs section
8299
8300 2003-04-29  Havoc Pennington  <hp@redhat.com>
8301
8302         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8303         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8304         parallel install API version, not with the D-BUS package version.
8305
8306         * HACKING: move some of README over here
8307
8308         * README: updates, and document API/ABI policy
8309
8310         * configure.in: reindentation
8311
8312 2003-04-29  Havoc Pennington  <hp@redhat.com>
8313
8314         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8315         to use this library" to be sure people have the right
8316         expectations.
8317
8318 2003-04-28  Havoc Pennington  <hp@redhat.com>
8319
8320         * configure.in: add --enable-docs which by default is auto yes if
8321         doxygen and db2html found, no otherwise; but can be forced on/off
8322
8323         * doc/Makefile.am: conditionalize whether to build docs on
8324         --enable-docs
8325
8326 2003-04-28  Havoc Pennington  <hp@redhat.com>
8327
8328         * configure.in: 0.10
8329
8330         * NEWS: update
8331
8332         * bus/system.conf.in: add <includedir>system.d</includedir>
8333
8334         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8335         username was provided but not uid
8336
8337         * bus/config-parser.c (struct BusConfigParser): keep track of
8338         whether the parser is toplevel or was included; change some
8339         of the error handling if it's included.
8340
8341 2003-04-27  Havoc Pennington  <hp@pobox.com>
8342
8343         Unbreak my code...
8344
8345         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8346         report correct status if we finish processing authentication
8347         inside this function.
8348
8349         * bus/activation.c (try_send_activation_failure): use
8350         bus_transaction_send_error_reply
8351
8352         * bus/connection.c (bus_connection_get_groups): return an error
8353         explaining the problem
8354
8355         * bus/bus.c (bus_context_check_security_policy): implement
8356         restriction here that inactive connections can only send the
8357         hello message. Also, allow bus driver to send anything to
8358         any recipient.
8359
8360         * bus/connection.c (bus_connection_complete): create the
8361         BusClientPolicy here instead of on-demand.
8362         (bus_connection_get_policy): don't return an error
8363
8364         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8365         sender field in message being replied to
8366
8367         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8368         causing it to return FALSE always
8369
8370         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8371         we checked sender rather than destination
8372
8373 2003-04-25  Havoc Pennington  <hp@redhat.com>
8374
8375         test suite is slightly hosed at the moment, will fix soon
8376
8377         * bus/connection.c (bus_connections_expire_incomplete): fix to
8378         properly disable the timeout when required
8379         (bus_connection_set_name): check whether we can remove incomplete
8380         connections timeout after we complete each connection.
8381
8382         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8383         probably still broken.
8384
8385         * bus/services.c (bus_registry_acquire_service): implement max
8386         number of services owned, and honor allow/deny rules on which
8387         services a connection can own.
8388
8389         * bus/connection.c (bus_connection_get_policy): report errors here
8390
8391         * bus/activation.c: implement limit on number of pending
8392         activations
8393
8394 2003-04-25  Havoc Pennington  <hp@redhat.com>
8395
8396         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8397         where we used >= 0 instead of != DBUS_UID_UNSET.
8398
8399 2003-04-25  Havoc Pennington  <hp@redhat.com>
8400
8401         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8402         were toggled without add/remove, fix from Anders Gustafsson
8403
8404 2003-04-24  Havoc Pennington  <hp@redhat.com>
8405
8406         * test/data/valid-config-files/basic.conf: add <limit> tags to
8407         this test
8408
8409         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8410         <limit> tag in configuration file.
8411
8412 2003-04-24  Havoc Pennington  <hp@redhat.com>
8413
8414         * bus/dispatch.c: somehow missed some name_is
8415
8416         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8417         (_dbus_timeout_set_interval): new
8418
8419         * bus/connection.c (bus_connections_setup_connection): record time
8420         when each connection is first set up, and expire them after the
8421         auth timeout passes.
8422
8423 2003-04-24  Havoc Pennington  <hp@redhat.com>
8424
8425         * dbus/dbus-message.c (dbus_message_name_is): rename
8426         (dbus_message_service_is): rename
8427         (dbus_message_sender_is): rename
8428         (dbus_message_get_service): rename
8429
8430 2003-04-24  Havoc Pennington  <hp@redhat.com>
8431
8432         * configure.in: add --enable-checks
8433
8434         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8435
8436         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8437         to use thread locks.
8438         (_dbus_connection_handler_destroyed_locked): move some private
8439         functions into proper docs group
8440
8441         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8442         _dbus_return_val_if_fail
8443
8444         Throughout: use dbus_return_if_fail
8445
8446 2003-04-23  James Willcox  <jwillcox@gnome.org>
8447
8448         * glib/dbus-glib.h:
8449         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8450         (dbus_connection_setup_with_g_main),
8451         (dbus_server_setup_with_g_main):
8452         * glib/test-dbus-glib.c: (main):
8453         * glib/test-thread-client.c: (main):
8454         * glib/test-thread-server.c: (new_connection_callback), (main):
8455         * tools/dbus-monitor.c: (main):
8456
8457         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8458         and dbus_server_setup_with_g_main().
8459
8460 2003-04-20  Havoc Pennington  <hp@pobox.com>
8461
8462         * doc/dbus-specification.sgml: document the restrictions on
8463         message and service names
8464
8465 2003-04-22  Havoc Pennington  <hp@redhat.com>
8466
8467         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8468         support, and do some code cleanups to share more code and
8469         speed up array marshal/demarshal.
8470
8471         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8472
8473         * configure.in: generate dbus-arch-deps.h
8474
8475         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8476         64-bit typecodes
8477
8478 2003-04-22  Havoc Pennington  <hp@redhat.com>
8479
8480         * test/data/valid-messages/opposite-endian.message: fix test
8481         to use proper type for rply field
8482
8483         * test/data/invalid-messages: add tests for below validation
8484
8485         * dbus/dbus-message.c (decode_header_data): validate field types,
8486         and validate that named fields are valid names
8487         (decode_name_field): consider messages in the
8488         org.freedesktop.Local. namespace to be invalid.
8489
8490         * dbus/dbus-string.c (_dbus_string_validate_name): new
8491
8492 2003-04-19  Havoc Pennington  <hp@pobox.com>
8493
8494         * bus/driver.c (bus_driver_handle_hello): check limits and
8495         return an error if they are exceeded.
8496
8497         * bus/connection.c: maintain separate lists of active and inactive
8498         connections, and a count of each. Maintain count of completed
8499         connections per user. Implement code to check connection limits.
8500
8501         * dbus/dbus-list.c (_dbus_list_unlink): export
8502
8503         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8504         number of bytes in the message queue for a connection
8505
8506 2003-04-18  Havoc Pennington  <hp@pobox.com>
8507
8508         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8509
8510         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8511         memleaks
8512
8513         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8514         on realloc be sure to update the pointer in the keyring
8515
8516         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8517         offset to avoid writing to unallocated memory
8518
8519         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8520         try the next mechanism, so we properly handle OOM
8521
8522         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8523         on OOM.
8524         (_dbus_keyring_new): fix OOM bug
8525         (_dbus_keyring_new_homedir): always set error; impose a maximum
8526         number of keys we'll load from the file, mostly to speed up the
8527         test suite and make its OOM checks more useful, but also for
8528         general sanity.
8529
8530         * dbus/dbus-auth.c (process_error_server): reject authentication
8531         if we get an error from the client
8532         (process_cancel): on cancel, send REJECTED, per the spec
8533         (process_error_client): send CANCEL if we get an error from the
8534         server.
8535
8536 2003-04-18  Havoc Pennington  <hp@pobox.com>
8537
8538         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8539         debug spew
8540
8541         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8542         handling problem
8543
8544         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8545         about DBUS_TEST_HOMEDIR once
8546
8547         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8548         the environment
8549
8550         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8551         config file so we test the right thing
8552
8553         Throughout: assorted docs improvements
8554
8555 2003-04-18  Havoc Pennington  <hp@pobox.com>
8556
8557         * glib/dbus-gmain.c: adapt to watch changes
8558
8559         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8560
8561         * dbus/dbus-server.h: remove dbus_server_handle_watch
8562
8563         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8564
8565         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8566         like DBusTimeout, so we don't need dbus_connection_handle_watch
8567         etc.
8568
8569 2003-04-17  Havoc Pennington  <hp@redhat.com>
8570
8571         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8572         database usage so it all goes via the DBusUserDatabase cache.
8573
8574 2003-04-17  Havoc Pennington  <hp@redhat.com>
8575
8576         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8577         there was an OOM watch we skipped, we always return TRUE so we
8578         iterate again to have a look at it again. Fixes test suite hang.
8579         Code rearrangement also lets us lose some memset and only iterate
8580         over callbacks once.
8581
8582         * bus/driver.c (bus_driver_handle_message): sense of test for
8583         reply was backward
8584
8585 2003-04-16  Havoc Pennington  <hp@pobox.com>
8586
8587         * doc/dbus-specification.sgml: make spec say serials are unsigned
8588
8589         * dbus/dbus-message.h: change message serials to unsigned
8590
8591         * dbus/dbus-connection.c: adapt to message serials being unsigned
8592
8593 2003-04-15  Havoc Pennington  <hp@pobox.com>
8594
8595         * bus/bus.c: create and keep around a shared DBusUserDatabase
8596         object.
8597
8598         * bus/connection.c (bus_connection_get_groups): don't cache
8599         groups for user in the connection object, since user database
8600         object now does that.
8601
8602 2003-04-16  Havoc Pennington  <hp@redhat.com>
8603
8604         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8605         list of size counters
8606         (_dbus_message_loader_putback_message_link): put back a popped link
8607
8608         * dbus/dbus-connection.c
8609         (dbus_connection_set_max_live_messages_size): rename
8610         max_received_size
8611         (dbus_connection_get_outgoing_size): get size of outgoing
8612         queue
8613         (_dbus_connection_set_connection_counter): remove this cruft
8614
8615 2003-04-14  Havoc Pennington  <hp@redhat.com>
8616
8617         * dbus/dbus-userdb.c: user database abstraction, mostly to get
8618         caching, but at some point we might want to be able to use a
8619         different database.
8620
8621         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8622         SHA1 conf file to test the sha1 auth mechanism, since the regular
8623         test always uses EXTERNAL when available.
8624
8625         * configure.in,
8626         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8627         add conf file that requires use of sha1 auth
8628
8629 2003-04-13  Havoc Pennington  <hp@pobox.com>
8630
8631         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8632         from Philip Blundell to send messages and monitor them.
8633
8634 2003-04-13  Havoc Pennington  <hp@pobox.com>
8635
8636         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8637         callbacks
8638
8639         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8640         users
8641
8642         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8643         fix to only recover unused bytes if we're already authenticated
8644         (_dbus_transport_get_is_authenticated): fix to still mark us
8645         authenticated if there are unused bytes.
8646
8647         * bus/dispatch.c: implement security policy checking
8648
8649         * bus/connection.c (bus_transaction_send_from_driver): new
8650
8651         * bus/bus.c (bus_context_check_security_policy): new
8652
8653         * bus/dispatch.c (send_service_nonexistent_error): delete this,
8654         now we just set the DBusError and it gets converted to an error
8655         reply.
8656
8657         * bus/connection.c (allow_user_function): enable code using actual
8658         data from the config file
8659
8660         * bus/policy.c (list_allows_user): handle wildcard rules for
8661         user/group connection perms
8662
8663 2003-04-13  Havoc Pennington  <hp@pobox.com>
8664
8665         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8666
8667         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8668
8669         * bus/policy.c (bus_policy_append_mandatory_rule)
8670         (bus_policy_append_default_rule, bus_policy_append_user_rule)
8671         (bus_policy_append_group_rule): new functions
8672
8673 2003-04-12  Havoc Pennington  <hp@pobox.com>
8674
8675         * bus/config-parser.c (bus_config_parser_new): fix a memleak
8676
8677         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8678         the pid/gid/uid, just for paranoia.
8679
8680         * test/break-loader.c (randomly_do_n_things): find a byte
8681         containing a type code, and randomly change it to a different
8682         type code.
8683
8684 2003-04-12  Havoc Pennington  <hp@pobox.com>
8685
8686         * bus/policy.h: change BusPolicy to be the thing from the config
8687         file, and rename old BusPolicy to BusClientPolicy
8688
8689         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8690         match change in how policy works
8691
8692         * dbus/dbus-internals.h: mark assert_not_reached as
8693         __attribute((noreturn))__
8694
8695 2003-04-11  Havoc Pennington  <hp@redhat.com>
8696
8697         * doc/dbus-specification.sgml: fix a spot with the wrong name for
8698         the broadcast service. Use boolean return for ServiceExists.
8699
8700 2003-04-11  Havoc Pennington  <hp@redhat.com>
8701
8702         * configure.in: add another directory to look for qt in.
8703
8704 2003-04-11  Havoc Pennington  <hp@redhat.com>
8705
8706         * AUTHORS: add Colin Walters
8707
8708 2003-04-11  Havoc Pennington  <hp@redhat.com>
8709
8710         * NEWS: update
8711
8712         * configure.in: 0.9
8713
8714 2003-04-11  Havoc Pennington  <hp@redhat.com>
8715
8716         * bus/messagebus.in: remove pid file when stopping the
8717         message bus, since the bus won't have privileges to remove it
8718         itself.
8719
8720 2003-04-11  Havoc Pennington  <hp@redhat.com>
8721
8722         * bus/bus.c (bus_context_new): move credentials change after
8723         creating pidfile
8724
8725 2003-04-11  Havoc Pennington  <hp@pobox.com>
8726
8727         * test/decode-gcov.c: add "below average functions" to the
8728         coverage report, and change how some of the code works.
8729
8730         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8731         not in the coverage stats.
8732
8733         * test/test-service.c (main): use _dbus_verbose not fprintf in a
8734         couple places so running the test suite doesn't result in megaspam.
8735
8736 2003-04-11  Havoc Pennington  <hp@pobox.com>
8737
8738         * bus/dispatch.c (check_existent_service_activation): accept a no
8739         memory error in a place we didn't before
8740
8741         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8742         in case the first one failed," since the test suite is less
8743         broken now.
8744
8745 2003-04-10  Havoc Pennington  <hp@pobox.com>
8746
8747         * bus/dispatch.c (check_segfault_service_activation): add test
8748         for launching an executable that just crashes.
8749
8750         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8751         don't leave a million cores. We'll see how portable this is.
8752
8753 2003-04-10  Havoc Pennington  <hp@pobox.com>
8754
8755         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8756         the possible parent failures before we fork, so that we don't
8757         fail to create a babysitter after creating the child.
8758
8759         * bus/activation.c (bus_activation_activate_service): kill child
8760         if we don't successfully complete the activation.
8761
8762 2003-04-10  Havoc Pennington  <hp@redhat.com>
8763
8764         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8765         the connection if it's disconnected
8766
8767         * bus/activation.c (bus_activation_service_created): use new
8768         transaction features to roll back removal of pending activation if
8769         we don't successfully create the service after all. Don't remove
8770         pending activation if the function fails.
8771
8772         * dbus/dbus-list.c (_dbus_list_insert_before_link)
8773         (_dbus_list_insert_after_link): new code to facilitate
8774         services.c fixes
8775
8776         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8777         new functionality, so we can preallocate the ability to insert
8778         into a hash table.
8779
8780         * bus/connection.c (bus_transaction_add_cancel_hook): new function
8781         allowing us to put custom hooks in a transaction to be used for
8782         cancelling said transaction
8783
8784         * doc/dbus-specification.sgml: add some discussion of secondary
8785         service owners, and disallow zero-length service names
8786
8787         * bus/services.c (bus_registry_acquire_service): new function,
8788         splits out part of bus_driver_handle_acquire_service() and fixes
8789         a bug where we didn't remove the service doing the acquiring
8790         from the secondary queue if we failed to remove the current owner
8791         from the front of the queue.
8792
8793 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8794
8795         * doc/dbus-specification.sgml:
8796         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
8797
8798 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8799
8800         * bus/.cvsignore:
8801         * glib/.cvsignore:
8802         * test/.cvsignore:
8803         Added files to cvsignore
8804
8805         * dbus/dbus-message.h:
8806         * dbus/dbus-message.c: (dbus_message_iter_get_named):
8807         Make get_named() take two out argument and return a boolean.
8808         (dbus_message_iter_get_args_valist):
8809         Update usage of get_named().
8810         (dbus_message_iter_append_byte):
8811         Fix typo
8812         (dbus_message_iter_append_named)
8813         Fix typo
8814         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
8815         More tests.
8816
8817 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8818
8819         * dbus/dbus-marshal.[ch]:
8820         Add array_type_pos argument to _dbus_marshal_validate_arg.
8821         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
8822
8823         * dbus/dbus-message.[ch]:
8824         Multi-dimensional arrays have full type specification in the
8825         outermost array. Iter code re-arranged to handle this.
8826         Added some more iter tests.
8827
8828         * doc/dbus-specification.sgml:
8829         Add me to authors.
8830         Remove old FIXME.
8831         Update new array encoding description.
8832         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
8833
8834         * test/data/invalid-messages/array-with-mixed-types.message:
8835         * test/data/valid-messages/array-of-array-of-uint32.message:
8836         Change to the new array format.
8837
8838         * test/data/invalid-messages/too-short-dict.message:
8839         Fix bug in test.
8840
8841         * test/data/valid-messages/recursive-types.message:
8842         Fix up and extend test.
8843
8844 2003-04-10  Havoc Pennington  <hp@pobox.com>
8845
8846         * bus/dispatch.c: lots of fixes
8847
8848         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
8849         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
8850         that was crack, broke the test service.
8851
8852         * dbus/dbus-transport.c (_dbus_transport_open): fix error
8853         handling to avoid piling up errors if we get a failure on the
8854         first address.
8855
8856         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
8857         pid in assertion failures.
8858
8859         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
8860         to some fixed size of file descriptor array. Don't return TRUE
8861         anytime a timeout exists, that led to lots of busy loop silliness
8862         in the tests.
8863
8864 2003-04-09  Havoc Pennington  <hp@redhat.com>
8865
8866         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
8867         I'd checked this in earlier but hadn't.
8868
8869 2003-04-09  Havoc Pennington  <hp@redhat.com>
8870
8871         * bus/dispatch.c (bus_dispatch_test): get a bit further through
8872         the activation test (man this is getting old!)
8873
8874 2003-04-09  Havoc Pennington  <hp@redhat.com>
8875
8876         * test/test-utils.c: use dispatch status function to fix this up
8877
8878         * bus/connection.c (connection_watch_callback): don't dispatch
8879         from here
8880         (connection_timeout_callback): don't dispatch from here
8881         (bus_connections_setup_connection): set the dispatch status function
8882         (bus_connection_disconnected): unset it
8883
8884         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
8885         used to add a connection to be dispatched
8886         (_dbus_loop_iterate): do the dispatching at the end of each
8887         iteration
8888
8889         * dbus/dbus-connection.c
8890         (dbus_connection_set_dispatch_status_function): new function
8891         allowing us to fix up main loop usage
8892         (_dbus_connection_last_unref): free all the various function
8893         user data
8894         (dbus_connection_dispatch): call the DispatchStatusFunction
8895         whenever this function returns
8896         (dbus_connection_handle_watch): call DispatchStatusFunction
8897         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
8898         (reply_handler_timeout): call DispatchStatusFunction
8899         (dbus_connection_flush): call DispatchStatusFunction
8900
8901 2003-04-09  Havoc Pennington  <hp@redhat.com>
8902
8903         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
8904         a memory leak
8905
8906         * bus/dispatch.c (check_service_activated): fix bug in test
8907
8908         * dbus/dbus-mainloop.c (check_timeout): fix this up
8909
8910         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
8911         verbose output so we can sort out output from different processes,
8912         e.g. in the activation case.
8913
8914 2003-04-08  Colin Walters  <walters@gnu.org>
8915
8916         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
8917         the pid file.
8918         (bus_context_new): Set it.
8919         (bus_context_unref): Use it to delete the pid file.
8920
8921 2003-04-08  Havoc Pennington  <hp@redhat.com>
8922
8923         * test/data/invalid-messages/array-with-mixed-types.message:
8924         regression test that fails for the moment
8925
8926         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
8927         tests for convenience
8928
8929         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
8930         array of nil, it broke things.
8931
8932         * test/data/invalid-messages/array-of-nil.message: regression test
8933
8934         * test/data/valid-messages/array-of-array-of-uint32.message:
8935         happened to write this so added it to suite
8936
8937 2003-04-08  Havoc Pennington  <hp@redhat.com>
8938
8939         * bus/driver.c (bus_driver_handle_acquire_service): init
8940         retval/reply before checking name
8941
8942         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
8943         recursion depth argument
8944
8945         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
8946         in the public struct for future extension
8947
8948         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
8949         typo
8950
8951         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
8952         message
8953
8954         * doc/dbus-specification.sgml: fix typo
8955
8956 2003-04-08  Alexander Larsson  <alexl@redhat.com>
8957
8958         Implemented recursive types, named types and new-style iters
8959
8960         * bus/driver.c:
8961         * glib/test-thread-client.c: (thread_func):
8962         * glib/test-thread-server.c: (handle_test_message):
8963         * test/test-service.c: (handle_echo):
8964         Update to new api
8965
8966         * dbus/Makefile.am:
8967         * dbus/dbus-dict.c:
8968         * dbus/dbus-dict.h:
8969         * dbus/dbus.h
8970         Remove DBusDict
8971
8972         * dbus/dbus-internals.c: (_dbus_type_to_string):
8973         Update for new types.
8974
8975         * dbus/dbus-marshal.[ch]:
8976         Implement recursive types and the new marshalling format.
8977         Remove hardcoded dict marshalling.
8978         Marshal named types.
8979
8980         * dbus/dbus-message-builder.c:
8981         Add BYTE_ARRAY.
8982         Remove references to old types
8983
8984         * dbus/dbus-message.[ch]:
8985         New non-refcounted iter API that supports recursive iters.
8986         Use iters for appending, including support for recursive
8987         iters.
8988         Add byte and named type support.
8989         Update everything to new marshalling formats.
8990         Add tests for new API.
8991
8992         * dbus/dbus-protocol.h:
8993         Remove old array types.
8994         Add types: BYTE, ARRAY, DICT, NAMED
8995
8996         * dbus/dbus-string.c:
8997         * dbus/dbus-sysdeps.c:
8998         Make parse_double locale safe.
8999
9000         * dbus/dbus-test-main.c:
9001         Call setlocale.
9002
9003         * dbus/dbus-test.c:
9004         Kill dict test
9005
9006         * doc/dbus-specification.sgml:
9007         Update spec
9008
9009         * test/data/incomplete-messages/missing-body.message:
9010         * test/data/invalid-messages/bad-boolean.message:
9011         * test/data/invalid-messages/bad-boolean-array.message:
9012         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9013         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9014         * test/data/invalid-messages/too-short-dict.message:
9015         * test/data/valid-messages/dict-simple.message:
9016         * test/data/valid-messages/dict.message:
9017         * test/data/valid-messages/emptiness.message:
9018         * test/data/valid-messages/lots-of-arguments.message:
9019         * test/data/valid-messages/no-padding.message:
9020         * test/data/valid-messages/recursive-types.message:
9021         Add missing NAME fields
9022         Fix up dicts & arrays
9023
9024         * test/data/invalid-messages/dict-with-nil-value.message:
9025         Removed, this is not invalid anymore.
9026
9027         * test/data/valid-messages/recursive-types.message:
9028         Add new test for deeply recursive types.
9029
9030 2003-04-07  Havoc Pennington  <hp@pobox.com>
9031
9032         * bus/driver.c (bus_driver_handle_acquire_service): return an
9033         error if you try to acquire a service that starts with ':'
9034
9035 2003-04-07  Havoc Pennington  <hp@redhat.com>
9036
9037         * doc/dbus-specification.sgml: require that base service names
9038         start with ':' and that the base service is created/deleted
9039         as first and last things a connection does on the bus
9040
9041         * bus/dispatch.c (check_existent_service_activation): lots more
9042         work on the activation test; it doesn't fully pass yet...
9043
9044         * test/test-service.c (main): fix so we don't memleak the
9045         connection to the message bus
9046         (filter_func): accept a message asking us to exit
9047
9048 2003-04-06  Havoc Pennington  <hp@pobox.com>
9049
9050         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9051         from Colin Walters
9052
9053         * configure.in: fixes to Qt detection from Colin Walters
9054
9055         * doc/Makefile.am: Only remove generated docbook dirs if they
9056         exist, from Colin Walters
9057
9058         * dbus/dbus-bus.c: change how we set well-known connections to
9059         NULL, so that it works if a single connection is stored in
9060         two well-known array slots.
9061
9062         * test/Makefile.am: remove a lot of stuff that isn't immediately
9063         useful, it's in CVS history if we want it.
9064
9065         * test/test-service.c: use dbus-mainloop instead of that
9066         watch.[hc] crack
9067
9068 2003-04-06  Havoc Pennington  <hp@pobox.com>
9069
9070         * dbus/Makefile.am: split lists of sources into stuff that goes in
9071         the library, util functions that go in the lib and are also used
9072         elsewhere, and util functions that are used in tests/daemon but
9073         don't go in the lib.
9074
9075         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9076         here so it can be used in test binaries also
9077
9078 2003-04-06  Havoc Pennington  <hp@pobox.com>
9079
9080         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9081         here in the parent process, so we can return an error if it
9082         fails. Also, move some of the code into the child so the parent
9083         is less hosed if we fail midway through.
9084
9085         * bus/bus.c (bus_context_new): move pidfile detection further up
9086         in the function, before we start overwriting sockets and such.
9087
9088         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9089
9090         * configure.in: add --with-system-pid-file and --with-system-socket
9091
9092 2003-04-06  Colin Walters  <walters@verbum.org>
9093
9094         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9095
9096         * bus/system.conf.in: Declare a pidfile.
9097
9098         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9099         create one (if appropriate).
9100
9101         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9102         (struct BusConfigParser) [pidfile]: New.
9103         (element_type_to_name, merge_included, start_busconfig_child)
9104         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9105         (bus_config_parser_unref): Free it.
9106         (bus_config_parser_get_pidfile): New function.
9107
9108         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9109
9110         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9111
9112         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9113
9114         * dbus/dbus-sysdeps.h: Prototype it.
9115
9116 2003-04-06  Havoc Pennington  <hp@pobox.com>
9117
9118         * bus/bus.c (bus_context_new): print the address in here, rather
9119         than in main(), because we need to do it before forking the daemon
9120
9121         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9122         on the service nonexistent error
9123
9124         * bus/driver.c (bus_driver_handle_acquire_service): set the
9125         sender on the AcquireService reply
9126
9127         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9128         server also listen on a UNIX socket so services can connect to it.
9129
9130 2003-04-06  Havoc Pennington  <hp@pobox.com>
9131
9132         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9133         so it detects deadlocks and also we actually init threads when
9134         debugging.
9135
9136 2003-04-06  Havoc Pennington  <hp@pobox.com>
9137
9138         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9139         save the domain socket name, and unlink it when we disconnect the
9140         server. Means that at least when we exit normally, we won't leave
9141         a bunch of junk in /tmp
9142
9143         * dbus/dbus-transport-unix.c
9144         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9145         memory management). (I was making a real change here but then
9146         didn't)
9147
9148 2003-04-06  Havoc Pennington  <hp@pobox.com>
9149
9150         * bus/bus.c (bus_context_new): fix wrong handling of
9151         server_data_slot_unref() in the error case.
9152
9153         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9154         "(condition) != 0" to _dbus_real_assert so that
9155         "_dbus_assert (pointer)" doesn't cause a warning
9156
9157         * bus/main.c (main): accept --print-address option to print out
9158         the message bus address
9159
9160         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9161
9162         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9163         "tmpdir" option to unix: address on client side
9164
9165         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9166         to unix: address
9167
9168         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9169         we can use to create sockets in the test suite.
9170
9171         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9172         cleanly. To be used for testing.
9173
9174         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9175
9176         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9177
9178         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9179         handle trying to call this when there's no servers active
9180
9181 2003-04-05  Havoc Pennington  <hp@pobox.com>
9182
9183         * NEWS: update
9184
9185         * configure.in: 0.8
9186
9187 2003-04-05  Havoc Pennington  <hp@pobox.com>
9188
9189         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9190         crash on startup. Need to get "try starting the daemon"
9191         in the test suite I guess. ;-)
9192
9193         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9194         tracked the number of open connections; it's better done in
9195         application-specific code as you want it to span all servers etc.
9196
9197 2003-04-05  Havoc Pennington  <hp@pobox.com>
9198
9199         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9200         patch from Colin Walters
9201
9202 2003-04-05  Havoc Pennington  <hp@pobox.com>
9203
9204         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9205         reality; in fact multiple mechanisms are allowed.
9206
9207         * dbus/dbus-internals.c (_dbus_real_assert)
9208         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9209         _dbus_assert_not_reached() into functions, so that they don't show
9210         up in basic block counts for test coverage, and don't use up as
9211         much disk space. Does mean slower execution speed though, so
9212         assumes --disable-asserts is the normal production case.
9213
9214 2003-04-05  Havoc Pennington  <hp@pobox.com>
9215
9216         * test/Makefile.am (dist-hook): also dist *.in files
9217
9218         * NEWS: update
9219
9220         * configure.in: 0.7
9221
9222 2003-04-05  Havoc Pennington  <hp@pobox.com>
9223
9224         * dbus/dbus-string.c: docs warning
9225
9226         * dbus/dbus-spawn.c: missing docs
9227
9228         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9229
9230 2003-04-05  Havoc Pennington  <hp@pobox.com>
9231
9232         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9233         magic from GLib
9234
9235         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9236         to -1 once we've reaped the babysitter
9237         (_dbus_babysitter_handle_watch): do as much work as we can, not
9238         just one go of it
9239
9240         * bus/activation.c: add code using DBusBabysitter so that we
9241         handle it when a service fails to start up properly.
9242         (bus_activation_service_created): don't remove the activation
9243         entries as we go, just let them get removed when we free the pending
9244         activation. Unref reply messages after sending them.
9245
9246 2003-04-05  Havoc Pennington  <hp@pobox.com>
9247
9248         * test/decode-gcov.c (main): print per-directory stats in the report
9249
9250         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9251
9252 2003-04-05  Havoc Pennington  <hp@pobox.com>
9253
9254         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9255
9256         * test/decode-gcov.c: hack up a little program to suck data
9257         out of gcov files. Yes this is sort of silly.
9258
9259         * configure.in: define something in config.h and do an
9260         AM_CONDITIONAL when gcov is enabled
9261
9262 2003-04-04  Havoc Pennington  <hp@redhat.com>
9263
9264         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9265         return a "babysitter" object that is used to monitor the status of
9266         the spawned process and reap it when required.
9267
9268         * test/test-segfault.c, test/test-exit.c,
9269         test/test-sleep-forever.c: binaries that do various lame things,
9270         used in the test suite.
9271
9272         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9273
9274 2003-04-03  Havoc Pennington  <hp@pobox.com>
9275
9276         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9277         in preparation for modifying it, dbus-sysdeps is getting
9278         a bit unmanageable.
9279
9280 2003-04-03  Havoc Pennington  <hp@redhat.com>
9281
9282         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9283         have multiple ones
9284
9285         * bus/*.[hc]: adapt to mainloop change
9286
9287 2003-04-03  Havoc Pennington  <hp@redhat.com>
9288
9289         * bus/activation.c (load_directory): fix up memleaks
9290         (bus_activation_entry_free): free the entry
9291
9292         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9293         we get one from the message bus; fix memleaks.
9294
9295         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9296
9297 2003-04-03  Havoc Pennington  <hp@pobox.com>
9298
9299         * bus/config-parser.c (bus_config_parser_unref): free
9300         list of mechanisms, bug discovered by test suite enhancements
9301         (putting system.conf and session.conf into suite)
9302
9303         * test/Makefile.am, test/test-service.c: add placeholder for a
9304         test service that we'll activate as part of test suite. Doesn't
9305         do anything yet.
9306
9307         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9308         setting NULL value, and use system malloc not dbus_malloc()
9309         when we have unavoidable memleakage.
9310
9311         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9312         didn't work, and support DBUS_BUS_ACTIVATION.
9313
9314         * bus/activation.c (child_setup): pass our well-known bus type to
9315         the child
9316
9317         * bus/config-parser.c: support <type> to specify well-known type
9318
9319         * doc/dbus-specification.sgml: document the env variables to
9320         locate well-known buses and find service activator
9321
9322 2003-04-02  Havoc Pennington  <hp@redhat.com>
9323
9324         * test/Makefile.am (all-local): add a rule to copy tests to
9325         builddir, so we can have generated tests. Use this to remove the
9326         silly hack for testing system.conf and session.conf. Will use this
9327         shortly to generate .service files pointing to test binaries.
9328
9329 2003-04-02  Havoc Pennington  <hp@redhat.com>
9330
9331         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9332         current alloc and needed new length, not max of the doubled
9333         allocation and needed new length. Also, when building tests,
9334         don't do the double-allocation stuff, just realloc every time.
9335
9336 2003-04-02  Havoc Pennington  <hp@redhat.com>
9337
9338         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9339         in error messages
9340         (_dbus_string_get_dirname): new
9341         (_dbus_sysdeps_test): new
9342         (_dbus_directory_open): include dirnames in error messages
9343
9344         * bus/config-parser.c: interpret <include> and <includedir> and
9345         <servicedir> relative to config file location if the given
9346         filename is not absolute.
9347
9348         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9349
9350 2003-04-02  Havoc Pennington  <hp@redhat.com>
9351
9352         * bus/connection.c (bus_transaction_send_error_reply): set sender
9353         service for the error, and unref the reply on success
9354
9355         * bus/activation.c: convert to use BusTransaction so OOM can be
9356         handled correctly
9357         (bus_activation_service_created): set sender of the message
9358
9359 2003-04-01  Havoc Pennington  <hp@redhat.com>
9360
9361         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9362         <includedir> (at least mostly)
9363
9364         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9365         first, then the user ID
9366
9367 2003-04-01  Havoc Pennington  <hp@pobox.com>
9368
9369         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9370         function
9371
9372         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9373
9374         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9375
9376         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9377         socket 0777, and unlink any existing socket.
9378
9379         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9380         the configuration file so specifies; set up auth mechanism
9381         restrictions
9382
9383         * bus/config-parser.c (bus_config_parser_content): add support
9384         for <fork> option and fill in code for <auth>
9385
9386         * bus/system.conf.in: add <fork/> to default configuration,
9387         and limit auth mechanisms to EXTERNAL
9388
9389         * doc/config-file.txt (Elements): add <fork>
9390
9391         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9392         (_dbus_change_identity): new function
9393
9394 2003-03-31  Havoc Pennington  <hp@redhat.com>
9395
9396         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9397         (_dbus_listen_unix_socket): fix off-by-one error in null
9398         termination spotted by Nalin
9399
9400 2003-03-31  Havoc Pennington  <hp@redhat.com>
9401
9402         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9403         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9404         having a real home directory available.
9405
9406 2003-03-31  Havoc Pennington  <hp@redhat.com>
9407
9408         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9409
9410         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9411
9412         * configure.in: add support for specifying a style of init script
9413         to install
9414
9415 2003-03-31  Havoc Pennington  <hp@redhat.com>
9416
9417         Fix some annoying DBusString API and fix all affected code.
9418
9419         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9420         max_length argument
9421         (_dbus_string_get_data): change to return string instead of using
9422         an out param
9423         (_dbus_string_get_const_data): ditto
9424         (_dbus_string_get_data_len): ditto
9425         (_dbus_string_get_const_data_len): ditto
9426
9427 2003-03-31  Havoc Pennington  <hp@redhat.com>
9428
9429         * bus/main.c (main): fix up the command line arguments to be nicer
9430
9431 2003-03-31  Havoc Pennington  <hp@redhat.com>
9432
9433         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9434         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9435         final location that lands in the config file
9436
9437         * bus/config-loader-expat.c (bus_config_load): fix type of
9438         XML_Parser variable
9439
9440         * doc/TODO: remove TODO item for dbus_bus_get()
9441
9442         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9443
9444 2003-03-31  Havoc Pennington  <hp@pobox.com>
9445
9446         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9447         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9448         argument since they are always client side
9449
9450         * dbus/dbus-server.c (dbus_server_get_address): new function
9451
9452         * bus/main.c (main): take the configuration file as an argument.
9453
9454         * test/data/valid-config-files/debug-allow-all.conf: new file to
9455         use with dispatch.c tests for example
9456
9457         * bus/test-main.c (main): require test data dir
9458
9459         * bus/bus.c (bus_context_new): change this to take a
9460         configuration file name as argument
9461
9462         * doc/config-file.txt (Elements): add <servicedir>
9463
9464         * bus/system.conf, bus/session.conf: new files
9465
9466         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9467         well-known socket if none set
9468
9469         * configure.in: create system.conf and session.conf
9470
9471 2003-03-30  Havoc Pennington  <hp@pobox.com>
9472
9473         * bus/config-parser.c: hacking
9474
9475         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9476         to shut down, since it could cause weirdness with the DBusList
9477         lock
9478
9479         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9480         link-oriented stack routines
9481         (alloc_link): free the mempool if the first alloc from it fails
9482
9483         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9484
9485         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9486         from GLib
9487         (_dbus_string_skip_white): new
9488
9489         * doc/config-file.txt (Elements): add <includedir>
9490
9491 2003-03-28  Havoc Pennington  <hp@pobox.com>
9492
9493         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9494         (_dbus_string_copy_data): new functions
9495
9496 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9497
9498         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9499         * dbus/dbus-bus.h:
9500         Add dbus_bus_get.
9501
9502         * dbus/dbus-memory.c:
9503         Fix a doc comment.
9504
9505 2003-03-28  Havoc Pennington  <hp@pobox.com>
9506
9507         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9508         I think it may have just been superstition. Not sure.
9509
9510         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9511         failures that were not being handled.
9512
9513         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9514
9515         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9516         row that will fail on out-of-memory.
9517
9518         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9519         function for testing out-of-memory handling.
9520
9521         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9522         allocation functions, they do map exactly to the expat ones.
9523
9524 2003-03-27  Havoc Pennington  <hp@redhat.com>
9525
9526         * bus/config-loader-libxml.c (bus_config_load): add another error
9527         check
9528
9529 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9530
9531         * doc/TODO:
9532         Add note about automatic service activation.
9533
9534         * doc/dbus-specification.sgml:
9535         Rename the specification and clarify a few things.
9536
9537 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9538
9539         * Doxyfile.in:
9540         * dbus/dbus-address.c:
9541         * dbus/dbus-dict.c:
9542         * dbus/dbus-marshal.c:
9543         * dbus/dbus-server-debug-pipe.c:
9544         * dbus/dbus-transport-unix.c:
9545         Fix documentation warnings.
9546
9547 2003-03-26  Havoc Pennington  <hp@pobox.com>
9548
9549         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9550         after every test so it's quick and easy to see which leaked, and
9551         so we test multiple dbus_shutdown() calls
9552
9553         * configure.in: change configure.in XML stuff to also support
9554         expat
9555
9556         * config-loader-libxml.c: some hacking
9557
9558         * config-loader-expat.c: some hacking
9559
9560         * config-parser.c: some hacking, plus tests
9561
9562 2003-03-25  Havoc Pennington  <hp@redhat.com>
9563
9564         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9565
9566         * configure.in: add --with-xml option to specify XML library,
9567         right now only libxml is supported.
9568
9569         * bus/config-loader-libxml.c, config-parser.c: sync some minor
9570         nonworking code between home and work, still just stubs
9571
9572 2003-03-24  Havoc Pennington  <hp@redhat.com>
9573
9574         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9575         file
9576
9577         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9578         NULL argument for "message" if the error is a well-known one,
9579         fill in a generic message in this case.
9580
9581         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9582         favor of DBusError
9583
9584         * bus/test.c (bus_test_flush_bus): add
9585
9586         * bus/policy.c (bus_policy_test): test code stub
9587
9588 2003-03-24  Havoc Pennington  <hp@pobox.com>
9589
9590         * bus/connection.c (bus_connections_setup_connection): set up
9591         the "can this user connect" function, but it always returns
9592         TRUE until we have a config file parser so we can have a config
9593         file that allows connections.
9594
9595 2003-03-23  Havoc Pennington  <hp@pobox.com>
9596
9597         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9598         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9599         the mutex, so we can check for proper memory management
9600         and OOM handling.
9601
9602         * dbus/dbus-dataslot.c: remove the mutex from
9603         DBusDataSlotAllocator and lock it manually when using it,
9604         to simplify fitting it into the global slots framework.
9605
9606         * dbus/dbus-threads.c (init_static_locks): rework how we're
9607         handling global locks so they are easily shut down.
9608
9609         * bus/policy.c (bus_policy_append_rule): fix
9610
9611         * bus/test-main.c (main): check for memleaks
9612
9613         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9614         test suite check for memleaks
9615
9616         * dbus/dbus-memory.c: add support in test mode for tracking
9617         number of outstanding blocks
9618
9619 2003-03-23  Havoc Pennington  <hp@pobox.com>
9620
9621         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9622         policies code
9623
9624         * dbus/dbus-hash.h: add ULONG hash keys
9625
9626         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9627         (_dbus_get_group_id): new function
9628
9629 2003-03-20  Havoc Pennington  <hp@redhat.com>
9630
9631         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9632         new function
9633         (dbus_connection_get_unix_user): new function
9634
9635 2003-03-20  Havoc Pennington  <hp@pobox.com>
9636
9637         * bus/connection.c (bus_connection_send_oom_error): assert that
9638         message has a sender
9639         (connection_execute_transaction): ditto
9640         (bus_connection_preallocate_oom_error): fix to set the sender, and
9641         set recipient to the destination service, not the bus driver
9642
9643         * bus/policy.c: hacking
9644
9645         * dbus/dbus-message.c (dbus_message_service_is): new function
9646         (dbus_message_sender_is): new
9647
9648 2003-03-19  Havoc Pennington  <hp@redhat.com>
9649
9650         * bus/policy.c: start sketching code for policy restrictions on
9651         what connections can do.
9652
9653 2003-03-18  Havoc Pennington  <hp@redhat.com>
9654
9655         * doc/TODO: some notes on high-level todo items. Little nitpick
9656         stuff is all in @todo, so no need to add it here.
9657
9658         * doc/config-file.txt: some notes on how config file might look
9659
9660 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
9661
9662         * configure.in: 0.6
9663
9664         * NEWS: Update.
9665
9666 2003-03-17  Havoc Pennington  <hp@redhat.com>
9667
9668         * dbus/dbus-internals.h: add gcc attributes so that
9669         our printf-style functions warn on bad arguments to
9670         format
9671
9672         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9673         format bug
9674
9675         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9676         printf format bug
9677
9678 2003-03-17  Havoc Pennington  <hp@redhat.com>
9679
9680         * bus/test-main.c (main): make it print something as it runs
9681         so make check doesn't look stuck
9682
9683         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9684         from CVS, now obsolete
9685
9686 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9687
9688         * bus/dispatch.c: (bus_dispatch):
9689         Refetch the service name since it may have been reallocated
9690         when dbus_message_set_sender was called.
9691
9692         * dbus/dbus-sysdeps.c: (_dbus_accept):
9693         Add address and address length variables and use them to stop
9694         valgrind from complaining.
9695
9696 2003-03-17  Havoc Pennington  <hp@pobox.com>
9697
9698         All tests pass, no memleaks, no valgrind complaints.
9699
9700         * bus/test.c: refcount handler_slot
9701
9702         * bus/connection.c (bus_connections_new): refcount
9703         connection_data_slot
9704
9705         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9706         bytes so that auth scripts pass.
9707
9708         * bus/dispatch.c: init message_handler_slot so it gets allocated
9709         properly
9710
9711         * bus/dispatch.c (message_handler_slot_ref): fix memleak
9712
9713         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9714         dealloc server_pipe_hash when no longer used for benefit of
9715         leak checking
9716
9717         * dbus/dbus-auth.c (process_command): memleak fix
9718
9719         * bus/dispatch.c (check_hello_message): memleak fix
9720
9721 2003-03-16  Havoc Pennington  <hp@pobox.com>
9722
9723         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9724
9725 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9726
9727         * bus/activation.c (bus_activation_activate_service): Append
9728         the pending activation entry to the list of pending activations.
9729
9730 2003-03-16  Havoc Pennington  <hp@pobox.com>
9731
9732         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9733         connections
9734
9735         * dbus/dbus-address.c (create_entry): fix OOM handling when
9736         failing to alloc entry->method
9737
9738 2003-03-16  Havoc Pennington  <hp@pobox.com>
9739
9740         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9741         the watch
9742
9743         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9744         add some missing dbus_set_result
9745
9746         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9747         alloc the DBusMessageHandler
9748
9749         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9750         the transport here, since we call this from the finalizer; it
9751         resulted in a double-finalize.
9752
9753         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9754         where we tried to use transport->connection that was NULL,
9755         happened when transport was disconnected early on due to OOM
9756
9757         * bus/*.c: adapt to handle OOM for watches/timeouts
9758
9759         * dbus/dbus-transport-unix.c: port to handle OOM during
9760         watch handling
9761
9762         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9763         reference to unused bytes instead of a copy
9764
9765         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9766         out of memory
9767
9768         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9769         FALSE on OOM
9770
9771         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9772         of memory
9773
9774 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9775
9776         * doc/dbus-specification.sgml:
9777         Document reply message for ActivateService.
9778
9779 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9780
9781         * bus/activation.c: (bus_pending_activation_entry_free),
9782         (bus_pending_activation_free), (bus_activation_new),
9783         (bus_activation_unref), (bus_activation_service_created),
9784         (bus_activation_activate_service):
9785         * bus/activation.h:
9786         * bus/bus.c: (bus_context_new):
9787         * bus/desktop-file.c: (new_section):
9788         * bus/driver.c: (bus_driver_send_service_deleted),
9789         (bus_driver_handle_activate_service):
9790         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9791         * bus/services.h:
9792         * dbus/dbus-connection.c:
9793         (dbus_connection_send_with_reply_and_block):
9794         * dbus/dbus-message.c: (dbus_message_append_args_valist):
9795         * dbus/dbus-protocol.h:
9796         Make activation work better. Now pending activations will be queued
9797         and the daemon won't try to activate services that are already registered.
9798
9799 2003-03-16  Havoc Pennington  <hp@pobox.com>
9800
9801         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
9802         connection data
9803
9804         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
9805         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
9806
9807 2003-03-16  Havoc Pennington  <hp@pobox.com>
9808
9809         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
9810         this. always run the test suite before commit...
9811
9812         * bus/*: adapt to DBusConnection API changes
9813
9814         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
9815         requires renaming stuff to avoid dbus_connection_dispatch name
9816         conflict.
9817
9818         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
9819         function
9820
9821         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9822         separate from _dbus_message_loader_return_buffer()
9823
9824         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
9825         this, because it's now always broken to use; the number of
9826         messages in queue vs. the number still buffered by the message
9827         loader is undefined/meaningless. Should use
9828         dbus_connection_get_dispatch_state().
9829         (dbus_connection_dispatch): rename from
9830         dbus_connection_dispatch_message
9831
9832 2003-03-16  Havoc Pennington  <hp@pobox.com>
9833
9834         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
9835         implementation
9836
9837 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9838
9839         * dbus/dbus-connection.c:
9840         (dbus_connection_send_with_reply_and_block):
9841         Decrease connection->n_incoming when removing an entry
9842         from the list.
9843         * dbus/dbus-dict.c: (dbus_dict_entry_free),
9844         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9845         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9846         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
9847         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
9848         (dbus_dict_get_byte_array):
9849         Handle NULL arrays and strings. Also add support for byte arrays.
9850
9851         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
9852         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
9853         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
9854         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
9855         (_dbus_demarshal_dict), (demarshal_and_validate_len),
9856         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
9857         * dbus/dbus-marshal.h:
9858         Add support for marshalling and demarshalling empty arrays and strings.
9859
9860         * dbus/dbus-message.c: (dbus_message_append_args_valist),
9861         (dbus_message_append_string_array),
9862         (dbus_message_iter_get_boolean),
9863         (dbus_message_iter_get_boolean_array),
9864         (dbus_message_iter_get_int32_array),
9865         (dbus_message_iter_get_uint32_array),
9866         (dbus_message_iter_get_double_array),
9867         (dbus_message_iter_get_byte_array),
9868         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
9869         (check_message_handling):
9870         Add support for getting empty arrays and dicts.
9871
9872         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
9873         Don't do any validation at all for now, that's better than just checking
9874         for ASCII.
9875
9876         * test/data/valid-messages/emptiness.message:
9877         New test message with lots of empty arrays.
9878
9879 2003-03-16  Havoc Pennington  <hp@pobox.com>
9880
9881         * dbus/dbus-connection.c
9882         (_dbus_connection_queue_received_message_link): new function that
9883         can't fail due to OOM
9884
9885         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
9886         new function pops a message together with a list link
9887         containing it.
9888
9889         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
9890         message queuing functions to avoid needing to alloc memory
9891
9892 2003-03-16  Havoc Pennington  <hp@pobox.com>
9893
9894         Oops - test code was only testing failure of around 30 of the
9895         mallocs in the test path, but it turns out there are 500+
9896         mallocs. I believe this was due to misguided linking setup such
9897         that there was one copy of dbus_malloc etc. in the daemon and one
9898         in the shared lib, and only daemon mallocs were tested. In any
9899         case, the test case now tests all 500+ mallocs, and doesn't pass
9900         yet, though there are lots of fixes in this patch.
9901
9902         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9903         this so that it doesn't need to allocate memory, since it
9904         has no way of indicating failure due to OOM (and would be
9905         annoying if it did).
9906
9907         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
9908
9909         * bus/Makefile.am: rearrange to create two self-contained
9910         libraries, to avoid having libraries with overlapping symbols.
9911         that was resulting in weirdness, e.g. I'm pretty sure there
9912         were two copies of global static variables.
9913
9914         * dbus/dbus-internals.c: move the malloc debug stuff to
9915         dbus-memory.c
9916
9917         * dbus/dbus-list.c (free_link): free list mempool if it becomes
9918         empty.
9919
9920         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
9921
9922         * dbus/dbus-address.c (dbus_parse_address): free list nodes
9923         on failure.
9924
9925         * bus/dispatch.c (bus_dispatch_add_connection): free
9926         message_handler_slot when no longer using it, so
9927         memory leak checkers are happy for the test suite.
9928
9929         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
9930
9931         * bus/bus.c (new_connection_callback): disconnect in here if
9932         bus_connections_setup_connection fails.
9933
9934         * bus/connection.c (bus_connections_unref): fix to free the
9935         connections
9936         (bus_connections_setup_connection): if this fails, don't
9937         disconnect the connection, just be sure there are no side
9938         effects.
9939
9940         * dbus/dbus-string.c (undo_alignment): unbreak this
9941
9942         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
9943         leaking
9944         (_dbus_auth_new): fix the order in which we free strings
9945         on OOM failure
9946
9947         * bus/connection.c (bus_connection_disconnected): fix to
9948         not send ServiceDeleted multiple times in case of memory
9949         allocation failure
9950
9951         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
9952         get the base service name
9953         (dbus_bus_register_client): don't return base service name,
9954         instead store it on the DBusConnection and have an accessor
9955         function for it.
9956         (dbus_bus_register_client): rename dbus_bus_register()
9957
9958         * bus/dispatch.c (check_hello_message): verify that other
9959         connections on the bus also got the correct results, not
9960         just the one sending hello
9961
9962 2003-03-15  Havoc Pennington  <hp@pobox.com>
9963
9964         Make it pass the Hello handling test including all OOM codepaths.
9965         Now to do other messages...
9966
9967         * bus/services.c (bus_service_remove_owner): fix crash when
9968         removing owner from an empty list of owners
9969         (bus_registry_ensure): don't leave service in the list of
9970         a connection's owned services if we fail to put the service
9971         in the hash table.
9972
9973         * bus/connection.c (bus_connection_preallocate_oom_error): set
9974         error flag on the OOM error.
9975
9976         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9977         handle _dbus_transport_set_connection failure
9978
9979         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
9980         to create watches up front and simply enable/disable them as
9981         needed.
9982         (unix_connection_set): this can now fail on OOM
9983
9984         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
9985         of enabling/disabling a watch or timeout.
9986
9987         * bus/loop.c (bus_loop_iterate): don't touch disabled
9988         watches/timeouts
9989
9990         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
9991
9992 2003-03-15  Havoc Pennington  <hp@pobox.com>
9993
9994         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
9995         write useful test code, after all that futzing around ;-)
9996
9997         Test does not yet pass because we can't handle OOM in
9998         _dbus_transport_messages_pending (basically,
9999         dbus_connection_preallocate_send() does not prealloc the write
10000         watch). To fix this, I think we need to add new stuff to
10001         set_watch_functions, namely a SetEnabled function so we can alloc
10002         the watch earlier, then enable it later.
10003
10004         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10005         dbus-memory.c to the convenience lib
10006
10007         * bus/test.c: rename some static functions to keep them clearly
10008         distinct from stuff in connection.c. Handle client disconnection.
10009
10010 2003-03-14  Havoc Pennington  <hp@pobox.com>
10011
10012         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10013         transport, tests more of the real codepath. Set up clients
10014         with bus_setup_debug_client.
10015
10016         * bus/test.c (bus_setup_debug_client): function to set up debug
10017         "clients" on the main loop
10018
10019         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10020         support
10021
10022         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10023         server type
10024
10025         * dbus/dbus-server-debug.c: support a debug server based on pipes
10026
10027         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10028         (_dbus_close): new function
10029
10030         * configure.in: check for socketpair
10031
10032 2003-03-14  Havoc Pennington  <hp@redhat.com>
10033
10034         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10035         cheesy hack
10036
10037         * dbus/dbus-transport-debug.c: rework this a good bit to be
10038         less complicated. hopefully still works.
10039
10040         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10041         manually
10042
10043         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10044         after running it
10045
10046         * dbus/dbus-message.c (dbus_message_copy): rename from
10047         dbus_message_new_from_message, fix it up to copy
10048         all the message fields, add test case
10049
10050         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10051         not quite passing yet
10052
10053 2003-03-14  Havoc Pennington  <hp@pobox.com>
10054
10055         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10056         until no work remains" in test code. (the large diff here
10057         is just code movement, no actual changes)
10058
10059         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10060         1, no point waiting around for test code.
10061         (_dbus_server_debug_accept_transport): unref the timeout
10062         after adding it (right?)
10063
10064         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10065
10066 2003-03-13  Havoc Pennington  <hp@redhat.com>
10067
10068         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10069         out of memory
10070
10071         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10072         of memory
10073
10074         * dbus/dbus-connection.h: Make AddWatchFunction and
10075         AddTimeoutFunction return a bool so they can fail on out-of-memory
10076
10077         * bus/bus.c (bus_context_new): set up timeout handlers
10078
10079         * bus/connection.c (bus_connections_setup_connection): set up
10080         timeout handlers
10081
10082         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10083         can fail
10084
10085         * bus/bus.c (bus_context_new): adapt to changes
10086
10087         * bus/connection.c: adapt to changes
10088
10089         * test/watch.c: adapt to DBusWatch changes
10090
10091         * bus/dispatch.c (bus_dispatch_test): started adding this but
10092         didn't finish
10093
10094 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10095
10096         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10097
10098 2003-03-13  Havoc Pennington  <hp@pobox.com>
10099
10100         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10101         set up a test framework as for the library
10102
10103 2003-03-12  Havoc Pennington  <hp@pobox.com>
10104
10105         Throughout: purge global variables, introduce BusActivation,
10106         BusConnections, BusRegistry, etc. objects instead.
10107
10108         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10109         message bus object
10110
10111         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10112         going to redo this a bit differently I think
10113
10114 2003-03-12  Havoc Pennington  <hp@redhat.com>
10115
10116         Mega-patch that gets the message bus daemon initially handling
10117         out-of-memory. Work still needed. Also lots of random
10118         moving stuff to DBusError instead of ResultCode.
10119
10120         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10121
10122         * dbus/dbus-connection.c
10123         (dbus_connection_send_with_reply_and_block): use DBusError
10124
10125         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10126         DBusResultCode
10127
10128         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10129         code here, as the only failure possible is OOM.
10130
10131         * bus/connection.c (bus_connection_disconnect):
10132         rename bus_connection_disconnected as it's a notification only
10133
10134         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10135         "name" on get_args failure, should be done by get_args;
10136         don't disconnect client for bad args, just return an error.
10137         (bus_driver_handle_service_exists): ditto
10138
10139         * bus/services.c (bus_services_list): NULL-terminate returned array
10140
10141         * bus/driver.c (bus_driver_send_service_lost)
10142         (bus_driver_send_service_acquired): send messages from driver to a
10143         specific client to the client's unique name, not to the broadcast
10144         service.
10145
10146         * dbus/dbus-message.c (decode_header_data): reject messages that
10147         contain no name field
10148         (_dbus_message_get_client_serial): rename to
10149         dbus_message_get_serial and make public
10150         (_dbus_message_set_serial): rename from set_client_serial
10151         (_dbus_message_set_reply_serial): make public
10152         (_dbus_message_get_reply_serial): make public
10153
10154         * bus/connection.c (bus_connection_foreach): allow stopping
10155         iteration by returning FALSE from foreach function.
10156
10157         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10158         (dbus_connection_free_preallocated_send)
10159         (dbus_connection_preallocate_send): new API for sending a message
10160         without possibility of malloc failure.
10161         (dbus_connection_send_message): rename to just
10162         dbus_connection_send (and same for whole function family)
10163
10164         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10165
10166         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10167
10168         * bus/activation.c: handle/return errors
10169
10170         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10171
10172         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10173         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10174         (_dbus_result_from_errno): move to this file
10175
10176 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10177
10178         * dbus/dbus-marshal.c:
10179         (_dbus_marshal_set_string):
10180         Take a length argument so we can marshal the correct string
10181         length.
10182
10183         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10184         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10185         (_dbus_marshal_test):
10186         * dbus/dbus-marshal.h:
10187         Add support for marshalling and demarshalling dicts.
10188
10189         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10190         Add support for TYPE DICT.
10191
10192         * dbus/dbus-message.c: (set_string_field):
10193         Adjust header padding.
10194
10195         (dbus_message_append_args_valist), (dbus_message_append_dict),
10196         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10197         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10198         (check_message_handling), (check_have_valid_message):
10199         * dbus/dbus-message.h:
10200         Add functions for setting and getting dicts.
10201
10202         * dbus/dbus-protocol.h:
10203         Add DBUS_TYPE_DICT.
10204
10205         * dbus/dbus.h:
10206         Add dbus-dict.h
10207
10208         * doc/dbus-specification.sgml:
10209         Add information about how dicts are marshalled.
10210
10211         * test/data/invalid-messages/dict-with-nil-value.message:
10212         * test/data/invalid-messages/too-short-dict.message:
10213         * test/data/valid-messages/dict-simple.message:
10214         * test/data/valid-messages/dict.message:
10215         Add sample messages containing dicts.
10216
10217 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10218
10219         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10220
10221 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10222
10223         * dbus/Makefile.am:
10224         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10225         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10226         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10227         (dbus_dict_set_double), (dbus_dict_set_string),
10228         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10229         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10230         (dbus_dict_set_string_array), (_dbus_dict_test):
10231         * dbus/dbus-dict.h:
10232         Fix according to comments from Havoc.
10233
10234 2003-03-06  Michael Meeks  <michael@server.home>
10235
10236         * configure.in: if we don't have kde-config, disable have_qt.
10237
10238 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10239
10240         * dbus/Makefile.am:
10241         Add dbus-dict.[ch]
10242
10243         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10244         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10245         (dbus_dict_remove), (dbus_dict_get_value_type),
10246         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10247         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10248         (dbus_dict_put_double), (dbus_dict_put_string),
10249         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10250         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10251         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10252         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10253         (dbus_dict_get_double), (dbus_dict_get_string),
10254         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10255         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10256         (dbus_dict_get_string_array), (_dbus_dict_test):
10257         * dbus/dbus-dict.h:
10258         Add DBusDict implementation
10259
10260         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10261         * dbus/dbus-test.h:
10262         Add _dbus_dict_test
10263
10264 2003-03-04  Havoc Pennington  <hp@pobox.com>
10265
10266         * test/data/auth/*: adapt to changes
10267
10268         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10269         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10270         userid
10271
10272         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10273         more stuff from being in a context name, to make the protocol
10274         simpler to deal with
10275
10276         * dbus/dbus-errors.c (dbus_error_has_name): new function
10277         (dbus_error_is_set): new function
10278
10279         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10280         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10281
10282         * dbus/dbus-connection.c (dbus_connection_flush): also read
10283         messages during a flush operation
10284
10285         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10286
10287 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10288
10289         * configure.in: Check for gethostbyname on Solaris.
10290
10291         * dbus/dbus-transport.c: (_dbus_transport_open):
10292         Remove duplicate "tcp" entry.
10293
10294         * doc/dbus-specification.sgml:
10295         Clarify some things.
10296
10297 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10298
10299         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10300         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10301         (_dbus_keyring_test):
10302         * dbus/dbus-md5.c: (_dbus_md5_compute):
10303         * dbus/dbus-sha.c: (_dbus_sha_compute):
10304         Plug memory leaks.
10305
10306 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10307
10308         * README: Add some things.
10309
10310 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10311
10312         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10313         after case DBUS_TYPE_BOOELAN.
10314
10315 2003-03-02  Havoc Pennington  <hp@pobox.com>
10316
10317         * test/break-loader.c (randomly_set_extreme_ints): add test that
10318         sets really huge and small integers
10319
10320         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10321         that length of boolean array fits in the string, and that
10322         string has room for boolean value in single-bool case.
10323
10324         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10325         optional value to "ALIGN" command which is what to fill the
10326         alignment with.
10327
10328         * test/data/valid-messages/no-padding.message: add regression
10329         test for the message padding problem
10330
10331 2003-03-02  Havoc Pennington  <hp@pobox.com>
10332
10333         * dbus/dbus-message.c (decode_header_data): fix to always init
10334         message_padding, from Benjamin Dauvergne
10335
10336 2003-03-02  Havoc Pennington  <hp@pobox.com>
10337
10338         * configure.in: 0.5
10339
10340         * NEWS: Update.
10341
10342 2003-03-01  Joe Shaw  <joe@assbarn.com>
10343
10344         * configure.in: Check for "struct cmsgcred" and try to access its
10345         members for BSD-like unices.
10346
10347         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10348         _dbus_read_credentials_unix_socket().
10349         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10350         read() for reading the credential byte off the unix socket.  Use
10351         struct cmsgcred on systems that support it.
10352
10353 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10354
10355         * glib/Makefile.am:
10356         * configure.in:
10357         Make gthreads-2.0 dependency optional. Don't build thread test if
10358         its not found.
10359
10360 2003-02-27  Havoc Pennington  <hp@pobox.com>
10361
10362         * dbus/dbus-connection.c
10363         (dbus_connection_send_message_with_reply_and_block): fix doh!
10364         doh! doh! bug that resulted in never removing a reply from the
10365         queue, no wonder we called get_reply_serial so much ;-)
10366
10367         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10368         and client serial instead of demarshaling them every time
10369
10370 2003-02-27  Havoc Pennington  <hp@pobox.com>
10371
10372         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10373         more inlined, using dbus-string-private.h, speeds things up
10374         substantially
10375
10376         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10377         when freeing the string
10378         (_dbus_string_steal_data): fix for align offset
10379         (undo_alignment): new function
10380
10381 2003-02-26  Havoc Pennington  <hp@redhat.com>
10382
10383         All kinds of audit fixes from Owen, plus initial attempt to
10384         handle unaligned memory returned from malloc.
10385
10386         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10387         leave room for align_offset and nul byte
10388         (fixup_alignment): function to track an align_offset and
10389         ensure real->str is aligned
10390         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10391         to allow a nul byte plus align offset
10392         (_dbus_string_lock): fix overflow issue
10393         (_dbus_string_init_const_len): add assertions on sanity of len,
10394         assign allocated to be ALLOCATION_PADDING larger than len
10395         (set_length): fixup the overflow handling
10396         (_dbus_string_get_data_len): fix overflow in assertion
10397         (open_gap): detect overflow in size of gap to be opened
10398         (_dbus_string_lengthen): add overflow check
10399         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10400         (_dbus_string_append): add overflow check
10401         (_dbus_string_append_unichar): overflow
10402         (_dbus_string_delete): fix overflow in assertion
10403         (_dbus_string_copy_len): overflow in assertion
10404         (_dbus_string_replace_len): overflows in assertions
10405         (_dbus_string_find): change to implement in terms of
10406         _dbus_string_find_to
10407         (_dbus_string_find_to): assorted fixage
10408         (_dbus_string_equal_c_str): assert c_str != NULL,
10409         fix logic so the function works
10410         (_dbus_string_ends_with_c_str): fix overflow thingy
10411         (_dbus_string_base64_encode): overflow fix
10412         (_dbus_string_validate_ascii): overflow
10413         (_dbus_string_validate_nul): overflow
10414
10415 2003-02-26  Havoc Pennington  <hp@redhat.com>
10416
10417         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10418
10419 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10420
10421         * configure.in:
10422         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10423
10424         * dbus/dbus-connection.c:
10425         * dbus/dbus-connection.h:
10426         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10427         Add dbus_connection_set_wakeup_main_function and use it when queueing
10428         incoming and outgoing messages.
10429
10430
10431         * dbus/dbus-dataslot.c:
10432         Threadsafe usage of DBusDataSlotAllocator
10433
10434         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10435         dbus_new can fail.
10436
10437         * dbus/dbus-server-unix.c:
10438         Add todo comment
10439
10440         * glib/dbus-gmain.c:
10441         Implement the new wakeup functions for glib.
10442
10443         * glib/Makefile.am:
10444         * glib/test-thread-client.c:
10445         * glib/test-thread-server.c:
10446         * glib/test-thread.h:
10447         Initial cut at some thread test code. Not really done yet.
10448
10449 2003-02-26  Havoc Pennington  <hp@pobox.com>
10450
10451         * dbus/dbus-connection.c
10452         (dbus_connection_send_message_with_reply_and_block): fix crash
10453         where we ref'd the outgoing message instead of the returned reply
10454
10455         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10456         at the end of this function, so if we didn't need to read for
10457         authentication, we reinstall it for receiving messages
10458
10459         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10460         a NULL sender for peer-to-peer case
10461
10462         * dbus/dbus-transport-unix.c (check_read_watch): handle
10463         !authenticated case correctly
10464
10465         * glib/dbus-gmain.c: add support for DBusServer
10466
10467         * dbus/dbus-server.c: add data slot support
10468
10469         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10470         return values and handle errors
10471
10472         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10473         DBusConnection
10474
10475         * Doxyfile.in (INPUT): add glib subdir
10476
10477         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10478         setup_with_g_main instead of hookup_with_g_main; write docs
10479
10480 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10481
10482         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10483         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10484         * dbus/dbus-message.c: (dbus_message_append_boolean),
10485         (dbus_message_append_boolean_array),
10486         (dbus_message_get_args_valist), (_dbus_message_test):
10487         * dbus/dbus-message.h:
10488         * doc/dbus-specification.sgml:
10489         Various fixes as pointed out by Havoc.
10490
10491         * test/data/invalid-messages/bad-boolean-array.message:
10492         * test/data/invalid-messages/bad-boolean.message:
10493         Add invalid boolean value test cases.
10494
10495 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10496
10497         * dbus/dbus-internals.c: (_dbus_type_to_string):
10498         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10499         (_dbus_marshal_validate_arg):
10500         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10501         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10502         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10503         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10504         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10505         (dbus_message_iter_get_double),
10506         (dbus_message_iter_get_boolean_array), (message_iter_test):
10507         * dbus/dbus-message.h:
10508         * dbus/dbus-protocol.h:
10509         * doc/dbus-specification.sgml:
10510         * test/data/valid-messages/lots-of-arguments.message:
10511         Add support for boolean and boolean array types.
10512
10513 2003-02-23  Havoc Pennington  <hp@pobox.com>
10514
10515         * dbus/dbus-keyring.c: finish most of this implementation and
10516         simple unit test
10517
10518         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10519         these barf if the error isn't cleared to NULL
10520
10521         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10522         (_dbus_create_directory): new function
10523
10524         * dbus/dbus-errors.c (dbus_set_error): fix warning
10525
10526         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10527         (_dbus_string_hex_decode): new function
10528         (test_hex_roundtrip): test code
10529
10530         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10531
10532         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10533
10534         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10535         the save-to-temp/rename trick to atomically write the new file
10536         (_dbus_string_parse_uint): new function
10537
10538 2003-02-22  Havoc Pennington  <hp@pobox.com>
10539
10540         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10541
10542 2003-02-22  Havoc Pennington  <hp@pobox.com>
10543
10544         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10545         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10546
10547         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10548
10549         * dbus/test/data/sha-1: add US government test suite for SHA-1
10550
10551 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10552
10553         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10554         Make string arrays NULL-terminated.
10555
10556         * dbus/dbus-memory.c: (dbus_free_string_array):
10557         * dbus/dbus-memory.h:
10558         New function for freeing NULL-terminated string arrays.
10559
10560         * dbus/dbus-message-builder.c: (append_quoted_string),
10561         (_dbus_message_data_load):
10562         Add support for array types.
10563
10564         * dbus/dbus-message.c: (check_message_handling):
10565         Add more types as test cases.
10566
10567         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10568         (_dbus_string_parse_double):
10569         Add the start offset to the end offset.
10570
10571         * test/data/valid-messages/lots-of-arguments.message:
10572         New test message with lots of arguments.
10573
10574 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10575
10576         * dbus/dbus-message.c: (dbus_message_append_nil),
10577         (dbus_message_append_int32), (dbus_message_append_uint32),
10578         (dbus_message_append_double), (dbus_message_append_string),
10579         (dbus_message_append_int32_array),
10580         (dbus_message_append_uint32_array),
10581         (dbus_message_append_double_array),
10582         (dbus_message_append_byte_array),
10583         (dbus_message_append_string_array):
10584         Fix all out-of-memory handling in these functions.
10585
10586 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10587
10588         * dbus/dbus-message.c: (dbus_message_append_nil):
10589         Fix a silly.
10590
10591 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10592
10593         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10594         (dbus_message_append_nil), (dbus_message_append_int32_array),
10595         (dbus_message_append_uint32_array),
10596         (dbus_message_append_double_array),
10597         (dbus_message_append_byte_array),
10598         (dbus_message_append_string_array), (dbus_message_get_args_valist),
10599         (dbus_message_iter_get_int32_array),
10600         (dbus_message_iter_get_uint32_array),
10601         (dbus_message_iter_get_double_array),
10602         (dbus_message_iter_get_byte_array),
10603         (dbus_message_iter_get_string_array):
10604
10605         * dbus/dbus-message.h:
10606         Add functions for appending and getting arrays.
10607
10608 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10609
10610         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10611         element size at least 8 bytes, fixes mempool tests on
10612         64-bit machines.
10613
10614 2003-02-20  Alexander Larsson  <alexl@redhat.com>
10615
10616         * dbus/dbus-transport-unix.c (unix_do_iteration):
10617         Unlock the connection mutex during a blocking select call.
10618         Add todo about how we need a way to wake up the select.
10619
10620         * dbus/dbus-connection-internal.h:
10621         * dbus/dbus-connection.c:
10622         Add _dbus_connection_lock and _dbus_connection_unlock.
10623
10624 2003-02-19  Havoc Pennington  <hp@pobox.com>
10625
10626         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10627         Doxyfile.in, not Doxyfile
10628
10629         * dbus/dbus-keyring.c: do some hacking on this
10630
10631         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10632
10633         * dbus/dbus-errors.c (dbus_set_error_const): do not call
10634         dbus_error_init
10635         (dbus_set_error): remove dbus_error_init, check for message ==
10636         NULL *before* we sprintf into it, and add @todo about including
10637         system headers in this file
10638
10639         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10640
10641         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10642
10643         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10644         get various bits of user information based on either username
10645         or user ID
10646         (_dbus_homedir_from_username): new function
10647
10648 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
10649
10650         * configure.in:
10651         Add check for nonposix getpwnam_r
10652
10653         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10654         Align the pool element size to a sizeof (void *) boundary.
10655
10656         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10657         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10658         General Solaris fixes.
10659
10660         * test/data/valid-messages/simplest-manual.message:
10661         Explicitly state that we want little-endian packing.
10662
10663 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
10664
10665         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10666
10667         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10668         Added to create a transport connecting using a tcp/ip socket.
10669
10670         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10671         to a tcp socket at given host and port.
10672         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10673         hostname and port.
10674
10675         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10676
10677         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10678         Added to create a server listening on a TCP/IP socket.
10679
10680 2003-02-19  Havoc Pennington  <hp@pobox.com>
10681
10682         Throughout: mop up all the Doxygen warnings and undocumented
10683         stuff.
10684
10685         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10686         to search any paths.
10687
10688         * dbus/dbus-threads.c: move global mutex initializers to
10689         dbus-internals.h, multiple prototypes was confusing doxygen
10690         besides being kind of ugly
10691
10692         * Doxyfile (PREDEFINED): have Doxygen define
10693         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10694         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10695         (do not abuse the feature! it's for stuff like the autogenerated
10696         macros in dbus-md5.c, not just for things you don't feel like
10697         documenting...)
10698
10699 2003-02-18  Havoc Pennington  <hp@pobox.com>
10700
10701         * dbus/dbus-string.c (_dbus_string_zero): new function
10702
10703         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10704         wrap it in some dbus-friendly API
10705
10706         * dbus/dbus-types.h: add 16-bit types
10707
10708 2003-02-18  Joe Shaw  <joe@assbarn.com>
10709
10710         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10711         credentials from our currently running process.
10712         (get_word): Fix a buglet where we were copying the entire length
10713         instead of relative to our position.
10714
10715         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10716         keys on the stack... it's 640k of data.
10717
10718         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10719         read the credentials byte off the socket, even if we don't have
10720         SO_PEERCRED.
10721         (_dbus_poll): Implement poll() using select() for systems which
10722         don't have it.
10723
10724         * glib/test-dbus-glib.c (main): Print out an error if no
10725         parameters are given.
10726
10727         * test/data/auth/fallback.auth-script: Added.  Tests that a client
10728         can fallback to a secondary auth mechanism if the first fails.
10729
10730 2003-02-18  Havoc Pennington  <hp@pobox.com>
10731
10732         * AUTHORS: add Alex
10733
10734 2003-02-17  Havoc Pennington  <hp@pobox.com>
10735
10736         * doc/dbus-specification.sgml: lots of cosmetic
10737         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10738         env variable to DBUS_BUS_ADDRESS, s/client/application/,
10739         s/server/bus/ (except in authentication section). Add a section
10740         "Message Bus Message Routing"
10741
10742 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
10743
10744         Release 0.4
10745
10746         * NEWS: Update
10747
10748 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10749
10750         * doc/dbus-specification.sgml:
10751         Specification updates.
10752
10753 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10754
10755         * bus/activation.c: (bus_activation_init), (child_setup),
10756         (bus_activation_activate_service):
10757         * bus/activation.h:
10758         * bus/main.c: (main):
10759         Set DBUS_ADDRESS environment variable.
10760
10761         * dbus/dbus-errors.c: (dbus_set_error):
10762         Don't use va_copy since that's a C99 feature.
10763
10764         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10765         (_dbus_spawn_async):
10766         * dbus/dbus-sysdeps.h:
10767         Add child_setup_func to _dbus_spawn_async.
10768
10769         * doc/dbus-specification.sgml:
10770         Update specification.
10771
10772         * test/spawn-test.c: (setup_func), (main):
10773         Fix test.
10774
10775 2003-02-17  Alexander Larsson  <alexl@redhat.com>
10776
10777         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10778         Added todo.
10779
10780 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10781
10782         * doc/.cvsignore:
10783         * doc/Makefile.am:
10784         * doc/dbus-test-plan.sgml:
10785         Add test plan document.
10786
10787         * test/Makefile.am:
10788         Fix distcheck.
10789
10790 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10791
10792         * dbus/dbus-message.c: (decode_header_data),
10793         (_dbus_message_loader_return_buffer):
10794         Set the header padding amount when loading a message.
10795
10796 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10797
10798         * bus/dispatch.c: (send_one_message):
10799         Only send broadcast messages to registered connections.
10800
10801         * dbus/dbus-message.c: (dbus_message_name_is):
10802         * dbus/dbus-message.h:
10803         New convenience function.
10804
10805         * dbus/dbus-transport-debug.c: (do_reading):
10806         Only dispatch one message per run.
10807
10808         * test/Makefile.am:
10809         * test/bus-test.c: (new_connection_callback), (die),
10810         (test_hello_client1_handler), (test_hello_client2_handler),
10811         (test_hello_replies), (main):
10812
10813         * test/bus-test-loop.[ch]:
10814         Add these.
10815
10816 2003-02-16  Havoc Pennington  <hp@pobox.com>
10817
10818         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10819         backward conditional
10820
10821 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10822
10823         * dbus/dbus-connection.c:
10824         Implement sent_message_with_reply. (with_reply_and block is still
10825         busted).
10826         Made dispatch_message not lose message if OOM.
10827
10828         * dbus/dbus-errors.h:
10829         Add NoReply error (for reply timeouts).
10830
10831 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10832
10833         * dbus/dbus-hash.c (_dbus_hash_table_unref):
10834         Actually free keys and values when destroying hashtable.
10835
10836 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10837
10838         * dbus/dbus-auth.c: (client_try_next_mechanism):
10839         Plug a leak.
10840
10841         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
10842         Return TRUE if there's no thread implementation around.
10843
10844         * glib/dbus-gmain.c: (free_source),
10845         (dbus_connection_hookup_with_g_main):
10846         Make sure to remove the GSource when the connection is finalized.
10847
10848 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10849
10850         * bus/dispatch.c: (bus_dispatch_message_handler):
10851         * dbus/dbus-errors.h:
10852         Return an error if someone tries to send a message to a service
10853         that doesn't exist.
10854
10855 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10856
10857         * bus/activation.c: (load_directory), (bus_activation_init),
10858         (bus_activation_activate_service):
10859         * bus/activation.h:
10860         * bus/driver.c:
10861         (bus_driver_handle_activate_service), (bus_driver_handle_message):
10862         More work on the activation handling.
10863
10864         * dbus/dbus-errors.h:
10865         Add some error messages
10866
10867         * dbus/dbus-message.c: (dbus_message_new_error_reply):
10868         * dbus/dbus-message.h:
10869         New function that creates an error message.
10870
10871         * dbus/dbus-protocol.h:
10872         Add ACTIVATE_SERVER message.
10873
10874         * dbus/dbus-server-unix.c: (unix_handle_watch),
10875         (_dbus_server_new_for_domain_socket):
10876         Call _dbus_fd_set_close_on_exec.
10877
10878         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
10879         (_dbus_spawn_async), (_dbus_disable_sigpipe),
10880         (_dbus_fd_set_close_on_exec):
10881         * dbus/dbus-sysdeps.h:
10882         Add _dbus_fd_set_close_on exec function. Also add function that checks
10883         that all open fds are set to close-on-exec and warns otherwise.
10884
10885         * dbus/dbus-transport-unix.c:
10886         (_dbus_transport_new_for_domain_socket):
10887         Call _dbus_fd_set_close_on_exec.
10888
10889 2003-02-16  Havoc Pennington  <hp@pobox.com>
10890
10891         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
10892         allow people to avoid setting SIGPIPE to SIG_IGN
10893         (_dbus_connection_new_for_transport): disable SIGPIPE unless
10894         we've been asked not to
10895
10896 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10897
10898         * dbus/dbus-list.c: (_dbus_list_append_link),
10899         (_dbus_list_prepend_link):
10900         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
10901         (dbus_realloc):
10902         Warning fixes.
10903
10904 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10905
10906         * bus/Makefile.am:
10907         * bus/activation.c: (bus_activation_entry_free),
10908         (add_desktop_file_entry), (load_directory), (bus_activation_init):
10909         * bus/activation.h:
10910         * bus/main.c: (main):
10911         Add simple activation support, doesn't work yet though.
10912
10913 2003-02-15   Zack Rusin  <zack@kde.org>
10914
10915         * qt/dbus-qthread.cpp:  small casting fix
10916
10917 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10918
10919         * dbus/dbus-errors.c: (dbus_set_error):
10920         * dbus/dbus-errors.h:
10921         Add a few errors and make dbus_set_error void.
10922
10923         * dbus/dbus-sysdeps.c:
10924         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
10925         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
10926         * dbus/dbus-sysdeps.h:
10927         Add _dbus_spawn_async.
10928
10929         * test/spawn-test.c: (main):
10930         Test for _dbus_spawn_async.
10931
10932 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10933
10934         * dbus/dbus-internals.h:
10935         Fix build without tests.
10936
10937         * dbus/dbus-list.c: (alloc_link):
10938         Fix a segfault when a malloc fails.
10939
10940         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
10941         (dbus_malloc0), (dbus_realloc):
10942         Add support for malloc debugging.
10943
10944 2003-02-15  Alexander Larsson  <alexl@redhat.com>
10945
10946         * dbus/dbus-threads.c:
10947         * dbus/dbus-threads.h:
10948         Add condvars. Remove static mutext from API.
10949         Implement static mutexes by initializing them from threads_init.
10950
10951         * glib/dbus-gthread.c:
10952         * qt/dbus-qthread.cpp:
10953         Update with the thread api changes.
10954
10955
10956         * dbus/dbus-list.c:
10957         * dbus/dbus-list.h:
10958         Turn StaticMutex into normal mutex + init function.
10959         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
10960         _dbus_list_append_link, _dbus_list_prepend_link
10961
10962
10963         * dbus/dbus-sysdeps.c:
10964         * dbus/dbus-sysdeps.h:
10965         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
10966         _dbus_atomic_dec. Only slow fallback implementation at the moment.
10967
10968         * dbus/dbus-protocol.h:
10969         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
10970
10971         * dbus/dbus-message.c:
10972         Make ref/unref atomic.
10973         Fix some docs.
10974
10975         * dbus/dbus-connection-internal.h:
10976         * dbus/dbus-connection.c:
10977         * dbus/dbus-connection.h:
10978         Make threadsafe.
10979         Change _peek to _borrow,_return & _steal_borrowed.
10980         Change disconnect callback to event.
10981         Make dbus_connection_dispatch_messages reentrant.
10982
10983         * dbus/dbus-transport.c:
10984         Don't ref the connection on calls to the transport
10985         implementation.
10986
10987         * dbus/dbus-message-handler.c:
10988         Make threadsafe.
10989
10990         * glib/dbus-gmain.c:
10991         Don't use peek_message anymore
10992
10993         * test/Makefile.am:
10994         * test/debug-thread.c:
10995         * test/debug-thread.h:
10996         Simple thread implementation that asserts() on deadlocks in
10997         single-threaded code.
10998
10999         * test/bus-test.c:
11000         (main) Call debug_threads_init.
11001
11002         * test/watch.c:
11003         Use disconnect message instead of disconnect callback.
11004
11005         * bus/connection.c:
11006         * bus/connection.h:
11007         Don't call dbus_connection_set_disconnect_function. Instead export
11008         bus_connection_disconnect.
11009
11010         * bus/dispatch.c:
11011         Call bus_connection_disconnect when we get a disconnected message.
11012
11013 2003-02-15  Havoc Pennington  <hp@pobox.com>
11014
11015         * dbus/dbus-message.c (dbus_message_new): fool around with the
11016         docs
11017
11018 2003-02-14  Havoc Pennington  <hp@pobox.com>
11019
11020         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11021
11022         * dbus/dbus-memory.c: fail if the debug functions indicate we
11023         should
11024
11025         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11026         (_dbus_decrement_fail_alloc_counter): debug functions to
11027         simulate memory allocation failures
11028
11029 2003-02-14  Havoc Pennington  <hp@pobox.com>
11030
11031         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11032         to DBusError
11033
11034 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11035
11036         * bus/driver.c: (bus_driver_handle_hello):
11037         * bus/driver.h:
11038         * bus/services.c: (bus_service_lookup):
11039         Reorder message sending so we get a more sane order.
11040
11041         * test/bus-test.c: (message_handler):
11042         Fix tyop.
11043
11044 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11045
11046         * bus/driver.c: (bus_driver_send_service_deleted),
11047         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11048         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11049         (bus_driver_send_welcome_message),
11050         (bus_driver_handle_list_services),
11051         (bus_driver_handle_acquire_service),
11052         (bus_driver_handle_service_exists):
11053         * dbus/dbus-bus.c: (dbus_bus_register_client),
11054         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11055         * dbus/dbus-errors.c: (dbus_result_to_string):
11056         * dbus/dbus-errors.h:
11057         * dbus/dbus-message.c: (dbus_message_append_args),
11058         (dbus_message_append_args_valist), (dbus_message_get_args),
11059         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11060         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11061         (dbus_message_iter_get_byte_array),
11062         (dbus_message_iter_get_string_array), (message_iter_test),
11063         (check_message_handling), (_dbus_message_test):
11064         * dbus/dbus-message.h:
11065         * test/bus-test.c: (main):
11066         Change fields to arguments in messages, so that they won't be
11067         confused with header fields.
11068
11069         * glib/test-dbus-glib.c: (main):
11070         Remove append_fields from hello message.
11071
11072 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11073
11074         * dbus/dbus-errors.c:
11075         * dbus/dbus-message.c:
11076         * dbus/dbus-string.c:
11077         Documentation fixes.
11078
11079 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11080
11081         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11082         (remove_timeout):
11083         Implement support for timeouts in dbus-glib.
11084
11085 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11086
11087         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11088         * dbus/dbus-message.c: (process_test_subdir):
11089         * test/break-loader.c: (find_breaks_based_on):
11090         Plug some memory leaks.
11091
11092 2003-02-13  Richard Hult  <rhult@codefactory.se>
11093
11094         * bus/main.c: Fix build.
11095
11096         * dbus/dbus-errors.h:
11097         * dbus/dbus-errors.c: Fix copyright for Anders.
11098
11099 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11100
11101         * bus/Makefile.am:
11102         Add utils.[ch]
11103
11104         * bus/connection.c: (bus_connection_foreach):
11105         Fix a warning.
11106
11107         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11108         (unescape_string), (new_section), (parse_section_start),
11109         (parse_key_value), (report_error), (bus_desktop_file_load),
11110         (bus_desktop_file_get_string):
11111         * bus/desktop-file.h:
11112         Use DBusError for error reporting.
11113
11114         * bus/dispatch.c: (send_one_message),
11115         (bus_dispatch_message_handler):
11116         * bus/driver.c: (bus_driver_send_service_deleted),
11117         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11118         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11119         (bus_driver_send_welcome_message),
11120         (bus_driver_handle_list_services),
11121         (bus_driver_handle_acquire_service),
11122         (bus_driver_handle_service_exists):
11123         * bus/loop.c: (bus_loop_run):
11124         * bus/main.c:
11125         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11126
11127         * bus/utils.c: (bus_wait_for_memory):
11128         * bus/utils.h:
11129         New files with general utility functions.
11130
11131         * dbus/dbus-internals.h:
11132         Remove _DBUS_HANDLE_OOM.
11133
11134 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11135
11136         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11137         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11138         * dbus/dbus-errors.h:
11139         Add DBusError structure.
11140
11141 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11142
11143         * test/data/valid-messages/standard-acquire-service.message:
11144         * test/data/valid-messages/standard-hello.message:
11145         * test/data/valid-messages/standard-list-services.message:
11146         * test/data/valid-messages/standard-service-exists.message:
11147         Add some standard messages.
11148
11149 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11150
11151         * bus/driver.c: (bus_driver_send_welcome_message),
11152         (bus_driver_handle_list_services),
11153         (bus_driver_handle_acquire_service),
11154         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11155         Update for API changes in libdbus.
11156
11157         * dbus/dbus-message.c: (dbus_message_new_reply):
11158         * dbus/dbus-message.h:
11159         Remove the name argument. The spec states that replies shouldn't
11160         have a name.
11161
11162 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11163
11164         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11165         (report_error), (bus_desktop_file_load), (lookup_section),
11166         (lookup_line), (bus_desktop_file_get_raw),
11167         (bus_desktop_file_get_string):
11168         * bus/desktop-file.h:
11169         Some fixes, and new functions for getting a key value from a section.
11170
11171 2003-02-13  Havoc Pennington  <hp@pobox.com>
11172
11173         * test/data/auth/fail-after-n-attempts.auth-script: new test
11174
11175         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11176         reject the client.
11177
11178 2003-02-13  Havoc Pennington  <hp@pobox.com>
11179
11180         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11181         dbus_credentials_match were backward
11182
11183         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11184         NO_CREDENTIALS and ROOT_CREDENTIALS
11185
11186         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11187         into here. Never process more commands after we've reached an
11188         end state; store further data as unused bytes.
11189
11190         * test/data/auth/*: add more auth tests
11191
11192         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11193         command to match exact string and EXPECT_UNUSED to match unused
11194         bytes
11195
11196         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11197
11198 2003-02-12  Havoc Pennington  <hp@pobox.com>
11199
11200         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11201         \r off of popped lines
11202
11203         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11204         scripts
11205
11206         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11207         SEND, append \r\n
11208
11209 2003-02-12  Havoc Pennington  <hp@pobox.com>
11210
11211         * dbus/Makefile.am: remove break-loader from the build, since it
11212         moved.
11213
11214         * configure.in: add --enable-gcov to turn on coverage profiling
11215         flags and disable optimization
11216
11217 2003-02-10  Havoc Pennington  <hp@pobox.com>
11218
11219         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11220         initial cut at test framework for DBusAuth from laptop.
11221         Doesn't quite work yet but it compiles and I need to get
11222         it off the 266mhz laptop. ;-)
11223
11224         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11225         fix a memleak in error case
11226
11227 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11228
11229         * bus/Makefile.am:
11230         * bus/desktop-file.c:
11231         * bus/desktop-file.h:
11232         Add a desktop file parser.
11233
11234 2003-02-11  Zack Rusin  <zack@kde.org>
11235
11236         * qt/message.[h|cpp]: sample implementation
11237         of the KDE wrapper for DBusMessage
11238
11239 2003-02-09  Zack Rusin  <zack@kde.org>
11240
11241         * test/bus-test.c: make_it_compile
11242         * doc/dbus-specification.sgml: minimal semantic fix
11243
11244 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11245
11246         Release 0.3
11247
11248         * NEWS: Update
11249
11250 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11251
11252         * dbus/Makefile.am:
11253         * dbus/dbus-break-loader.c:
11254         * test/Makefile.am:
11255         * test/break-loader.c:
11256         Move dbus-break-loader to test/ and rename it to break-loader.
11257
11258 2003-02-02  Havoc Pennington  <hp@pobox.com>
11259
11260         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11261         for code to manage cookies in your home directory
11262
11263         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11264
11265         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11266         to authenticate, then disconnect the client.
11267
11268 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11269
11270         * dbus/dbus-message.c (dbus_message_append_fields):
11271         Correct docs.
11272
11273 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11274
11275         * doc/dbus-specification.sgml:
11276         Update address format section.
11277
11278 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11279
11280         * test/Makefile.am:
11281         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11282         (message_handler), (new_connection_callback), (loop_quit),
11283         (loop_run), (main):
11284         Add bus test.
11285
11286 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11287
11288         * bus/driver.c: (bus_driver_handle_service_exists):
11289         Simplify the code a bit.
11290
11291         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11292         Fix a silly.
11293
11294 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11295
11296         * bus/Makefile.am:
11297         Add libdbus-daemon.la and link to it.
11298
11299 2003-02-01  James Willcox  <jwillcox@gnome.org>
11300
11301         * bus/driver.c: (bus_driver_handle_own_service):
11302         Actually include the service reply code in the message.
11303
11304 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11305
11306         * bus/driver.c: (bus_driver_handle_service_exists):
11307         Don't unref the incoming message.
11308
11309 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11310
11311         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11312
11313 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11314
11315         * dbus/dbus-server.c: (dbus_server_listen):
11316         * dbus/dbus-transport.c: (_dbus_transport_open):
11317         ifdef out the calls to the debug transport and server.
11318
11319 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11320
11321         * dbus/dbus-watch.c (dbus_watch_get_flags):
11322         Add note in the docs that ERROR or HANGUP won't be returned
11323         and are assumed always on.
11324
11325         * glib/dbus-gmain.c (add_watch):
11326         Always add IO_ERR | IO_HUP
11327
11328         * dbus/dbus-message.h:
11329         Add semicolon after dbus_message_iter_get_string_array().
11330         Makes qt code build again
11331
11332 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11333
11334         * bus/driver.c: (create_unique_client_name),
11335         (bus_driver_handle_hello):
11336         Don't take a name, just use a numeric id to identify
11337         each client.
11338
11339         * dbus/Makefile.am:
11340         * dbus/dbus-bus.c: (dbus_bus_register_client),
11341         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11342         * dbus/dbus-bus.h:
11343         Add new convenience functions for communicating with the bus.
11344
11345         * dbus/dbus-message.h:
11346
11347         * dbus/dbus-protocol.h:
11348         Fix a typo.
11349
11350 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11351
11352         * dbus/dbus-message.c (dbus_message_append_fields):
11353         Add some more doc comments.
11354
11355 2003-02-01  Havoc Pennington  <hp@pobox.com>
11356
11357         * dbus/dbus-break-loader.c (randomly_modify_length): change
11358         a 4-byte value in the message as if it were a length
11359
11360         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11361         execute bit on saved files
11362
11363 2003-02-01  Havoc Pennington  <hp@pobox.com>
11364
11365         * dbus/dbus-break-loader.c (main): new program to find messages
11366         that break the loader.
11367
11368         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11369         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11370
11371         * dbus/dbus-string.c (_dbus_string_set_byte): new
11372
11373 2003-01-31  Havoc Pennington  <hp@pobox.com>
11374
11375         * dbus/dbus-message.c: refactor the test code to be more general,
11376         in preparation for writing a "randomly permute test cases to
11377         try to break the loader" program.
11378
11379 2003-01-31  Havoc Pennington  <hp@pobox.com>
11380
11381         * doc/dbus-specification.sgml: work on the specification
11382
11383         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11384         the protocol version of the message.
11385
11386         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11387         no longer specifies that.
11388         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11389         1/2/3/4)
11390
11391         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11392         "break" for DBUS_TYPE_NIL, remove @todo
11393
11394 2003-01-31  Havoc Pennington  <hp@pobox.com>
11395
11396         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11397         just set_is_error/get_is_error as this is a commonly-used
11398         function, and write docs.
11399
11400 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11401
11402         * dbus/dbus-address.c: (dbus_address_entry_free):
11403         Free key and value lists.
11404
11405         * dbus/dbus-internals.c: (_dbus_type_to_string):
11406         Add the types we didn't have.
11407
11408         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11409         (_dbus_marshal_validate_arg):
11410         Add NIL types.
11411
11412         * dbus/dbus-message.c: (dbus_message_set_sender):
11413         Remove todo about being able to set sender to NULL.
11414
11415         (dbus_message_set_is_error_reply),
11416         (dbus_message_get_is_error_reply):
11417         * dbus/dbus-message.h:
11418         New functions.
11419
11420         * dbus/dbus-protocol.h:
11421         Add error reply flag.
11422
11423         * test/data/valid-messages/opposite-endian.message:
11424         Add NIL type to test.
11425
11426 2003-01-31  Havoc Pennington  <hp@pobox.com>
11427
11428         * doc/dbus-specification.sgml: fully specify the header.  Add
11429         flags and major protocol version, and change header/body len to
11430         unsigned.
11431
11432         * dbus/dbus-message-builder.c (append_saved_length): append length
11433         as uint32
11434
11435         * dbus/dbus-message.c (dbus_message_create_header): change header
11436         length and body length to unsigned. Add the new fields from the
11437         spec
11438         (_dbus_message_loader_return_buffer): unsigned header/body len
11439
11440 2003-01-30  Havoc Pennington  <hp@pobox.com>
11441
11442         * dbus/dbus-auth.c: rework to use only REJECTED, no
11443         MECHANISMS
11444
11445         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11446         use REJECTED, suggested by Mark McLoughlin
11447
11448 2003-01-30  Havoc Pennington  <hp@pobox.com>
11449
11450         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11451         a better way to report errors here. e.g.  "unix address lacks
11452         path" or something. also "no such file" when the path doesn't
11453         exist, etc.
11454
11455         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11456         leaking list nodes
11457         (dbus_parse_address): add @todo about documenting address format,
11458         and allowing , and ; to be escaped
11459
11460 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11461
11462         * dbus/Makefile.am:
11463         Add dbus-address.[ch]
11464
11465         * dbus/dbus-address.c: (dbus_address_entry_free),
11466         (dbus_address_entries_free), (create_entry),
11467         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11468         (dbus_parse_address), (_dbus_address_test):
11469         * dbus/dbus-address.h:
11470         New files for dealing with address parsing.
11471
11472         * dbus/dbus-connection.c:
11473         Document timeout functions.
11474
11475         * dbus/dbus-message.c:
11476         Document dbus_message_new_from_message.
11477
11478         * dbus/dbus-server-debug.c:
11479         Document.
11480
11481         * dbus/dbus-server.c: (dbus_server_listen):
11482         Parse address and use correct server implementation.
11483
11484         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11485         * dbus/dbus-string.h:
11486         New function with test.
11487
11488         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11489         * dbus/dbus-test.h:
11490         Add address tests.
11491
11492         * dbus/dbus-transport-debug.c:
11493         Document.
11494
11495         * dbus/dbus-transport.c: (_dbus_transport_open):
11496         Parse address and use correct transport implementation.
11497
11498 2003-01-30  Havoc Pennington  <hp@pobox.com>
11499
11500         * dbus/dbus-message.c: use message->byte_order instead of
11501         DBUS_COMPILER_BYTE_ORDER throughout.
11502         (dbus_message_create_header): pad header to align the
11503         start of the body of the message to 8-byte boundary
11504
11505         * dbus/dbus-marshal.h: make all the demarshalers take const
11506         DBusString arguments.
11507
11508         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11509         validate message args here, so we don't have to do slow validation
11510         later, and so we catch bad messages as they are incoming. Also add
11511         better checks on header_len and body_len. Also fill in
11512         message->byte_order
11513
11514         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11515         implemented properly)
11516         (_dbus_string_validate_nul): new function to check all-nul
11517
11518         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11519         get_arg_end_pos and remove all validation
11520         (_dbus_marshal_validate_arg): actually do validation here.
11521
11522 2003-01-29  Havoc Pennington  <hp@pobox.com>
11523
11524         * dbus/dbus-message.c (check_message_handling): fix assertion
11525         failure on set_client_serial
11526
11527 2003-01-28  Havoc Pennington  <hp@pobox.com>
11528
11529         * dbus/dbus-server-debug.c: Add doc section comments
11530
11531         * dbus/dbus-transport-debug.c: add doc section comments
11532
11533 2003-01-28  Havoc Pennington  <hp@redhat.com>
11534
11535         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11536         the reverse order from how I had it
11537         (_dbus_string_base64_encode): reverse encoding order. I was
11538         basically byteswapping everything during encoding.
11539
11540 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11541
11542         * dbus/dbus-connection-internal.h:
11543         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11544         (_dbus_connection_remove_timeout):
11545         Add functions for adding and removing timeouts.
11546
11547         * dbus/dbus-message.c: (dbus_message_new_from_message):
11548         Add new function that takes a message and creates an exact
11549         copy of it, but with the refcount set to 1.
11550         (check_message_handling):
11551         Fix build error.
11552
11553         * dbus/dbus-server-protected.h:
11554         * dbus/dbus-server.c: (_dbus_server_init_base),
11555         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11556         (dbus_server_set_timeout_functions):
11557         (_dbus_server_remove_timeout):
11558         New functions so that a server can add and remove timeouts.
11559
11560         (dbus_server_listen):
11561         Add commented out call to dbus_server_debug_new.
11562
11563         * dbus/dbus-timeout.c: (_dbus_timeout_new):
11564         Actually set the handler, doh.
11565
11566         * dbus/dbus-transport.c: (_dbus_transport_open):
11567         Add commented out call to dbus_transport_debug_client_new.
11568
11569         * dbus/Makefile.am:
11570         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11571
11572 2003-01-28  Havoc Pennington  <hp@pobox.com>
11573
11574         * dbus/dbus-message.c (check_message_handling): function to check
11575         on the loaded message, iterates over it etc.
11576
11577 2003-01-28  Havoc Pennington  <hp@pobox.com>
11578
11579         * test/Makefile.am (dist-hook): fix make distdir
11580
11581         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11582
11583 2003-01-27  Havoc Pennington  <hp@pobox.com>
11584
11585         * dbus/dbus-mempool.c (time_for_size): replace printf with
11586         _dbus_verbose
11587
11588         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11589         empty lines; fix the SAVE_LENGTH stuff to be
11590         START_LENGTH/END_LENGTH so it actually works; couple other
11591         bugfixes
11592
11593         * test/Makefile.am (dist-hook): add dist-hook for .message files
11594
11595         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11596         can be constant or locked.
11597         (_dbus_string_free): allow freeing a const string as
11598         documented/intended
11599
11600         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11601
11602         * dbus/dbus-test-main.c (main): take an argument which is the
11603         directory containing test data
11604
11605         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11606         argument to this and load all the messages in test/data/
11607         checking that they can be loaded or not loaded as appropriate.
11608
11609 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
11610
11611         * bus/dispatch.c: (bus_dispatch_message_handler):
11612         Dispatch messages sent to services.
11613
11614         * bus/driver.c: (bus_driver_send_service_deleted),
11615         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11616         (bus_driver_send_service_acquired):
11617         Add helper functions for sending service related messages.
11618
11619         (bus_driver_send_welcome_message):
11620         Send HELLO_REPLY instead of WELCOME.
11621
11622         (bus_driver_handle_list_services):
11623         Send LIST_SERVICES_REPLY instead of SERVICES.
11624
11625         (bus_driver_handle_own_service),
11626         (bus_driver_handle_service_exists):
11627         New message handlers.
11628
11629         (bus_driver_handle_message):
11630         Invoke new message handlers.
11631
11632         (bus_driver_remove_connection):
11633         Don't remove any services here since that's done automatically
11634         by bus_service_remove_owner now.
11635
11636         * bus/driver.h:
11637         New function signatures.
11638
11639         * bus/services.c: (bus_service_add_owner):
11640         Send ServiceAcquired message if we're the only primary owner.
11641
11642         (bus_service_remove_owner):
11643         Send ServiceAcquired/ServiceLost messages.
11644
11645         (bus_service_set_prohibit_replacement),
11646         (bus_service_get_prohibit_replacement):
11647         Functions for setting prohibit replacement.
11648
11649         (bus_service_has_owner):
11650         New function that checks if a connection is in the owner queue of
11651         a certain service.
11652
11653         * bus/services.h:
11654         Add new function signatures.
11655
11656         * dbus/dbus-list.c: (_dbus_list_test):
11657         Add tests for _dbus_list_remove_last and traversing the list backwards.
11658
11659         * dbus/dbus-list.h:
11660         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11661         go any further, so return NULL then.
11662
11663         * dbus/dbus-protocol.h:
11664         Add new messages, service flags and service replies.
11665
11666 2003-01-26  Havoc Pennington  <hp@pobox.com>
11667
11668         * dbus/dbus-message-builder.c: implement, completely untested.
11669
11670         * test/data/*: add data to be used in testing.
11671         ".message" files are our simple loadable text format.
11672         ".message-raw" will be binary dumps of messages.
11673
11674         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11675
11676 2003-01-26  Havoc Pennington  <hp@pobox.com>
11677
11678         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11679
11680         * dbus/dbus-errors.c (dbus_result_to_string): add
11681         file errors
11682
11683         * dbus/dbus-message-builder.c: new file, will contain code to load
11684         up messages from files. Not implemented yet.
11685
11686 2003-01-26  Havoc Pennington  <hp@pobox.com>
11687
11688         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11689         the sender by setting to NULL
11690
11691 2003-01-26  Havoc Pennington  <hp@pobox.com>
11692
11693         The unit tests pass, but otherwise untested.  If it breaks, the
11694         tests should have been better. ;-)
11695
11696         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11697         the connection.
11698
11699         * dbus/dbus-message.c: redo everything so we maintain
11700         message->header as the only copy of the various fields.
11701         This avoids the possibility of out-of-memory in some cases,
11702         for example dbus_message_lock() can't run out of memory anymore,
11703         and avoids extra copying. Figured I may as well go ahead and do
11704         this since it was busted for dbus_message_lock to not return
11705         failure on OOM, and dbus_message_write_header was totally
11706         unchecked for OOM. Also fixed some random other bugs.
11707
11708         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11709         that strings are nul-terminated. Also, end_pos can be equal
11710         to string length just not greater than, I think.
11711         (_dbus_marshal_set_int32): new function
11712         (_dbus_marshal_set_uint32): new function
11713         (_dbus_marshal_set_string): new function
11714
11715         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11716         a warning, init timeout_list to NULL
11717         (dbus_connection_send_message): don't use uninitialized variable
11718         "serial"
11719
11720         * dbus/dbus-string.c (_dbus_string_replace_len): new function
11721
11722 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11723
11724         * bus/driver.c: (bus_driver_handle_hello),
11725         (bus_driver_send_welcome_message):
11726         Plug leaks
11727
11728 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11729
11730         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11731         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11732         (dbus_connection_unref):
11733         * dbus/dbus-marshal.c: (_dbus_marshal_test):
11734         * dbus/dbus-message.c: (dbus_message_unref),
11735         Plug memory leaks.
11736
11737         (dbus_message_get_fields):
11738         Remove debugging printout.
11739
11740         (_dbus_message_loader_return_buffer):
11741         Don't store the header string.
11742
11743         (_dbus_message_test):
11744         Plug leaks.
11745
11746 2003-01-26  Richard Hult  <rhult@codefactory.se>
11747
11748         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11749         the file descriptor list, since it can change under us.
11750
11751 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11752
11753         * glib/dbus-gmain.c: (dbus_connection_prepare),
11754         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11755         (remove_watch), (dbus_connection_hookup_with_g_main):
11756         Rewrite the glib handling to use its own GSource instead of a
11757         GIOChannel so we can catch messages put in the queue while waiting
11758         for a reply.
11759
11760 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11761
11762         * bus/Makefile.am:
11763         * bus/connection.c: (connection_disconnect_handler),
11764         (connection_watch_callback), (bus_connection_setup):
11765         * bus/dispatch.c: (send_one_message),
11766         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11767         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11768         * bus/dispatch.h:
11769         * bus/driver.c: (bus_driver_send_service_deleted),
11770         (bus_driver_send_service_created), (bus_driver_handle_hello),
11771         (bus_driver_send_welcome_message),
11772         (bus_driver_handle_list_services), (bus_driver_remove_connection),
11773         (bus_driver_handle_message):
11774         * bus/driver.h:
11775         Refactor code, put the message dispatching in its own file. Use
11776         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11777         is disconnected.
11778
11779 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11780
11781         * dbus/dbus-internals.h:
11782         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11783
11784         * dbus/dbus-message.c: (dbus_message_get_sender):
11785         * dbus/dbus-message.h:
11786         Implement dbus_message_get_sender.
11787
11788         * dbus/dbus-protocol.h:
11789         Add message and service defines.
11790
11791 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11792
11793         * dbus/dbus-connection.c: (dbus_connection_send_message):
11794         * dbus/dbus-message-internal.h:
11795         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11796         (dbus_message_write_header):
11797         Remove _dbus_messag_unlock and don't set the client serial on a
11798         message if one already exists.
11799
11800 2003-01-24  Havoc Pennington  <hp@pobox.com>
11801
11802         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
11803         list_pool
11804
11805         * bus/driver.c (bus_driver_handle_list_services): fix a leak
11806         on OOM
11807
11808 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11809
11810         * dbus/dbus-list.c: (alloc_link), (free_link):
11811         Use a memory pool for the links.
11812
11813 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11814
11815         * bus/connection.c: (bus_connection_foreach):
11816         * bus/connection.h:
11817         Add new bus_connection_foreach function.
11818
11819         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
11820         Add function that broadcasts a message to all clients.
11821
11822         (bus_driver_send_service_created), (bus_driver_handle_hello),
11823         (bus_driver_send_welcome_message),
11824         (bus_driver_handle_list_services), (bus_driver_message_handler):
11825         Implement functions that take care of listing services, and notifying
11826         clients when new services are created.
11827
11828         * bus/services.c: (bus_services_list):
11829         * bus/services.h:
11830         Add new function that returns an array of strings with the currently
11831         registered services.
11832
11833         * glib/dbus-glib.h:
11834         * glib/dbus-gmain.c:
11835         Update copyright year.
11836
11837 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11838
11839         * dbus/dbus-connection.c: (dbus_connection_send_message):
11840         Unlock the message in case it was sent earlier.
11841
11842         (dbus_connection_send_message_with_reply_and_block):
11843         Remove the reply message from the list.
11844
11845         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11846         Set array_len and new_pos correctly.
11847
11848         (_dbus_marshal_test):
11849         Remove debug output.
11850
11851         * dbus/dbus-message-internal.h:
11852         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
11853         New function that returns the reply serial.
11854
11855         (_dbus_message_unlock):
11856         New function that unlocks a message and resets its header.
11857
11858         (dbus_message_append_string_array),
11859         (dbus_message_get_fields_valist),
11860         (dbus_message_iter_get_field_type),
11861         (dbus_message_iter_get_string_array),
11862         (dbus_message_get_fields),
11863         (dbus_message_append_fields_valist):
11864         Handle string arrays.
11865
11866         (dbus_message_set_sender):
11867         Make this function public since the bus daemon needs it.
11868
11869         (decode_header_data):
11870         Set the reply serial to -1 initially.
11871
11872         * dbus/dbus-message.h:
11873         Add dbus_message_set_sender.
11874
11875 2003-01-24  Havoc Pennington  <hp@pobox.com>
11876
11877         * doc/dbus-specification.sgml: add some stuff
11878
11879 2003-01-22  Havoc Pennington  <hp@pobox.com>
11880
11881         * doc/dbus-specification.sgml: Start to document the protocol.
11882
11883 2003-01-22  Havoc Pennington  <hp@pobox.com>
11884
11885         * dbus/dbus-connection.c
11886         (dbus_connection_send_message_with_reply_and_block): add some @todo
11887
11888         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
11889
11890 2003-01-21  Havoc Pennington  <hp@pobox.com>
11891
11892         (patch untested because can't compile)
11893
11894         * bus/driver.c (create_unique_client_name): make this function
11895         never recycle client names. Also, caller should initialize
11896         the DBusString.
11897
11898         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
11899
11900 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
11901
11902         * dbus/dbus-marshal.c: (_dbus_marshal_double),
11903         (_dbus_marshal_int32), (_dbus_marshal_uint32),
11904         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
11905         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
11906         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11907         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11908         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
11909         * dbus/dbus-marshal.h:
11910         * dbus/dbus-protocol.h:
11911         Add support for marshalling and demarshalling integer, double
11912         and string arrays.
11913
11914 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
11915
11916         * bus/Makefile.am:
11917         Add driver.[ch]
11918
11919         * bus/connection.c: (connection_disconnect_handler):
11920         Remove the connection from the bus driver's list.
11921
11922         (connection_watch_callback): Dispatch messages.
11923
11924         (free_connection_data): Free connection name.
11925
11926         (bus_connection_setup): Add connection to the bus driver's list.
11927         (bus_connection_remove_owned_service):
11928         (bus_connection_set_name), (bus_connection_get_name):
11929         Add functions for setting and getting the connection's name.
11930
11931         * bus/connection.h:
11932         Add function headers.
11933
11934         * bus/driver.c: (create_unique_client_name),
11935         (bus_driver_handle_hello_message),
11936         (bus_driver_send_welcome_message), (bus_driver_message_handler),
11937         (bus_driver_add_connection), (bus_driver_remove_connection):
11938         * bus/driver.h:
11939         * bus/main.c:
11940         * bus/services.c: (bus_service_free):
11941         * bus/services.h:
11942         New file that handles communication and registreation with the bus
11943         itself.
11944
11945 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
11946
11947         * dbus/dbus-connection.c: (dbus_connection_send_message):
11948         Add a new client_serial parameter.
11949
11950         (dbus_connection_send_message_with_reply):
11951         Remove a @todo since we've implemented the blocking function.
11952
11953         (dbus_connection_send_message_with_reply_and_block):
11954         New function that sends a message and waits for a reply and
11955         then returns the reply.
11956
11957         * dbus/dbus-connection.h:
11958         Add new functions.
11959
11960         * dbus/dbus-errors.c: (dbus_result_to_string):
11961         * dbus/dbus-errors.h:
11962         Add new DBUS_RESULT.
11963
11964         * dbus/dbus-message-internal.h:
11965         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
11966         (_dbus_message_set_sender), (dbus_message_write_header),
11967         (dbus_message_new_reply), (decode_header_data),
11968         (_dbus_message_loader_return_buffer), (_dbus_message_test):
11969         * dbus/dbus-message.h:
11970         Add new functions that set the reply serial and sender.
11971         Also marshal and demarshal them correctly and add test.
11972
11973         * dbus/dbus-protocol.h:
11974         Add new DBUS_MESSAGE_TYPE_SENDER.
11975
11976         * glib/dbus-glib.h:
11977         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
11978         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
11979         (dbus_connection_hookup_with_g_main):
11980         * glib/test-dbus-glib.c: (main):
11981         Rewrite to use GIOChannel and remove the GSource crack.
11982
11983         * test/echo-client.c: (main):
11984         * test/watch.c: (check_messages):
11985         Update for changed APIs
11986
11987 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
11988
11989         * dbus/Makefile.am: Add dbus-timeout.[cħ]
11990
11991         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
11992         Create a DBusTimeoutList.
11993         (dbus_connection_set_timeout_functions): Add new function to
11994         set timeout callbacks
11995
11996         * dbus/dbus-connection.h: Add public DBusTimeout API.
11997
11998         * dbus/dbus-message.c: (dbus_message_get_service):
11999         * dbus/dbus-message.h:  New function.
12000
12001         * dbus/dbus-server.c: Fix small doc typo.
12002
12003         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12004
12005 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12006
12007         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12008         of the string, just as long as specified.
12009
12010 2003-01-19  Havoc Pennington  <hp@pobox.com>
12011
12012         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12013         new function
12014
12015         * dbus/dbus-server.c (dbus_server_set_max_connections)
12016         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12017         keep track of current number of connections, and add API for
12018         setting a max (but haven't implemented enforcing the max yet)
12019
12020 2003-01-18  Havoc Pennington  <hp@pobox.com>
12021
12022         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12023         reading/writing if read_watch != NULL or write_watch != NULL.
12024
12025         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12026         the message loader code to actually load message->header and
12027         message->body into the newly-created message.
12028
12029         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12030         in OOM case
12031
12032         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12033         (dbus_connection_get_max_message_size)
12034         (dbus_connection_set_max_live_messages_size)
12035         (dbus_connection_get_max_live_messages_size): implement some
12036         resource limitation functions
12037
12038         * dbus/dbus-resources.c: new file implementing some of the
12039         resource limits stuff
12040
12041         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12042         missing docs, add @todo to handle OOM etc.
12043
12044         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12045         docs
12046
12047 2003-01-18  Havoc Pennington  <hp@pobox.com>
12048
12049         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12050         connection if it hasn't been already.
12051
12052         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12053         replace with DisconnectFunction.
12054
12055 2003-01-18  Havoc Pennington  <hp@pobox.com>
12056
12057         Building --disable-verbose-mode --disable-asserts --disable-tests
12058         cuts the library from 112K to 45K or so
12059
12060         * configure.in: check for varargs macro support,
12061         add --enable-verbose-mode, --enable-asserts.
12062
12063         * dbus/dbus-internals.h (_dbus_assert): support
12064         DBUS_DISABLE_ASSERT
12065         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12066
12067 2003-01-18  Havoc Pennington  <hp@pobox.com>
12068
12069         * dbus/dbus-test.c: include config.h so that tests actually run
12070
12071         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12072         so the failure mode when that assumption fails will be plenty
12073         obvious.
12074
12075 2003-01-18  Havoc Pennington  <hp@pobox.com>
12076
12077         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12078
12079         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12080         the distribution
12081
12082         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12083         since we don't want to use those in make check
12084
12085 2003-01-15  Havoc Pennington  <hp@redhat.com>
12086
12087         Release 0.2
12088
12089         * NEWS: update
12090
12091 2003-01-15  Havoc Pennington  <hp@redhat.com>
12092
12093         * test/Makefile.am: fix so that test source code ends up in the
12094         distribution on make distcheck
12095
12096 2003-01-15  Havoc Pennington  <hp@redhat.com>
12097
12098         Release 0.1.
12099
12100         * NEWS: update
12101
12102 2003-01-15  Havoc Pennington  <hp@redhat.com>
12103
12104         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12105         fix build when --disable-tests
12106
12107         * Makefile.am (EXTRA_DIST): put HACKING in here
12108
12109         * HACKING: document procedure for making a tarball release.
12110
12111 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12112
12113         * bus/connection.c: (connection_error_handler),
12114         (bus_connection_setup):
12115         * bus/main.c: (main):
12116         Make sure that the DBusConnectionData struct is NULLed
12117         out to prevent a segfault.
12118
12119         * dbus/dbus-errors.c: (dbus_result_to_string):
12120         * dbus/dbus-errors.h:
12121         * dbus/dbus-message.c: (dbus_message_get_fields),
12122         (dbus_message_get_fields_valist), (_dbus_message_test):
12123         * dbus/dbus-message.h:
12124         Make dbus_message_get_fields return a result code so we can
12125         track invalid fields as well as oom.
12126
12127 2003-01-11  Havoc Pennington  <hp@pobox.com>
12128
12129         * configure.in: change --enable-test/--enable-ansi action-if-given
12130         to enable_foo=$enableval instead of enable_foo=yes
12131
12132 2003-01-08  Havoc Pennington  <hp@pobox.com>
12133
12134         * dbus/dbus-string.c (_dbus_string_align_length): new function
12135
12136         * dbus/dbus-test-main.c: move main() for test app here
12137         * dbus/dbus-test.c
12138         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12139         symbol to run tests, because dbus-test isn't in the main
12140         library
12141
12142         Code review nitpicks.
12143
12144         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12145         for people with narrow emacs ;-). Assert client_serial was filled
12146         in. Assert message->name != NULL.
12147         (dbus_message_append_fields): have "first_field_type" arg separate
12148         from va list, needed for C++ binding that also uses varargs IIRC
12149         and helps with type safety
12150         (dbus_message_new): add @todo about using DBusString to store
12151         service/name internally
12152         (dbus_message_new): don't leak ->service and ->name on OOM later
12153         in the function
12154         (dbus_message_unref): free the service name
12155         (dbus_message_get_fields): same change to varargs
12156         i.e. first_field_type
12157         (_dbus_message_loader_return_buffer): assert that the message data
12158         is aligned (if not it's a bug in our code). Put in verbose griping
12159         about why we set corrupted = TRUE.
12160         (decode_header_data): add FIXME that char* is evil.  Was going to
12161         add FIXME about evil locale-specific string.h strncmp, but just
12162         switched to wacky string-as-uint32 optimization. Move check for
12163         "no room for field name" above get_const_data_len() to avoid
12164         assertion failure in get_const_data_len if we have trailing 2
12165         bytes or the like. Check for service and name fields being
12166         provided twice. Don't leak service/name on error. Require field
12167         names to be aligned to 4 bytes.
12168
12169         * dbus/dbus-marshal.c: move byte swap stuff to header
12170         (_dbus_pack_int32): uscore-prefix
12171         (_dbus_unpack_int32): uscore-prefix
12172         (_dbus_unpack_uint32): export
12173         (_dbus_demarshal_string): add @todo complaining about use of
12174         memcpy()
12175         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12176         handling allowing corrupt data to go unchecked
12177
12178 2003-01-08  Havoc Pennington  <hp@redhat.com>
12179
12180         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12181         to the select() as needed for authentication. (should be using
12182         _dbus_poll() not select, but for another day)
12183
12184         * dbus/dbus.h: include dbus/dbus-protocol.h
12185
12186 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12187
12188         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12189         dbus-connection.h
12190
12191 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12192
12193         * dbus/dbus-internals.c: (_dbus_type_to_string):
12194         New function that returns a string describing a type.
12195
12196         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12197         * dbus/dbus-marshal.h:
12198         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12199         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12200         (dbus_message_iter_get_byte_array):
12201         * dbus/dbus-message.h:
12202         Add new convenience functions for appending and getting message fields.
12203         Also add demarshalling routines for byte arrays.
12204
12205 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12206
12207         * dbus/dbus-connection-internal.h:
12208         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12209         (_dbus_connection_get_next_client_serial),
12210         (dbus_connection_send_message):
12211         * dbus/dbus-internals.h:
12212         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12213         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12214         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12215         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12216         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12217         (_dbus_verbose_bytes), (_dbus_marshal_test):
12218         * dbus/dbus-marshal.h:
12219         * dbus/dbus-message-internal.h:
12220         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12221         (dbus_message_write_header), (_dbus_message_lock),
12222         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12223         (dbus_message_get_name), (dbus_message_append_int32),
12224         (dbus_message_append_uint32), (dbus_message_append_double),
12225         (dbus_message_append_string), (dbus_message_append_byte_array),
12226         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12227         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12228         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12229         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12230         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12231         (decode_header_data), (_dbus_message_loader_return_buffer),
12232         (message_iter_test), (_dbus_message_test):
12233         * dbus/dbus-message.h:
12234         * dbus/dbus-protocol.h:
12235         * dbus/dbus-test.c: (main):
12236         * dbus/dbus-test.h:
12237         * glib/test-dbus-glib.c: (message_handler), (main):
12238         * test/echo-client.c: (main):
12239         * test/watch.c: (check_messages):
12240         Make messages sendable and receivable for real.
12241
12242 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12243
12244         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12245         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12246         * dbus/dbus-message.c: (dbus_message_append_int32),
12247         (dbus_message_append_uint32), (dbus_message_append_double),
12248         (dbus_message_append_string), (dbus_message_append_byte_array):
12249         Handle OOM restoration.
12250
12251 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12252
12253         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12254         (_dbus_demarshal_string), (_dbus_marshal_test):
12255         * dbus/dbus-marshal.h:
12256         * dbus/dbus-message.c: (dbus_message_get_name),
12257         Document these functions.
12258
12259         (dbus_message_append_int32), (dbus_message_append_uint32),
12260         (dbus_message_append_double), (dbus_message_append_string),
12261         (dbus_message_append_byte_array):
12262         * dbus/dbus-message.h:
12263         Add functions for adding message fields of different types.
12264
12265         * dbus/dbus-protocol.h:
12266         Add the different types.
12267
12268 2003-01-05  Havoc Pennington  <hp@pobox.com>
12269
12270         * bus/connection.c: implement routines for handling connections,
12271         first thing is keeping a list of owned services on each connection
12272         and setting up watches etc.
12273
12274         * bus/services.c: implement a mapping from service names to lists
12275         of connections
12276
12277         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12278
12279         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12280         to use static mutexes for global data
12281
12282         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12283         collection of functions to set/get application-specific data
12284         on the DBusConnection.
12285
12286 2003-01-04  Havoc Pennington  <hp@pobox.com>
12287
12288         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12289         (_dbus_poll): new function
12290
12291         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12292         copied from GLib
12293
12294         * bus/loop.c: initial code for the daemon main loop
12295
12296 2003-01-04  Havoc Pennington  <hp@pobox.com>
12297
12298         * test/watch.c (error_handler): make it safe if the error handler
12299         is called multiple times (if we s/error handler/disconnect
12300         handler/ we should just guarantee it's called only once)
12301
12302         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12303         error handler on disconnect (it's quite possible we should
12304         just change the error handler to a "disconnect handler," I'm
12305         not sure we have any other meaningful errors)
12306
12307         * configure.in: check for getpwnam_r
12308
12309         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12310         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12311         mechanism as in SASL spec, using socket credentials
12312
12313         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12314         (_dbus_send_credentials_unix_socket): new function
12315
12316         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12317         dbus_accept()
12318         (_dbus_write): only check errno if <0 returned
12319         (_dbus_write_two): ditto
12320
12321 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12322
12323         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12324         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12325         (_dbus_marshal_test):
12326         * dbus/dbus-marshal.h:
12327         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12328         to _dbus_marshal_utf8_string. Also fix some tests.
12329
12330 2002-12-28  Harri Porten  <porten@kde.org>
12331
12332         * configure.in: added check for C++ compiler and a very cheesy
12333         check for the Qt integration
12334
12335         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12336
12337         * qt/Makefile.am: added
12338
12339         * qt/.cvsignore: added
12340
12341         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12342         latter, added #ifdef QT_THREAD_SUPPORT guard.
12343
12344         * dbus/Makefile.am: added missing headers for make dist
12345
12346 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12347
12348         * dbus/Makefile.am: fixup export-symbols-regex.
12349
12350 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12351
12352         * acinclude.m4: Add this file and put the
12353         PKG_CHECK_MODULE macro in it.
12354
12355 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12356
12357         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12358         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12359         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12360         (_dbus_marshal_test):
12361         Make the demarshalling routines align the pos argument.
12362         Add string marshalling tests and fix the obvious bugs
12363         discovered.
12364
12365 2002-12-26  Havoc Pennington  <hp@pobox.com>
12366
12367         * dbus/dbus-auth.c: fixes fixes fixes
12368
12369         * dbus/dbus-transport-unix.c: wire up support for
12370         encoding/decoding data on the wire
12371
12372         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12373         (_dbus_auth_decode_data): append to target string
12374         instead of nuking it.
12375
12376 2002-12-26  Havoc Pennington  <hp@pobox.com>
12377
12378         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12379         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12380         doh
12381
12382         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12383         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12384         now). Main point is because I wanted unpack_uint32 to implement
12385         _dbus_verbose_bytes
12386         (_dbus_verbose_bytes): new function
12387
12388         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12389
12390         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12391         mechanism to handle a corrupt message stream
12392         (_dbus_message_loader_new): fix preallocation to only prealloc,
12393         not prelengthen
12394
12395         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12396         (_dbus_string_test): enhance tests for copy/move and fix the
12397         functions
12398
12399         * dbus/dbus-transport-unix.c: Hold references in more places to
12400         avoid reentrancy problems
12401
12402         * dbus/dbus-transport.c: ditto
12403
12404         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12405         leak reference count in no-message case
12406
12407         * test/watch.c (do_mainloop): handle adding/removing watches
12408         during iteration over the watches. Also, ref the connection/server
12409         stored on a watch, so we don't try to mangle a destroyed one.
12410
12411         * dbus/dbus-transport-unix.c (do_authentication): perform
12412         authentication
12413
12414         * dbus/dbus-auth.c (get_state): add a state
12415         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12416         (_dbus_auth_get_unused_bytes): append the unused bytes
12417         to the passed in string, rather than prepend
12418
12419         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12420         the auth conversation DBusAuth
12421
12422         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12423         (_dbus_transport_new_for_domain_socket): when creating a
12424         transport, pass in whether it's a client-side or server-side
12425         transport so we know which DBusAuth to create
12426
12427 2002-12-03  Havoc Pennington  <hp@pobox.com>
12428
12429         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12430         _after_ finalizing the derived members
12431         (unix_connection_set): unref watch if we fail to add it
12432
12433         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12434         transport first, so that the connection owned by the
12435         transport will be valid as the transport finalizes.
12436
12437         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12438         if necessary, and remove watches from the connection.
12439
12440         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12441
12442 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12443
12444         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12445         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12446         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12447         (_dbus_marshal_test):
12448         * dbus/dbus-marshal.h:
12449         Add string marshal functions and have the demarshal functions
12450         return the new position.
12451
12452 2002-12-25  Havoc Pennington  <hp@pobox.com>
12453
12454         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12455         it is a simple protocol that just maps directly to SASL.
12456
12457         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12458         initial implementation, not actually used yet.
12459
12460         * dbus/dbus-string.c (_dbus_string_find): new function
12461         (_dbus_string_equal): new function
12462         (_dbus_string_base64_encode): new function
12463         (_dbus_string_base64_decode): new function
12464
12465 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12466
12467         * dbus/Makefile.am:
12468         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12469         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12470         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12471         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12472         * dbus/dbus-marshal.h:
12473         * dbus/dbus-protocol.h:
12474         * dbus/dbus-test.c: (main):
12475         * dbus/dbus-test.h:
12476         Add un-optimized marshalling/demarshalling routines.
12477
12478 2002-12-25  Harri Porten  <porten@kde.org>
12479
12480         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12481
12482 2002-12-24  Zack Rusin  <zack@kde.org>
12483
12484         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12485         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12486         main loop stuff
12487
12488 2002-12-24  Havoc Pennington  <hp@pobox.com>
12489
12490         * glib/dbus-gthread.c: fix include
12491
12492         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12493         I think glib API needs to change, though, as you don't
12494         want to use DBusMessageFunction, you want to use the
12495         DBusMessageHandler object. Probably
12496         dbus_connection_open_with_g_main_loop()
12497         and dbus_connection_setup_g_main_loop() or something like that
12498         (but think of better names...) that just create a connection
12499         that has watch/timeout functions etc. already set up.
12500
12501         * dbus/dbus-connection.c
12502         (dbus_connection_send_message_with_reply): new function just to
12503         show how the message handler helps us deal with replies.
12504
12505         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12506
12507         * dbus/dbus-string.c (_dbus_string_test): free a string that
12508         wasn't
12509
12510         * dbus/dbus-hash.c: use memory pools for the hash entries
12511         (rebuild_table): be more paranoid about overflow, and
12512         shrink table when we can
12513         (_dbus_hash_test): reduce number of sprintfs and write
12514         valid C89. Add tests for case where we grow and then
12515         shrink the hash table.
12516
12517         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12518
12519         * dbus/dbus-connection.c (dbus_connection_register_handler)
12520         (dbus_connection_unregister_handler): new functions
12521
12522         * dbus/dbus-message.c (dbus_message_get_name): new
12523
12524         * dbus/dbus-list.c: fix docs typo
12525
12526         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12527         an object representing a handler for messages.
12528
12529 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12530
12531         * glib/dbus-glib.h:
12532         * glib/dbus-gthread.c: (dbus_gthread_init):
12533         Don't use the gdbus prefix for public functions.
12534
12535 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12536
12537         * Makefile.am:
12538         * configure.in:
12539         Add GLib checks and fixup .pc files
12540
12541         * glib/Makefile.am:
12542         * glib/dbus-glib.h:
12543         * glib/dbus-gmain.c: (gdbus_connection_prepare),
12544         (gdbus_connection_check), (gdbus_connection_dispatch),
12545         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12546         (dbus_connection_gsource_new):
12547         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12548         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12549         * glib/test-dbus-glib.c: (message_handler), (main):
12550         Add GLib support.
12551
12552 2002-12-15  Harri Porten  <porten@kde.org>
12553
12554         * autogen.sh: check for libtoolize before attempting to use it
12555
12556         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12557         struct.
12558
12559         * .cvsignore: ignore more stamp files
12560
12561         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12562
12563         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12564         without make install.
12565
12566 2002-12-15  Havoc Pennington  <hp@pobox.com>
12567
12568         * dbus/dbus-threads.c: add thread stubs that a higher library
12569         layer can fill in. e.g. the GLib wrapper might fill them in with
12570         GThread stuff. We still need to use this thread API to
12571         thread-safe-ize the library.
12572
12573 2002-12-12  Havoc Pennington  <hp@pobox.com>
12574
12575         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12576         below new interfaces and include fewer system headers.
12577
12578         * dbus/dbus-sysdeps.c (_dbus_read): new function
12579         (_dbus_write): new function
12580         (_dbus_write_two): new function
12581         (_dbus_connect_unix_socket): new function
12582         (_dbus_listen_unix_socket): new function
12583
12584         * dbus/dbus-message-internal.h: change interfaces to use
12585         DBusString
12586
12587 2002-12-11  Havoc Pennington  <hp@pobox.com>
12588
12589         * dbus/dbus-types.h: add dbus_unichar
12590
12591         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12592
12593         * dbus/dbus-connection.c (dbus_connection_send_message): return
12594         TRUE on success
12595
12596         * dbus/dbus-transport.c: include dbus-watch.h
12597
12598         * dbus/dbus-connection.c: include dbus-message-internal.h
12599
12600         * HACKING: add file with coding guidelines stuff.
12601
12602         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12603         handling here, for security purposes (as in vsftpd). Not actually
12604         using this class yet.
12605
12606         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12607         system/libc usage here, as in vsftpd, for ease of auditing (and
12608         should also simplify portability). Haven't actually moved all the
12609         system/libc usage into here yet.
12610
12611 2002-11-25  Havoc Pennington  <hp@pobox.com>
12612
12613         * dbus/dbus-internals.c (_dbus_verbose): fix to not
12614         always print the first verbose message.
12615
12616 2002-11-24  Havoc Pennington  <hp@pobox.com>
12617
12618         * test/echo-client.c, test/echo-server.c: cheesy test
12619         clients.
12620
12621         * configure.in (AC_CHECK_FUNCS): check for writev
12622
12623         * dbus/dbus-message.c (_dbus_message_get_network_data): new
12624         function
12625
12626         * dbus/dbus-list.c (_dbus_list_foreach): new function
12627
12628         * dbus/dbus-internals.c (_dbus_verbose): new function
12629
12630         * dbus/dbus-server.c, dbus/dbus-server.h: public object
12631         representing a server that listens for connections.
12632
12633         * dbus/.cvsignore: create
12634
12635         * dbus/dbus-errors.h, dbus/dbus-errors.c:
12636         public API for reporting errors
12637
12638         * dbus/dbus-connection.h, dbus/dbus-connection.c:
12639         public object representing a connection that
12640         sends/receives messages. (Same object used for
12641         both client and server.)
12642
12643         * dbus/dbus-transport.h, dbus/dbus-transport.c:
12644         Basic abstraction for different kinds of stream
12645         that we might read/write messages from.
12646
12647 2002-11-23  Havoc Pennington  <hp@pobox.com>
12648
12649         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12650         _DBUS_INT_MAX
12651
12652         * dbus/dbus-test.c (main): add list test, and include
12653         dbus-test.h as intended
12654
12655         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12656         (_dbus_hash_table_remove_int): return value indicates
12657         whether the entry existed to remove
12658
12659         * dbus/dbus-list.c: add linked list utility class,
12660         with docs and tests
12661
12662         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12663         array sometimes.
12664
12665 2002-11-23  Havoc Pennington  <hp@pobox.com>
12666
12667         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12668         DBUS_END_DECLS to nothing, that should fix this once and for all
12669
12670         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12671
12672         * dbus/dbus-message.c, dbus/dbus-hash.c:
12673         add some missing @brief
12674
12675 2002-11-23  Havoc Pennington  <hp@pobox.com>
12676
12677         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12678         to avoid confusing Doxygen
12679
12680         * dbus/dbus-hash.c: @} not }@
12681
12682         * dbus/dbus-message.c (struct DBusMessage): split out
12683         internals docs
12684
12685 2002-11-23  Havoc Pennington  <hp@pobox.com>
12686
12687         * configure.in: pile on more warning flags if using gcc
12688
12689         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12690         to document static functions
12691
12692         * configure.in: add summary to end of configure so it
12693         looks nice and attractive
12694
12695         * dbus/dbus-hash.c: finish implementation and write unit
12696         tests and docs
12697
12698         * configure.in: add --enable-tests to enable unit tests
12699
12700         * dbus/dbus-test.c: test program to run unit tests
12701         for all files in dbus/*, initially runs a test for
12702         dbus-hash.c
12703
12704         * dbus/dbus-internals.h: file to hold some internal utility stuff
12705
12706 2002-11-22  Havoc Pennington  <hp@redhat.com>
12707
12708         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12709         "ported" away from Tcl
12710
12711         * dbus/dbus-types.h: header for types such as dbus_bool_t
12712
12713 2002-11-22  Havoc Pennington  <hp@redhat.com>
12714
12715         * dbus/dbus.h: fixups for doc warnings
12716
12717         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12718         macros
12719         (QUIET): make it quiet so we can see warnings
12720
12721         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12722
12723 2002-11-22  Havoc Pennington  <hp@redhat.com>
12724
12725         * Makefile.am: include "Doxyfile" target in all-local
12726
12727         * configure.in: generate the Doxyfile
12728
12729         * Doxyfile.in: move Doxyfile here, so we can use
12730         configure to generate a Doxyfile with the right
12731         version number etc.
12732
12733 2002-11-22  Havoc Pennington  <hp@redhat.com>
12734
12735         * dbus/dbus-message.c: move inline docs into .c file
12736
12737         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12738         so all docs are under doc/
12739         (MAN_EXTENSION): generate man pages. Use extension
12740         ".3dbus" which matches ".3qt" on my system,
12741         I guess this is OK, I don't know really.
12742         (FILE_PATTERNS): look for .c files not .h, makes sense
12743         for plain C I think
12744
12745 2002-11-22  Havoc Pennington  <hp@pobox.com>
12746
12747         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12748         because any app can be a server, and any app can be a client,
12749         the bus is a special kind of server.
12750
12751 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
12752
12753         * Doxyfile : adding. Still needs Makefile rules to be generated
12754         automatically (just run "doxygen" in the toplevel dir for now to
12755         generate docs)
12756
12757         * dbus/dbus-message.h : Adding sample docs (javadoc since
12758         resembles gtk-doc a little more)
12759
12760         * dbus/dbus.h : Adding sample docs
12761
12762 2002-11-21  Havoc Pennington  <hp@redhat.com>
12763
12764         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12765         so we can allow ourselves to include files directly,
12766         instead of having to use dbus.h
12767
12768         * dbus/dbus.h: fill in
12769
12770         * dbus/dbus-message.h: sketch out a sample header file.
12771         Include griping if you include it directly instead of
12772         via dbus.h
12773
12774         * dbus/dbus-macros.h: new file with macros for extern "C",
12775         TRUE/FALSE, NULL, etc.
12776
12777         * doc/file-boilerplate.c: put include guards in here
12778
12779 2002-11-21  Havoc Pennington  <hp@redhat.com>
12780
12781         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12782
12783         * COPYING: include the GPL as well, and license code
12784         under both AFL and GPL.
12785
12786 2002-11-21  Havoc Pennington  <hp@redhat.com>
12787
12788         * acconfig.h: get rid of this
12789
12790         * autogen.sh (run_configure): add --no-configure option
12791
12792         * configure.in: remove AC_ARG_PROGRAM to make
12793         autoconf complain less. add AC_PREREQ.
12794         add AC_DEFINE third arg.
12795
12796 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
12797
12798         * doc/Makefile.am:
12799         Fix references so we can distcheck.
12800
12801 2002-11-21  Havoc Pennington  <hp@redhat.com>
12802
12803         * Initial module creation
12804