825ad957de8fa4286f2fec4a28eef9c0a41f6b73
[platform/upstream/dbus.git] / ChangeLog
1 2006-01-19  Robert McQueen  <robot101@debian.org>
2
3         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
4         <rob.taylor@collabora.co.uk> to add support for generating bindings
5         to arrays that are represented as GPtrArrays rather than GArrays (ie
6         size-variable things, such as strings, objects, structs, etc).
7
8 2006-01-05  Robert McQueen  <robot101@debian.org>
9
10         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
11         <ricardo.kekki@movial.fi> to make it possible to inherit from
12         DBusGProxy, by splitting the DBusGProxy struct into a public part and
13         a private part, and moving the setting of the DBusGProxyManager into a
14         connection property, allowing proper GObject construction.
15
16 2006-01-05  Robert McQueen  <robot101@debian.org>
17
18         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
19         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
20         annotations when generating glib client bindings.
21
22 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
23
24         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
25
26         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
27
28 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
29
30         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
31
32 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
33
34         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
35
36 2005-12-19  Ross Burton  <ross@openedhand.com>
37
38         * doc/dbus-tutorial.xml:
39         Document the Glib client-side bindings, and list all possible annotations.
40
41 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
42
43         * dbus/bus.c (dbus_bus_release_name): Add documentation
44
45 2005-12-06  Robert McQueen  <robot101@debian.org>
46
47         * python/service.py: s/sucessful/successful/ so we're allocating to
48         and reading from the same variable. Oops.
49
50 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
51
52         * Released 0.60
53
54 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
55
56         * test/qt/Makefile.am: build from srcdir
57
58         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
59         Note - this code is wrong and needs to be fixed by the Qt binding
60         developers.  The flags should be treated as bitfields and not enums.
61
62         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
63
64 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
65
66         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
67           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
68           in production code
69
70 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
71
72         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
73         method for getting messages off the bus in the absence of a
74         mainloop.  This method is much like 
75         dbus_connection_read_write_dispatch except it does not dispatch
76         the messages to a registered filter function.  Instead it
77         allows a developer to process messages by directly popping
78         them off the bus.
79
80 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
81
82         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
83         the parser to continue instead of returning error
84         (bus_desktop_file_load): Do not free parser data when
85         parse_section_start or parse_key_value fails because it was 
86         already freed by parser_free (patch from Carlos Garcia Campos  
87         <carlosgc at gnome.org>)
88
89 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
90
91         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
92         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
93         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
94         test/test-segfault.c, test/test-utils.c,
95         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
96         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
97         Various cleanup of dead code and compiler warnings (patch from
98         Kjartan Maraas <kmaraas at gnome.org>) 
99
100 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
101
102         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
103         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
104
105 2005-11-27  Robert McQueen  <robot101@debian.org>
106
107         * python/dbus_bindings.pyx: Repair my previous commit which reverted
108         part of the preceding one. Oops. Merge patch by Johan Hedberg
109         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
110         on big-endian platforms.
111
112         * test/python/test-client.py: Add some 16-bit integers to the test
113         values.
114
115 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
116
117         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
118         method return message for property getters
119
120 2005-11-27  Robert McQueen  <robot101@debian.org>
121
122         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
123         with type v of an instance of dbus.Variant(foo, type='x') caused
124         it to be boxed twice before sending over the bus.
125
126         * python/dbus_bindings.pyx, python/service.py,
127         test/python/test-client.py: Update the constants for the new
128         request_name flags, and update comments/test cases now that queueing
129         is the default action.
130
131 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
132
133         * configure.in:
134         - Change version to 0.60 for impending release
135         - upped the sonames because of ABI and API breakage
136
137 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
138
139         * configure.in: Add test/name-test/Makefile to the generated
140         Makefile list
141
142         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
143         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
144         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
145         not to queue an ower if it can't be the primary owner
146
147         * bus/bus.h: Add new internal BusOwner struct
148
149         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
150         to bus_registry_ensure and don't set the prohibit_replacement flag
151         since they are now set per BusOwner and not per name.
152         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
153         that returns the list of connections in a name's connection queue
154         
155         * bus/services.c (struct BusService): remove prohibit_replacement field
156         (struct BusOwner): new struct for keeping track of queued connections
157         and their associated flags for the queue
158         (struct BusRegistry): add a BusOwner memory pool
159         (bus_registry_new): initialize the BusOwner memory pool
160         (bus_registry_unref): free the BusOwner memory pool
161         (_bus_service_find_owner_link): new internal method for
162         searching the queue for a specific connection
163         (bus_owner_set_flags): new method for adding setting the flags on a
164         bus owner
165         (bus_owner_new): new method that creates a BusOwner object from the
166         pool and sets its flags
167         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
168         (bus_registry_ensure): Add the flags parameter
169         (bus_registry_acquire_service): Switch from using raw connections to
170         using the BusOwner struct
171         Add new state machine for dealing with the new set of flags
172         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
173         cancel_ownership, free_ownership_cancel_data, 
174         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
175         restore_ownership, free_ownership_restore_data, 
176         add_restore_ownership_to_transaction): Switch to using BusOwner 
177         instead of raw connections
178         (bus_service_add_owner): Add flags parameter
179         Switch to using BusOwner instead of raw connections
180         Add state machine for dealing with the new set of flags
181         (bus_service_swap_owner): Swaps the first and second owners in the
182         queue.  Used to make sure proper signals are sent when a service looses 
183         or gains primary ownership.  We never insert an owner at the top of the
184         queue.  Instead we insert it in the second position and then swap.
185         (bus_service_remove_owner): Remove the owner from the queue sending
186         out the NameLost and NameOwnerChanged signals if the we were the 
187         primary owner
188         (bus_service_get_primary_owners_connection): New method that extracts
189         the connection from the primary owner
190         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
191         connection
192         (bus_service_get_allow_replacement): Changed from the old 
193         bus_service_get_prohibit_replacement method.  Checks the flags of the 
194         primary owner and returns if it can be replaced or not
195         (bus_service_set_prohibit_replacement): removed
196         (bus_service_has_owner): returns TRUE if and owner with
197         the specified connection exists in the queue
198         
199         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
200         method that only compiles if tests are enabled.  Allows us to get the 
201         unique name of a connection so we can check it against the queue when
202         doing regression tests
203
204         * bus/activation.c (bus_activation_send_pending_auto_activate),
205         bus/dispatch.c (bus_dispatch),  
206         bus/driver.c (bus_driver_handle_get_service_owner, 
207         bus_driver_handle_get_connection_unix_user, 
208         bus_driver_handle_get_connection_unix_process_id,
209         bus_driver_handle_get_connection_selinux_security_context),
210         bus/signals.c (connection_is_primary_owner): 
211         use bus_service_get_primary_owners_connection instead of
212         bus_service_get_primary_owner
213
214         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
215         _dbus_listen_unix_socket): Calculate the length of the socket
216         path and use that instead of using a fixed length which was
217         causing socket names to contain many trailing Nul bytes.
218
219         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
220         (dbus_g_method_get_sender): New method for extracting the sender 
221         from a DBusGMethodInvocation
222         (dbus_g_method_return_get_reply): changed name to 
223         dbus_g_method_get_reply
224         (dbus_g_method_return_send_reply): changed name to
225         dbus_g_method_send reply
226
227         * doc/dbus-specification.xml: New docs that describe how the new
228         queueing system works and talks about the changes to the how
229         we specify socket names
230
231         * glib/examples/example-service.c, 
232         glib/examples/example-signal-emitter.c,
233         glib/examples/statemachine/statemachine-server.c:
234         Changed the RequestName flags to the new system
235
236         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
237         regression test suite for testing various states of the new
238         queueing system
239         
240 2005-11-15  Robert McQueen  <robot101@debian.org>
241
242         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
243         Taylor to add two methods, dbus_g_method_return_get_reply and
244         dbus_g_method_return_send_reply, to allow you to get the reply
245         message from a DBusGMethodInvocation, append arbitrary stuff to it,
246         and send it. The GLib bindings can't marshal a return value of
247         something like a(s) if the array is empty - ultimately they should be
248         made to heed the signature of the out arguments as the Python bindings
249         now can, but this is a workable interim solution which might have
250         other applications.
251
252 2005-11-15  Robert McQueen  <robot101@debian.org>
253
254         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
255         method to org.freedesktop.DBus to release a bus name or give up
256         waiting in the queue for it.
257
258         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
259         dbus_bus_release_name method to send the ReleaseName method calls.
260         Add constants for the return values to dbus/dbus-shared.h.
261
262         * doc/dbus-specification.xml: Document the new ReleaseName method
263         in the specification.
264
265         * python/dbus_bindings.pyx: Add a low-level python binding for the
266         release name method.
267
268         * python/exceptions.py, python/service.py: Make freeing BusName
269         objects release the name. Add a NameExistsException, and fix a
270         bug with creating UnknownMethodException.
271
272         * test/python/test-client.py: Add tests for freeing BusName
273         objects causing names to be released.
274
275 2005-11-14  Robert McQueen  <robot101@debian.org>
276
277         * python/service.py: Include the traceback in the error reply when we
278         send an exception over the bus. _BEST_ _PATCH_ _EVER_
279
280 2005-11-14  David Zeuthen  <davidz@redhat.com>
281
282         Patch from Timo Hoenig <thoenig@suse.de>.
283
284         * bus/bus.c: I've recently investigated why the automatic reload
285         of configuration files does not work as expected.
286
287         Currently, reloading configuration files does only work when
288         running dbus-daemon with --nodaemon.  If we are running as daemon
289         we're hitting a dnotify bug once we fork the process.
290
291         We're initializing the dnotify fds before calling fork().  Once
292         the child process forked it does still have the fds (and they
293         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
294         getting SIGIO as changes are made to the configuration files.
295
296         The attached patch moves the initialization of the dnotify fds to
297         process_config_postinit().  This is safe for all current code
298         paths and solves the dnotify disfunction.  If we're running
299         dbus-daemon as daemon the fds for dnotify are now being
300         initialized after fork() for the child process.
301
302         * configure.in: The current configure.in check for dnotify probes
303         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
304         match for 'xlinux', too. Additionally I have adapted the configure
305         option's style to match with the others.
306
307 2005-11-14  Robert McQueen  <robot101@debian.org>
308
309         * python/decorators.py, python/service.py: Add a new argument to the
310         dbus.service.method decorator called sender_keyword, which if set,
311         specifies the name of an argument which will be provided the bus
312         name of the method caller.
313
314         * test/python/test-client.py, test/python/test-service.py: Add a
315         method and test to check the sender_keyword functionality.
316
317 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
318
319         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
320         empty reply so blocking calls don't block forever (Patch from Sjoerd 
321         Simons <sjoerd at luon.net>)
322
323         * AUTHORS: Add Robert McQueen for his work on the Python
324         Bindings and other parts of D-Bus
325
326 2005-11-07  Robert McQueen  <robot101@debian.org>
327
328         * python/decorators.py: Change emit_signal function to use the
329         signature annotation of the signal when marhsalling the arguments from
330         the service. Fix a bug where the code checking signature length
331         against argument length referenced the wrong variable.
332
333         * python/introspect_parser.py: Avoid adding the type signature of
334         signal arguments to any methods which occur after them in the
335         introspection data (!) by making the parser a little more careful
336         about its current state.
337
338         * python/service.py: Remove debug prints from last commit (again :D).
339
340         * test/python/test-client.py, test/python/test-service.py: Add test
341         signals with signature decorators to test the strict marshalling code
342         gives errors at the right time. Could do with checking the signals
343         actually get emitted too, given that the test does nothing with
344         signals at the moment...
345
346 2005-11-07  Robert McQueen  <robot101@debian.org>
347
348         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
349         instances to stop madness of creating new instances representing
350         the same bus connection all the time, rendering any tracking of
351         match rules and bus names quite meaningless. Caught a bug where
352         the private argument to SessionBus() and friends was being passed
353         in as use_default_mainloop by mistake. Still some problems with
354         multiple dbus_binding.Connection instances representing the same
355         low-level connection (eg when you use both SessionBus() and
356         StarterBus() in same process), but it's a lot better now than it
357         was.
358
359         * python/dbus_bindings.pyx: Add constants with the return values
360         for bus_request_name().
361
362         * python/service.py: Store bus name instances in a per-dbus.Bus cache
363         and retrieve the same instances for the same name, so deletion can be
364         done with refcounting. Also now throws some kind of error if you
365         don't actually get the name you requested, unlike previously...
366
367         * test/python/test-client.py: Add tests for instance caching of buses
368         and bus name objects.
369
370 2005-11-04  Robert McQueen  <robot101@debian.org>
371
372         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
373         marshalling of boolean values. Add some booleans to the values in
374         the test client.
375
376         * python/decorators.py, python/service.py: Add an 'async_callbacks'
377         argument to the dbus.service.method decorator, which allows you to
378         name arguments to take two callback functions for replying with
379         return values or an exception.
380
381         * test/python/test-client.py, test/python/test-service.py: Add test
382         case using asynchronous method reply functions, both return values and
383         errors, and from within both the function itself and from a mainloop
384         callback.
385
386         * python/decorators.py, python/service.py: Perform checking that the
387         number of method/signal arguments matches the number of types in the
388         signature at class loading time, not when you first introspect the
389         class.
390
391         * python/service.py: Remove debug print left by the last commit.
392
393 2005-11-03  Robert McQueen  <robot101@debian.org>
394
395         * python/service.py: Heavy refactoring of method invocation, with
396         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
397         in favour of a new _message_cb that uses seperate functions for
398         looking up the method to call, marshalling the return values, and
399         sending exceptions as errors, and is easier to follow as a
400         consequence.  Fixes some corner cases about returning things that
401         don't match your declared out_signature, allows exceptions to define
402         _dbus_error_name and have it be sent over the bus as the error name,
403         and paves the way for cool stuff like heeding the message no reply
404         flag, asynchronous method implementations, informing the method of the
405         sender, and including backtraces in the error messages.
406
407         * test/python/test-client.py: Catch and print exceptions thrown in the
408         async callback tests, rather than passing them to the low-level
409         bindings to be ignored in a noisy and frustrating manner.
410
411 2005-11-03  Robert McQueen  <robot101@debian.org>
412
413         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
414         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
415         tweak others to be consistent.
416
417         * test/python/test-client.py: Tweak output of testInheritance.
418
419 2005-10-29  Robert McQueen  <robot101@debian.org>
420
421         * python/service.py: Major changes to allow multiple inheritance
422         from classes that define D-Bus interfaces:
423         
424          1. Create a new Interface class which is the parent class of
425             Object, and make the ObjectType metaclass into InterfaceType.
426         
427          2. Patch written with Rob Taylor to replace use of method_vtable
428             with code that walks the class's __MRO__ (method resolution order)
429             to behave like Python does when invoking methods and allow
430             overriding as you'd expect. Code is quite tricky because
431             we have to find two methods, the one to invoke which has the
432             right name and isn't decorated with the /wrong/ interface,
433             and the one to pick up the signatures from which is decorated
434             with the right interface.
435         
436             The same caveats apply as to normal multiple inheritance -
437             this has undefined behaviour if you try and inherit from two
438             classes that define a method with the same name but are
439             decorated with different interfaces. You should decorate
440             your overriding method with the interface you want.
441         
442          3. Replace grungy introspection XML generation code in the metaclass
443             with dictionaries that cope correctly with multiple inheritance
444             and the overriding of methods. This also uses the signature
445             decorations to provide correct introspection data, including
446             the debut appearance of the types of your return values. :D
447
448         * test/python/test-client.py, test/python/test-service.py: Add a test
449         case to try invoking an method that overrides one inherited from a
450         D-Bus interface class.
451
452 2005-10-29  Robert McQueen  <robot101@debian.org>
453
454         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
455         Add checking for the end of struct character when marshalling a
456         struct in MessageIter.append_strict.
457
458         * python/examples/example-service.py,
459         python/examples/gconf-proxy-service.py,
460         python/examples/gconf-proxy-service2.py: Update to use gobject
461         mainloop directly rather than appearing to depend on gtk.
462
463         * python/test/test-client.py, python/test/test-server.py: Remove
464         obsolete and broken test scripts for old bindings. We have up to date
465         and working tests in test/python/.
466
467 2005-10-29  Robert McQueen  <robot101@debian.org>
468
469         * python/decorators.py: Add optional arguments to the method and
470         signal decorators to allow you to specify the signature of arguments
471         and return values. Preserve the doc strings of signal functions in the
472         decorated version, for pydoc and friends.
473
474         * python/dbus_bindings.pyx, python/proxies.py: Replace the
475         parse_signature_block function with an iterable dbus.Signature()
476         type. Fix a bug in MessageIter.append_strict where you could append
477         anything by claiming it was a string.
478
479         * python/service.py: Use the out_signature decoration on methods to
480         marshal return values, meaning you no longer require dbus.Array()
481         or dbus.Dictionary() to indicate the type when returning empty
482         arrays or dictionaries. Fix a bug where exceptions which are defined
483         in __main__ are not turned into error replies.
484
485         * test/python/test-client.py, test/python/test-service.py: Add test
486         for correct marshalling of return values according to out_signature.
487         Fix a bug in the async call test where the error_handler is missing a
488         self argument.
489
490 2005-10-29  Robert McQueen  <robot101@debian.org>
491
492         * glib/Makefile.am, glib/examples/Makefile.am,
493         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
494         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
495
496         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
497
498         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
499         from Ubuntu by Daniel Silverstone to allow specifying match rules on
500         the command line.
501
502 2005-10-27  Ross Burton  <ross@openedhand.com>
503
504         * dbus/dbus-marshal-header.c:
505         Remove dead code.
506
507         * glib/dbus-gobject.c:
508         Stop compiler warning.
509
510 2005-10-25  Ross Burton  <ross@openedhand.com>
511
512         * dbus/dbus-auth.c:
513         * dbus/dbus-server-unix.c:
514         * dbus/dbus-transport-unix.c:
515         * glib/dbus-gmain.c:
516         * glib/dbus-gobject.c:
517         Add some const keywords.
518
519 2005-10-25  Ross Burton  <ross@openedhand.com>
520
521         * doc/dbus-specification.xml:
522         Document the NoReply annotation.
523
524         * glib/dbus-binding-tool-glib.h:
525         * glib/dbus-binding-tool-glib.c:
526         Respect the NoReply annotation.
527
528 2005-10-24  Robert McQueen <robot101@debian.org>
529
530         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
531         derive from unicode instead of str, and encode/decode UTF-8 when
532         marshalling/unmarshalling bus messages
533
534         * python/introspect_parser.py: encode introspection data as UTF-8
535         before passing the buffer into libxml2
536
537         * test/python/test-client.py: add unicode test strings
538
539         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
540         ignore generated python test files
541
542 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
543
544         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
545         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
546         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
547
548         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
549         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
550         when constructing struct signatures
551
552         * python/_dbus.py (Bus): handle private connections using the
553         private keyword in the constructor. defaults to private=False
554         (Bus::close): new method to close a connection to the bus
555
556         * python/dbus_bindings.pyx (Connection::close): renamed method
557         was previously called disconnect
558         (bus_get): now supports getting a private connection
559
560         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
561         keyword is set to True.  if it is, execute the method without waiting
562         for a reply
563         (ProxyObject::_introspect_execute_queue): new method for executing
564         all the pending methods that were waiting for the introspect to
565         finish.  this is called when introspect either succeeds or fails
566         (ProxyObject::_introspect_error_handler): call queued methods
567
568 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
569
570         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
571         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
572
573         * python/service.py (Object::_message_cb): handle exceptions correctly
574         by sending them over the wire to the calling app.  This makes sure
575         the client returns immediately instead of waiting the 15 seconds to
576         timeout.
577
578         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
579         Add a test to benchmark how long it takes to introspect a service and 
580         call a method which returns a large element (pretty fast)
581
582         * test/python/test-service.py (TestObject::GetComplexArray): new test 
583         method which pushes a lot of data
584
585 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
586
587         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
588         reclaim memory outside of the loop and use del istead of just setting
589         the key to None
590
591 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
592
593         * python/service.py (ObjectType::_reflect_on_signal): Always close
594         signal tag even when there are no arguments
595
596 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
597
598         * configure.in: Set mono, mono-docs and Qt3 to default
599         to no instead of auto when building.  These bindings do not
600         have full time maintainers and will not be supported for the
601         1.0 release.
602
603 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
604
605         patches from Michael Krivoruchko <misha at sun.com>: 
606         
607         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
608         _dbus_connection_message_sent, 
609         _dbus_connection_send_preallocated_unlocked_no_update, 
610         _dbus_connection_pop_message_link_unlocked): handle the case when path 
611         is NULL when calling _dbus_verbose
612
613         * configure.in: check for functions getpeerucred and getpeereid
614
615         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
616         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
617         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
618         Patch was only tested on Solaris 10 x86 so it might be issues
619         with other platforms (i.e. BSDs and MacOSX)
620         
621
622 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
623
624         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
625         instead of marshal basic so we can handle recursive types in a variant
626
627         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
628         in variants
629
630         * test/glib/test-service-glib.c, test-service-glib.xml
631         (my_object_echo_variant [EchoVariant], 
632         my_object_process_variant_of_array_of_ints123
633         [ProcessVariantOfArrayOfInts123]): 
634         Add two test methods
635
636         * python/introspect_parser.py: New module for parsing introspect
637         data.
638
639         * python/dbus_bindings.pyx:
640         (various places): when throwing errors fix to use errormsg instead 
641         of message local variable because Pyrex can get confused with other 
642         message variables (initial patch by Robert McQueen 
643         <robert.mcqueen at collabora.co.uk>)
644         (MessageIter::parse_signature_block): new method for getting the next
645         block in a signiture.
646         (MessageIter::append_strict): new method for appending values strictly
647         using the passed in signature instead of guessing at the type
648         (MessageItter:: append_dict, append_struct, append_array): use 
649         signatures to marshal children if the signature is available
650         
651         * python/exceptions.py (IntrospectionParserException): new exception
652
653         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
654         introspected signatures if available, else we fall back to the
655         old way of doing things.
656         (ProxyObject::_introspect_reply_handler ): parse introspection data
657         
658         * python/service.py (ObjectType::_reflect_on_method): Properly
659         terminate <method> if there are no args in the reflection data
660
661         * test/python/test-client.py: add tests for talking with the GLib
662         test server.  This gives us better coverage for introspection since
663         python to python will always generate arguments as variants.  It also
664         allows us to test the robustness of the GLib bindings and interlanguage
665         communications.
666
667         
668 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
669
670         * bus/driver.c (bus_driver_handle_introspect): Add signals
671         to the introspect data. (patch from Daniel P. Berrange 
672         <dan at berrange.com>)
673
674         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
675         
676         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
677         _dbus_connection_run_builtin_filters): Changed these to
678         be unlock_no_update functions and call 
679         _dbus_connection_send_unlocked_no_update instead of
680         dbus_connection_send to avoid locking errors.
681         
682         * doc/TODO: Removed the make Ping test TODO
683         
684 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
685
686         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
687         We now copy the message from a DBusError and then free 
688         the error object befor throwing the error
689
690         * glib/dbus-glib-tool.c: removed extra comma at the end of the
691         DBusBindingOutputMode enum which was causing a warning.
692         #include <time.h> so using time_t is explicitly defined
693
694 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
695
696         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
697         - dbus/dbus-bus.c
698         (internal_bus_get): new method that take over the heavy lifting
699         of dbus_bus_get and adds the ability to get a private connection
700         to the bus
701         (dbus_bus_get): wrapper to internal_bus_get that provides the same
702         interface as in previous versions
703         (dbus_bus_get_private): new method that is a wrapper to 
704         internal_bus_get to get a private connection to the bus
705
706         - dbus/dbus-bus.h
707         (dbus_bus_get_private): add as a public libdbus interface
708
709         - dbus-1.pc.in: output system_bus_default_address and 
710         sysconfdir variables so apps can use them when compiling
711
712 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
713         * dbus/qt: New Qt bindings
714
715 2005-09-12  Waldo Bastian  <bastian@kde.org>
716
717         * dbus/dbus-marshal-validate.c,
718         doc/dbus-specification.xml, test/Makefile.am,
719         test/test-names.c: allow hyphens in bus names.
720
721 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
722
723         * test/data/auth/fallback.auth-script: we don't
724         retry the EXTERNAL method when we know its going
725         to fail anymore.
726
727 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
728
729         * dbus/dbus-connection-internal.h: rename
730         (add|remove|toggle)_(watch|timeout) to unlocked()
731         
732         * dbus/dbus-connection.c: ditto.
733         
734         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
735         Update some callers for the renaming.
736
737 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
738
739         * dbus/dbus-auth.c: (record_mechanisms): don't
740         retry the first auth mechanism because we know
741         we're just going to get rejected again.
742         
743         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
744         Fix thinko ... and what a nasty little bugger to
745         track down you were ...
746
747         * dbus/dbus-connection.c:
748         (_dbus_connection_add_watch),
749         (_dbus_connection_remove_watch): add note about
750         these needing the connection to be locked.
751         (_dbus_connection_get_dispatch_status_unlocked):
752         set status to DATA_REMAINS when we queue the
753         disconnected message.
754         
755         * bus/dispatch.c:
756         (bus_dispatch): fix warning.
757         (check_existent_service_no_auto_start):
758         Expect ChildSignaled error too.
759         (check_existent_hello_from_self): fix another
760         couple of warnings.
761         
762 2005-09-08  Joe Shaw  <joeshaw@novell.com>
763
764         Patches from James Willcox <snorp@snorp.net>
765
766         * mono/Makefile.am: Add Int16.cs and UInt16.cs
767
768         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
769         support array "out" parameters.
770
771         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
772         for 16-bit int support.
773
774 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
775
776         * Released 0.50
777
778         * Patch from Steve Grubb:
779         - bus/activation.c (bus_activation_service_reload_test): clean up
780         some indentation
781         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
782         - dbus/dbus-message-factory.c (generate_special): fix a couple of
783         buffer overflows in the test suite.  This is non critical because
784         it can not be exploited and this code is only run when doing a 
785         make check.
786
787         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
788         - configure.in: Don't check and link against kdecore, only qt headers
789         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
790         - gcj/org/freedesktop/dbus/Makefile.am:
791         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
792         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
793         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
794         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
795         - tools/Makefile.am: Add platform extentions to binaries 
796         (i.e. .exe on windows)
797
798         * configure.in: 
799         - Make it so if no suitable version of python is found we only 
800         disable building python instead of exiting the configure script
801         - Require version 2.4 of glib for glib bindings
802         - Up version to 0.50
803
804         * python/__init__.py: Sync version with libdbus to (0,50,0)
805         
806 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
807
808         * dbus/dbus-object-tree.c (find_subtree_recurse):
809         a couple of optimizations (bug #710):
810         - do a binary search in the tree
811         - insert a new child at the right place directly, no need for
812           qsort anymore
813         - do the "double alloc" thing when allocating children
814
815 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
816
817         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
818
819         * python/dbus_bindings.pyx: Memory management foo
820         (global): remove hacky _user_data_references global list
821         (GIL_safe_cunregister_function_handler): userdata now stuffed into
822         tuples. Unref user_data
823         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
824         (Connection::__del__): Remove and replace with __dealloc__ method
825         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
826         to keep tuple from being deallocated instead of the global var hack
827         (Connection::register_object_path): Stuff user_data into a tuple.
828         Use Py_INCREF to keep tuple from being deallocated instead of the 
829         global var hack
830         (Connection::register_fallback): Stuff user_data into a tuple.
831         Use Py_INCREF to keep tuple from being deallocated instead of the 
832         global var hack
833         (GIL_safe_pending_call_notification): Don't unref the message
834         because it gets unreffed when going out of scope.  Py_XDECREF
835         the user_data
836         (PendingCall::__del__): Remove and replace with __dealloc__ method
837         (PendingCall::set_notify): ref the pending call because we will
838         need it to stick around for when the notify callback gets called
839         (Message::__del__): Remove and replace with __dealloc__ method
840
841         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
842         gthreads_init to match up with the dbus call
843
844         * python/glib.py (init_threads): Changed to threads_init to match
845         up with gobject.threads_init().  init_threads is kept for backwards
846         compat but will most likely be deprecated in the future
847
848         * test/python/test-client.py: 
849         - revamp to use Python's unittest functionality
850         - add async call tests
851         - setup threads in glib and dbus so we make sure locks are working
852         
853 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
854
855         * python/dbus_bindings.pyx 
856         (_pending_call_notification, cunregister_function_handler, 
857         cmessage_function_handler): All callback functions have been rearranged 
858         to workaround a bug in Pyrex when working with the GIL which is Python's 
859         global lock when dealing with threads.  They have been split into
860         a wrapper function (which assumes the name of the old function) and
861         a _GIL_safe_<function name> function which contains the functionality
862         of the old function.  This ensures that Pyrex does not write code
863         the lock is released.
864         
865
866 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
867
868         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
869         GIL global lock when calling back into Python
870
871 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
872
873         * Release 0.36.2
874
875         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
876
877         * bus/policy.c (bus_policy_allow_user): change default "user is
878         allowed" to be "user has same uid as the bus itself"; any
879         allow/deny rules will override.
880
881         * bus/session.conf.in: don't allow all users, since now by default
882         the user that ran the bus can connect.
883
884 2005-08-26  Colin Walters  <walters@verbum.org>
885
886         * tools/dbus-print-message.c (print_message): Flush stdout
887         after printing a message, so that redirecting to a file, then
888         hitting Ctrl-C works.
889
890 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
891
892         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
893         (EmptyMessage): new class that subclasses Message.  This is a workaround
894         to a Pyrex bug that fails to call __del__ when the Message object goes out
895         of scope.  For some reason subclassing Message fixes this bug
896         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
897         - s/Message(_create=0)/EmptyMessage everywhere else
898         
899         * test/python/test-{server|client}.py: add the python/.libs directory
900         to the lookup path so dbus_bindings and dbus_glib_bindings don't
901         get picked up from the system
902
903 2005-08-25  Colin Walters  <walters@verbum.org>
904
905         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
906         to Ryan Lortie for the suggestion.
907
908 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
909
910         * test/python: Add python regression test
911
912         * configure.in: Add test/python/Makefile
913
914         * test/Makefile.am: Add the python directory to SUBDIRS
915
916 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
917
918         * Release 0.36.1
919
920         * python/_dbus.py: 
921         (Interface::connect_to_signal): propigate keywords for match on args
922         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
923
924         * python/proxies.py (ProxyObject::connect_to_signal):
925         propigate keywords for match on args
926
927         * Makefile.am: point everything to pyexecdir since python borks
928         on multilib
929
930 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
931
932         * Release 0.36
933
934 2005-08-23  Colin Walters  <walters@verbum.org>
935
936         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
937
938 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
939
940         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
941         to fix some wranings. We now use dbus_bindings.DBusConnection instead
942         of defining DBusConnection ourselves.
943
944 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
945
946         * python/dbus.pth: New path file to fix up problems when installing
947         c libraries to lib64 and python files to lib.
948
949         * python/Makefile.am: install dbus.pth in the correct spot
950
951 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
952         * ChangeLog: clean up my last entry a bit
953
954         * doc/introspect.xsl: New stylesheet for converting introspection data
955         into browser renderable xhtml. Contributed by Lennart Poettering.
956
957         * doc/introspect.dtd: Fixups in the introspect format from Lennart
958         Poettering.
959
960         * doc/dbus-tutorial.xml: 
961         - Add Colin Walter to the Authors section for authoring the GLib
962         section
963         - Add descriptions of the new signature and type functionality
964         in the Python complex type mapping section
965         - Add a sidenote on the new args matching functionality in 
966         the Python bindings
967         - Fixed up some of the examples to use the gobject.MainLoop
968         instead of gtk.main
969         
970         * python/_dbus.py:
971         (Bus::_create_args_dict): New. Converts a hash of arg matches
972         to a more useable format
973         (Bus::add_signal_receiver): add a **keywords parameter for catching
974         arg match parameters
975         (Bus::remove_signal_receiver): add a **keywords parameter for catching
976         arg match parameters
977         
978         * python/matchrules.py:
979         (MatchTree::exec_matches): Check for arg matches
980         (SignalMatchRule::add_args_match): New method
981         (SignalMatchRule::execute): Added args_list parameter as an optimization
982         so we don't have to marshal the args more than once
983         (SignalMatchRule::match_args_from_list): New method that checks to see
984         if the rule's arg matches match an argument list.  Only arguments
985         set in the rule are checked.
986         (SignalMatchRule::match_args_from_rule): New method that checks to see
987         if the rule's arg matches match another rule's.  All args have to match
988         in order for this method to return true.  If either rule has more args
989         then it is not a match.
990         (SignalMatchRule::is_match): Add args match
991         (SignalMatchRule::repr): Add args to the final output if they exist
992
993 2005-08-17  Ross Burton  <ross@burtonini.com>
994
995         * glib/dbus-gproxy.c:
996         (dbus_g_proxy_call_no_reply): unref the message once sent.
997         (dbus_g_proxy_call): protect against NULL proxy.
998
999 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1000
1001         * python/__init__.py: Version updated (0, 43, 0)
1002         
1003         * python/dbus_bindings.pyx: 
1004         - Fixed type objects to have self passed into __init__
1005         - Added the Variant type
1006         - Add the ability to specify types or signatures for Array, Variant 
1007         and Dictionary
1008         (Connection::send_with_reply_handlers): return a PendingCall object
1009         (_pending_call_notification): handle the case when an error is returned 
1010         without an error message in the body
1011         (MessageIter::get_boolean): return True or False instead of an integer
1012         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1013         and add checks for objects with embeded signatures or types (Array, 
1014         Variant and Dictionary)
1015         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1016         (MessageIter::append_dict): handle embeded types or signatures
1017         (MessageIter::append_array): handle embeded types or signatures
1018         (MessageIter::append_variant): new method
1019         
1020         * python/proxies.py:
1021         (DeferedMethod): New. Dummy executable object used when queuing calls 
1022         blocking on introspection data
1023         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1024         or shorter timeouts for method calls
1025         (ProxyObject): Add first pass at an introspection state machine
1026         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1027         introspection. 
1028         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1029         the usual mechanisms for sending messages.  This is to avoid a deadlock
1030         where the Intospect call would be queued waiting for the Introspect 
1031         call to finish ;-)
1032         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1033         when introspection returns with no error
1034         (ProxyObject::_introspect_error_handler): New.  This method is called 
1035         when introspection encounters an error
1036         (ProxyObject::__getattr__): Code to handle different introspection 
1037         states.  Queue async calls or block blocking calls if we are 
1038         introspecting.  Pass through as normal if we are not or are done with 
1039         introspecting.
1040         
1041         * python/service.py: Import signal and method from decorators.py
1042
1043         * python/types.py: Add Variant type
1044
1045 2005-08-16  Colin Walters  <walters@verbum.org>
1046
1047         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1048         DBusError message is NULL.
1049
1050 2005-08-09  Havoc Pennington  <hp@redhat.com>
1051
1052         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1053         malloc'd copy of the name parameter
1054
1055 2005-08-09  Havoc Pennington  <hp@redhat.com>
1056
1057         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1058         warning if the reply serial is set to 0
1059
1060 2005-08-04  Colin Walters  <walters@verbum.org>
1061
1062         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1063         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1064         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1065         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1066         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1067         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1068         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1069         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1070         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1071         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1072         
1073         Prefix name with _ to ensure they're not exported.  All callers
1074         updated.
1075
1076         * glib/dbus-gvalue.c (typecode_to_gtype)
1077         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1078         (signature_iter_to_g_type_dict)
1079         (signature_iter_to_g_type_array)
1080         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1081         (dbus_gtypes_from_arg_signature):
1082         Move to dbus-gsignature.c.
1083
1084         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1085         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1086         (dbus_binding_tool_output_glib_client): Ditto.
1087
1088         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1089         and dbus-gsignature.h
1090
1091         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1092         unused variable.
1093
1094 2005-08-03  Colin Walters  <walters@verbum.org>
1095
1096         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1097         catch any incompatible changes accidentally made.
1098
1099 2005-08-03  Havoc Pennington  <hp@redhat.com>
1100
1101         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1102         typo, from Julien Puydt
1103
1104         * bus/connection.c (bus_connection_disconnected): we were always
1105         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1106
1107 2005-08-01  Colin Walters  <walters@verbum.org>
1108
1109         Patch from Joe Markus Clarke:   
1110         
1111         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1112         use-after-free.
1113
1114 2005-08-01  Colin Walters  <walters@verbum.org>
1115         
1116         Patch from Joe Markus Clarke:   
1117         
1118         * tools/dbus-send.c (main): 
1119         
1120         Don't use C99 style initializers (bug #3933).
1121         
1122 2005-08-01  Colin Walters  <walters@verbum.org>
1123
1124         Patch from Joe Markus Clarke:   
1125
1126         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1127         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1128         * glib/dbus-gobject.c (write_interface):
1129
1130         Don't use C99 style initializers (bug #3933).
1131
1132 2005-07-31  Havoc Pennington  <hp@redhat.com>
1133
1134         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1135         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1136
1137 2005-07-30  Havoc Pennington  <hp@redhat.com>
1138
1139         * fix a bunch of Doxygen warnings and mistakes
1140
1141 2005-07-30  Havoc Pennington  <hp@redhat.com>
1142
1143         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1144         DBUS_BUILD_TESTS since it's now used in production code
1145
1146 2005-07-29  Havoc Pennington  <hp@redhat.com>
1147
1148         * test/glib/test-profile.c (write_junk): initialize the junk
1149         buffer so valgrind doesn't have a breakdown
1150
1151 2005-07-29  Havoc Pennington  <hp@redhat.com>
1152
1153         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1154         (match_rule_matches): remove unused arg
1155         (test_matching): add tests for match_rule_matches()
1156
1157         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1158         do arg0='foo' arg5='bar' in the match rules
1159         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1160
1161         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1162
1163 2005-07-29  Ross Burton  <ross@openedhand.com>
1164
1165         * dbus/dbus-connection.c:
1166         Don't create a DBusCondVar which is never used.
1167
1168 2005-07-27  Ross Burton  <ross@openedhand.com>
1169
1170         * dbus/dbus-message.c:
1171         Reduce the size of the maximum cached message to 10K.
1172
1173 2005-07-25  Ross Burton  <ross@openedhand.com>
1174
1175         * glib/dbus-gproxy.c:
1176         Remove matches when all proxies are unregistered.
1177
1178 2005-07-24  Colin Walters  <walters@verbum.org>
1179
1180         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1181         typedata; recursive arrays won't have it.
1182
1183         * test/glib/test-dbus-glib.c:
1184         * test/glib/test-service-glib.c:
1185         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1186         
1187 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1188
1189         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1190         proxies.py, service.py: Cleanup of code after running it through the
1191         pyflakes code checker mostly dealing with undefined names.  
1192         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1193
1194 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1195
1196         * NEWS: Update to 0.35.2
1197
1198 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1199
1200         * python/_dbus.py: Remove import of the dbus.services
1201         module as it no longer exists (patch from Dimitur Kirov)
1202
1203         * python/service.py (Object::__init__): Fixed typo
1204         s/name/bus_name (patch from Dimitur Kirov)
1205
1206         * python/examples/example-signal-emitter.py: import dbus.glib
1207         to get the main loop and use glib mainloop instead of gtk so
1208         X doesn't have to be running.
1209
1210         * python/examples/example-signal-recipient.py: import dbus.glib
1211         to get the main loop and use glib mainloop instead of gtk so
1212         X doesn't have to be running. Import the decorators module
1213         directly.
1214
1215         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1216         didn't pick up on but are needed to build
1217
1218         * configure.in: upped version to 0.35.2
1219
1220         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1221         added Colin Walters' SELinux API rename patch from head 
1222         s/unix sercurity context/selinux security context/
1223
1224 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1225
1226         * python/Makefile.am: dbus_binding.pxd.in should be included 
1227         in EXTRA_DIST not dbus_binding.pxd
1228         fix up $(srcdir) hopefully for the last time
1229
1230         * NEWS: Update to 0.35.1
1231
1232 2005-07-16  Colin Walters  <walters@verbum.org>
1233
1234         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1235         from bus_driver_handle_get_connection_unix_security_context.  Update for
1236         error usage.
1237         (message_handlers): Update for renames.
1238
1239         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1240         _dbus_string_init failure correctly.
1241         (bus_selinux_append_context): Convert SID to context.  Append it
1242         as a byte array.
1243         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1244         hasn't been called.
1245
1246         * bus/selinux.h: Update prototype.
1247
1248         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1249         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1250
1251 2005-07-15  Colin Walters  <walters@verbum.org>
1252
1253         * doc/TODO: Add note about convenience wrappers.
1254
1255 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1256
1257         * NEWS: Update to 0.35
1258
1259 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1260
1261         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1262         so distcheck doesn't fail
1263
1264         * glib/examples/Makefile.am: Add example-service.xml and 
1265         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1266
1267         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1268         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1269
1270         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1271         compiler looks in the right places during distcheck
1272
1273 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1274
1275         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1276         to fail
1277
1278 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1279
1280         * python/examples/example-service.py,
1281         python/examples/example-signal-emitter.py: Fixed up examples
1282         for API changes
1283
1284 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1285
1286         * python/__init__.py: Upped to version (0,42,0) because of
1287         the API change
1288
1289 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1290
1291         * ChangeLog: fix date in last entry
1292
1293         * configure.in, bus/system.conf.in: add the ability to configure 
1294         the system bus user at compiletime with the --with-dbus-user flag
1295         (patch from Kristof Vansant)
1296
1297 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1298
1299         * bus/dispatch.c, test/test-service.c: Add testcase
1300         for sending messages to oneself (TODO item).
1301
1302         * python/service.py (class Object): Swap ordering of bus_name 
1303         and object_path parameters to better support inheritance.
1304
1305         * doc/dbus-tutorial.xml: change Python docs to reflect change
1306         in parameter ordering and fix the inheritance section.
1307
1308         * doc/TODO: remove sending message to oneself TODO item
1309
1310 2005-07-15  Ross Burton  <ross@openedhand.com>
1311
1312         * glib/dbus-gproxy.c:
1313         Fix a leak when calling methods via the proxy.
1314
1315 2005-07-15  Colin Walters  <walters@verbum.org>
1316
1317         * bus/selinux.c (bus_selinux_append_context): Wrap in
1318         HAVE_SELINUX.
1319
1320 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1321
1322         * python/_dbus.py (Bus::remove_signal_receiver):
1323         don't add a callback to the match if none has been passed in
1324         
1325         * python/matchrules.py (SignalMatchTree::remove): if the rule
1326         being matched does not have a callback treat it as a wildcard
1327         fix matching logic
1328
1329         * doc/dbus-tutorial.xml: Add Python tutorial
1330
1331 2005-07-14  Colin Walters  <walters@verbum.org>
1332
1333         * bus/driver.c
1334         (bus_driver_handle_get_connection_unix_security_context): New function.
1335         (message_handlers): Add.
1336
1337         * bus/selinux.c (bus_selinux_append_context): New function; appends
1338         security context to message.
1339
1340         * bus/selinux.h: Prototype.
1341
1342         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1343
1344 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1345
1346         * bus/activation.c: clean up all tabs to be 8 spaces 
1347         (bus_activation_activate_service): make sure we clean up
1348         if activation fails
1349
1350         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1351         (check_shell_fail_service_auto_start): New function
1352         tests to make sure we get fail properly when trying to auto start a service
1353         with a faulty command line
1354         (check_shell_service_success_auto_start): New function tests to make sure
1355         auto started services get the arguments on the command line
1356
1357         * test/test-shell-service.c: Added service for testing auto-starting with 
1358         command line arguments
1359
1360         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1361         test/data/valid-service-files/debug-shell-echo-success.service.in:
1362         Added service files for testing auto-starting with command line arguments
1363
1364         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1365
1366 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1367
1368         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1369         
1370         * dbus/Makefile.am: added new files to build.
1371
1372         * bus/activation.c (bus_activation_activate_service): support
1373         activation commands with parameters.
1374
1375         * test/shell-test.c: added test program for the shell parsing
1376         code.
1377
1378 2005-07-13  David Zeuthen  <davidz@redhat.com>
1379
1380         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1381         64 bit signed and unsigned parameters
1382
1383 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1384
1385         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1386
1387         * python/service.py (class Name): renamed BusName to make it clearer
1388         what the object is for (a name on the bus)
1389
1390         * python/examples/example-service.py,
1391         python/examples/example-signal-emitter.py: change the Name object to
1392         BusName
1393
1394 2005-07-12  Colin Walters  <walters@verbum.org>
1395
1396         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1397
1398         * tools/dbus-launch.c: Include sys/select.h.
1399
1400 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1401         * python/dbus_bindings.pyx.in: removed
1402
1403         * python/dbus_bindings.pyx: Added.
1404         - Fixed some memleaks (patch from 
1405         Sean Meiners <sean.meiners@linspireinc.com>)
1406         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1407         own pxd file (Pyrex definition)
1408         - Broke out glib dependancies into its own pyx module
1409         
1410         * python/dbus_bindings.pdx: Added.
1411         - Defines C class Connection for exporting to other modules
1412
1413         * python/dbus_glib_bindings.pyx: Added.
1414         - New module to handle lowlevel dbus-glib mainloop integration
1415
1416         * python/glib.py: Added.
1417         - Registers the glib mainloop when you import this module
1418
1419         * python/services.py: Removed (renamed to service.py)
1420         
1421         * python/service.py: Added.
1422         - (class Server): renamed Name
1423
1424         * python/__init__.py: Bump ro version (0,41,0)
1425         -don't import the decorators or service module
1426         by default.  These now reside in the dbus.service namespace
1427
1428         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1429         setup function on creation 
1430
1431         * python/examples/example-service.py,
1432         python/examples/example-signal-emitter.py: update examples
1433
1434         * python/examples/gconf-proxy-service.py,
1435         python/examples/gconf-proxy-service2.py: TODO fix these up
1436
1437         * doc/TODO: Addition
1438         - Added a Python Bindings 1.0 section
1439         - added "Add match on args or match on details to match rules"
1440
1441
1442 2005-07-12  Colin Walters  <walters@verbum.org>
1443
1444         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1445         (statemachine-glue.h): 
1446         * glib/examples/Makefile.am (example-service-glue.h) 
1447         (example-signal-emitter-glue.h): 
1448         * glib/Makefile.am (dbus-glib-error-switch.h): 
1449         Add libtool --mode=execute so we use the built library instead
1450         of any installed one.
1451
1452 2005-07-11  Colin Walters  <walters@verbum.org>
1453
1454         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1455         (dbus_g_value_types_init): Remove assertion.
1456         (dbus_g_value_get_g_type, dbus_g_value_open)
1457         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1458         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1459         functions related to DBusGValue.  Now we marshal/demarshal
1460         structures as GValueArray.
1461         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1462         structures.
1463         (signature_iter_to_g_type_array): Don't call
1464         signature_iter_to_g_type_struct.
1465         (signature_iter_to_g_type_struct): Delete.
1466         (dbus_gvalue_to_signature): Delete.
1467         (dbus_gvalue_to_signature): New function with same name as other
1468         one; we can convert structures to signatures.
1469         (demarshal_valuearray): New function.
1470         (get_type_demarshaller): Use it.
1471         (demarshal_recurse): Delete.
1472         (marshal_proxy): New function.
1473         (marshal_map): Warn if we can't determine signature from type.
1474         (marshal_collection_ptrarray): Ditto.
1475         (marshal_collection_array): Ditto.
1476         (get_type_marshaller): Use marshal_valuearray.
1477         (marshal_recurse): Delete.
1478         (_dbus_gvalue_test): Add some tests.
1479
1480         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1481         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1482         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1483         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1484         (dbus_g_value_free): Remove prototypes.
1485
1486         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1487         G_TYPE_VALUE_ARRAY.
1488
1489         * glib/examples/example-service.c:
1490         * glib/examples/example-client.c: Implement GetTuple.
1491
1492         * test/glib/test-dbus-glib.c:
1493         * test/glib/test-service-glib.c:
1494         * test/glib/test-service-glib.xml: Add structure tests.
1495
1496 2005-07-10  Colin Walters  <walters@verbum.org>
1497
1498         * doc/TODO: Knock off some GLib items with this patch.
1499
1500         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1501         (_dbus_gvalue_signals_error): New functions.
1502
1503         * glib/dbus-gvalue-utils.h: Prototype them.
1504
1505         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1506         and change to not output const/retval flags for input args.  All
1507         callers updated.
1508         (invoke_object_method): Refactor to handle return values.  Add
1509         some more comments in various places.  Remove debug g_print.
1510
1511         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1512
1513         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1514         Handle G_TYPE_NONE.
1515         (compute_gsignature): New function; refactored from code from
1516         compute_marshaller and compute_marshaller_name.  Enhance to
1517         handle return values and async ops more cleanly.  Update for
1518         async ops returning NONE instead of BOOLEAN.
1519         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1520         and output appropriate string.
1521         (generate_glue): Handle return value annotation.  Also don't dump
1522         constness flag for input arguments.
1523
1524         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1525         files shared between installed library and utilities.
1526         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1527         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1528         binding tool can access gtype utility functions.
1529
1530         * test/glib/test-service-glib.c: 
1531         * test/glib/test-service-glib.xml: 
1532         * test/glib/test-dbus-glib.c: Add some tests for return values.
1533
1534 2005-07-09  Colin Walters  <walters@verbum.org>
1535
1536         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1537         argument if available, not method.
1538
1539         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1540         (invoke_object_method): First, remove some redundant
1541         GValues (object_value, error_value) in favor of working on
1542         array directly.  Second, rework constness to be less buggy.
1543         Now we iterate directly over the argument metadata instead
1544         of parallel iterating over output signature and metadata.
1545
1546         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1547
1548         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1549         annotation on input args.
1550         
1551 2005-07-09  Colin Walters  <walters@verbum.org>
1552
1553         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1554         Define.
1555
1556         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1557         annotation.
1558
1559         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1560         (method_dir_signature_from_object_info): Handle arg_iterate change.
1561         (write_interface): Ditto.
1562         (lookup_object_info): Don't barf if format_version is > 0.
1563         (invoke_object_method): Handle arg constness.
1564
1565         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1566         (arg_info_new): Create.
1567         (arg_info_unref): Destroy.
1568         (arg_info_get_annotations, arg_info_get_annotation) 
1569         (arg_info_add_annotation): New functions.
1570
1571         * glib/dbus-gidl.h: Prototype them.
1572
1573         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1574         args, disallow them in properties.
1575         (parse_annotation): Handle arg annotations.
1576
1577         * test/glib/test-service-glib.xml: 
1578         * test/glib/test-service-glib.c: Update to make some methods
1579         const.
1580
1581 2005-07-08  Colin Walters  <walters@verbum.org>
1582
1583         * test/glib/test-service-glib.xml: 
1584         * test/glib/test-service-glib.c:
1585         * test/glib/test-dbus-glib.c: Test a{sv}.
1586
1587         * glib/examples/statemachine/statemachine.c:
1588         * glib/examples/statemachine/statemachine-server.c:
1589         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1590         add progress bar, etc.
1591
1592         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1593         needed anymore due to generic array/map marshalling.
1594         (dbus_g_value_types_init): Don't register basic arrays or the
1595         string/string hash.
1596         (dbus_gtype_from_signature_iter): Don't try to recurse into
1597         variants.
1598         (dbus_gtype_to_signature): Check collection/map before type
1599         metadata.
1600         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1601         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1602         generic map creation/append functions instead of hash table
1603         specifically.
1604         (get_type_demarshaller): Handle maps.
1605         (demarshal_collection): Dispatch on collection type to either
1606         demarshal_collection_ptrarray or demarshal_collection_array.
1607         (get_type_marshaller): Handle maps.
1608         (marshal_collection): Dispatch collection type to either
1609         marshal_collection_ptrarray or marshal_collection_array.
1610         (_dbus_gvalue_test): New test.
1611
1612         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1613         (hash_free_from_gtype): Use it to free GValues.
1614         (hashtable_append): New function.
1615         (ptrarray_append): Fix prototype.
1616         (slist_append): Ditto.
1617         (_dbus_gvalue_utils_test): Extend tests.
1618
1619         * glib/dbus-gtype-specialized.c
1620         (dbus_g_type_specialized_init_append): Renamed from
1621         dbus_g_type_specialized_collection_init_append.  Remove const from
1622         value, since we steal it.
1623         (dbus_g_type_specialized_map_append): New function.
1624
1625         * glib/dbus-gtype-specialized.h: Update prototypes.
1626         Add DBusGTypeSpecializedMapAppendFunc.
1627
1628         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1629         _dbus_gvalue_test.
1630         
1631         * glib/dbus-gtest.h: Prototype it.
1632
1633 2005-07-08  Ross Burton  <ross@openedhand.com>
1634
1635         * dbus/dbus-glib.h:
1636         Add DBysGAsyncData for the async bindings.
1637
1638         * glib/dbus-binding-tool-glib.c:
1639         Re-enable the async bindings.
1640
1641         * test/glib/test-dbus-glib.c:
1642         Add a test for the generated async bindings.
1643
1644 2005-07-08  Colin Walters  <walters@verbum.org>
1645
1646         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1647         connection concept.
1648         
1649 2005-07-08  Colin Walters  <walters@verbum.org>
1650         
1651         * tools/Makefile.am: Kill of print-introspect in favor of using
1652         dbus-send --print-reply=literal.
1653
1654         * test/glib/test-service-glib.xml: 
1655         * test/glib/test-service-glib.c (my_object_get_objs): New test
1656         for "ao".
1657
1658         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1659         (main): Test GetObjs.
1660
1661         * glib/examples/statemachine/Makefile.am:
1662         * glib/examples/statemachine/sm-marshal.list:
1663         * glib/examples/statemachine/statemachine-client.c:
1664         * glib/examples/statemachine/statemachine-server.c:
1665         * glib/examples/statemachine/statemachine-server.xml:
1666         * glib/examples/statemachine/statemachine.c:
1667         * glib/examples/statemachine/statemachine.h:
1668         * glib/examples/statemachine/statemachine.xml:
1669
1670         New example.
1671
1672         * glib/examples/example-service.c (main): Move invocation
1673         of dbus_g_object_type_install_info earlier, to emphasize it
1674         should only be done once.
1675
1676         * glib/examples/example-signal-emitter.c (main): Ditto.
1677
1678         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1679
1680         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1681         (dbus_gvalue_marshal): Update prototypes.
1682
1683         * glib/dbus-gvalue.c: Update all marshalling functions to take
1684         const GValue instead of GValue.
1685         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1686         types.
1687         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1688         change.
1689         (dbus_gtype_to_signature): Handle generic collecitons and maps.
1690         Return a newly-allocated string.
1691         (demarshal_proxy, demarshal_object_path, demarshal_object)
1692         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1693         we get the wrong types from message.
1694         (get_type_demarshaller): New function, extracted from
1695         dbus_gvalue_demarshal.
1696         (demarshal_collection): New function, demarshals generic
1697         collection.
1698         (dbus_gvalue_demarshal): Just invoke result of
1699         get_type_demarshaller.  Throw error if we don't have one.
1700         (marshal_garray_basic): Abort on OOM.
1701         (get_type_marshaller): New function, extracted from
1702         dbus_gvalue_marshal.
1703         (collection_marshal_iterator, marshal_collection): New functions;
1704         implements generic marshalling for an iteratable specialized
1705         collection.
1706         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1707
1708         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1709         G_TYPE_STRING.
1710         (ptrarray_value_from_gvalue): Ditto.
1711         (ptrarray_append, ptrarray_free): New functions.
1712         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
1713         (slist_append, slist_end_append, slist_free): New functions.
1714         (dbus_g_type_specialized_builtins_init): Add append fuctions
1715         for GPtrArray and GSList.  Register GSList.
1716         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1717
1718         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1719         New.
1720         (dbus_g_type_specialized_collection_init_append)
1721         (dbus_g_type_specialized_collection_append)
1722         (dbus_g_type_specialized_collection_end_append): Prototype.
1723         (DBusGTypeSpecializedCollectionVtable): Add append_func and
1724         end_append_func.
1725
1726         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
1727         (dbus_g_type_specialized_collection_append) 
1728         (dbus_g_type_specialized_collection_end_append): New functions.
1729         (dbus_g_type_map_value_iterate): Take const GValue.
1730         (dbus_g_type_collection_value_iterate): Ditto.
1731
1732         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1733         _dbus_gvalue_utils_test.
1734         
1735         * glib/dbus-gtest.h: Prototype it.
1736
1737         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1738         using uninitialized owner_list.
1739         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1740         public API.
1741         (dbus_g_proxy_end_call_internal): Update to use error set
1742         from dbus_gvalue_demarshal instead of setting it here.
1743         (dbus_g_proxy_begin_call): Move return_if_fail here.
1744
1745         * glib/dbus-gobject.c (write_interface): Update for
1746         dbus_gtype_to_signature returning new string.
1747
1748         * configure.in: Add glib/examples/statemachine.
1749
1750 2005-07-08  Joe Shaw  <joeshaw@novell.com>
1751
1752         * configure.in: Add a configure option, --with-console-auth-dir
1753         
1754         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1755         new setting.  Patch from Kay Sievers.
1756
1757 2005-07-06  Colin Walters  <walters@verbum.org>
1758
1759         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1760         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1761         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1762         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1763         Delete in favor of dbus_g_proxy_begin_call and
1764         dbus_g_proxy_cancel_call.
1765         (DBusGProxyCall, DBusGProxyCallNotify): New.
1766         (dbus_g_proxy_begin_call): Change prototype to take callback, user
1767         data, and destroy function.  This replaces
1768         dbus_g_pending_call_set_notify.
1769         (dbus_g_proxy_cancel_call): Prototype.
1770         (DBusGAsyncData): Delete, shouldn't be needed anymore.
1771
1772         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1773         pending_calls map.
1774         (struct _DBusGProxyManager): Add bus_proxy member, which is an
1775         internal proxy for calls to the bus. Remove
1776         pending_nameowner_calls, now the internal proxy keeps track.
1777         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1778         pending_nameowner_calls.
1779         (got_name_owner_cb): Update prototype, and use
1780         dbus_g_proxy_end_call.
1781         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1782         (dbus_g_proxy_manager_register): Delete directly libdbus code in
1783         favor of using internal proxy.
1784         (dbus_g_proxy_manager_unregister): Update to use
1785         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1786         (dbus_g_proxy_init): Initialize pending calls map.
1787         (dbus_g_proxy_constructor): New.
1788         (dbus_g_proxy_class_init): Add get/set property functions,
1789         constructor, and add NAME, PATH, and INTERFACE properties.
1790         (cancel_pending_call): New function.
1791         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1792         cancel them.
1793         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1794         (GPendingNotifyClosure): New structure.
1795         (d_pending_call_notify, d_pending_call_free): Moved here from
1796         dbus-glib.c.
1797         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1798         ordering.
1799         (manager_begin_bus_call): New internal function for talking to
1800         internal bus proxy.
1801         (dbus_g_proxy_new): Construct object using GObjet properties.
1802         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1803         Create closure of same, and insert call into map of pending calls.
1804         (dbus_g_proxy_end_call_internal): Take call id instead of pending
1805         call.  Look up pending call in current set.  Remove it when we've
1806         completed.
1807         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1808         (dbus_g_proxy_begin_call): Change API to take callback, user data,
1809         and destroy function directly.
1810         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1811         (dbus_g_proxy_call): Invoke with NULL callback.
1812         (dbus_g_proxy_cancel_call): New function, replaces
1813         dbus_g_pending_call_cancel.
1814
1815         * glib/dbus-gparser.c (validate_signature): Fix call to
1816         dbus_set_g_error.
1817
1818         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1819         New quark for attaching metadata to GType.
1820         (info_hash): Delete.
1821         (lookup_object_info): Look up using quark.
1822         (dbus_g_object_type_install_info): Check that a type is classed,
1823         not that it's an object.  Also just install type data using quark
1824         instead of using global hash.
1825
1826         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
1827         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1828         (GPendingNotifyClosure): Delete.
1829         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1830         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1831
1832         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1833         client method generation until we can fix it...
1834         
1835         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1836         (load_from_service_thread_func): Ditto.
1837
1838         * tools/dbus-names-model.c (struct NamesModel): Hold
1839         DBusGProxyCall.
1840         (have_names_notify): Update prototype, use
1841         dbus_g_proxy_cancel_call.
1842         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1843
1844         * tools/dbus-monitor.c (filter_func): Update for print_message
1845         API change.
1846
1847         * test/glib/test-dbus-glib.c: Add more tests for async
1848         invocations.  Update many begin_call/end_call pairs to just use
1849         dbus_g_proxy_call.
1850
1851         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
1852         allows us to dump print-introspect.c.
1853
1854         * tools/dbus-print-message.h (print_message): Add literal argument
1855         to print_message which is intended to allow printing arguments without
1856         metadata like "string=".
1857
1858         * tools/dbus-print-message.c (print_iter): Add literal argument.
1859         (print_message): Allow printing string messages literally.
1860
1861 2005-07-05  Colin Walters  <walters@verbum.org>
1862
1863         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1864         Remove value refcount leak, original patch from Jorn Baayen
1865         <jorn@openedhand.com>.  Also remove useless extra value in favor
1866         of prepending to value array directly.
1867
1868 2005-07-02  Colin Walters  <walters@verbum.org>
1869
1870         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1871
1872 2005-07-01  Colin Walters  <walters@verbum.org>
1873
1874         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1875         
1876         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1877         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1878         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1879         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1880
1881 2005-06-30  Colin Walters  <walters@verbum.org>
1882
1883         * test/glib/test-dbus-glib.c:
1884         * test/glib/test-service-glib.c:
1885         * test/glib/test-service-glib.xml: Update tests for new error
1886         setting bits, also add async tests (patch from Ross Burton).
1887
1888         * test/glib/Makefile.am (test_service_glib_LDADD): Add
1889         DBUS_GLIB_THREADS_LIBS.
1890
1891         * glib/dbus-gproxy.c (get_name_owner)
1892         (dbus_g_pending_call_end_valist): Ditto.
1893
1894         * glib/dbus-gobject.c (error_metadata): New mapping from GError
1895         domain (GQuark) to DBusGErrorInfo.  
1896         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
1897         quark in error_metadata.  Take message interface as default
1898         error message interface.
1899         (gerror_to_dbus_error_message): Pass message interface.
1900         (dbus_set_g_error): Resurrected.
1901         (dbus_g_error_info_free): New function.
1902         (dbus_g_object_type_install_info): Use g_type_class_ref instead
1903         of _peek to actually create the object class if it hasn't been
1904         created yet.
1905         (dbus_g_error_domain_register): New function.
1906
1907         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
1908
1909         * glib/dbus-gparser.c (validate_signature): Ditto.
1910
1911         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
1912         (dbus_g_error_domain_register): Prototype.
1913
1914         * glib/dbus-glib.c (dbus_g_error_set): Delete.
1915         Update tests.
1916
1917 2005-06-29  Colin Walters  <walters@verbum.org>
1918
1919         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
1920         DBUS_TYPE_G_OBJECT_PATH.
1921
1922         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
1923         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
1924         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
1925         (dbus_g_object_path_get_g_type): New function.
1926         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
1927         to DBUS_TYPE_G_OBJECT_PATH by default.
1928         (demarshal_proxy): Remove unused name variable.
1929         (demarshal_object_path, marshal_object_path): New functions.
1930         (demarshal_proxy_array, marshal_proxy_array): Delete.
1931         
1932         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
1933         DBUS_TYPE_G_OBJECT_PATH to char *.
1934         (dbus_g_type_get_lookup_function): Map builtin
1935         DBUS_TYPE_G_OBJECT_PATH.
1936
1937         * test/glib/test-dbus-glib.c
1938         * test/glib/test-service-glib.c (my_object_objpath): 
1939         Adapt tests to new object path marshalling.
1940
1941 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
1942
1943         * configure.in: force check for Python >= 2.4
1944
1945 2005-06-29  Colin Walters  <walters@verbum.org>
1946         
1947         Patch from Ross Burton <ross@openedhand.com>
1948         
1949         * glib/dbus-gobject.c (invoke_object_method): Unset object
1950         value in all cases, not only in async case.
1951
1952 2005-06-29  Colin Walters  <walters@verbum.org>
1953
1954         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
1955         name_call for keeping track of any outgoing GetNameOwner call.
1956         Also add for_owner and associated.
1957         (struct _DBusGProxyManager): Add owner_names, which is hash table
1958         that maps a base name to a list of names it owns (that we're
1959         interested in).  Add pending_nameowner_calls which is a list of
1960         all outstanding GetNameOwner; avoids us having to iterate over
1961         every proxy.  Add unassociated_proxies which keeps track of name
1962         proxies with no associated name owner.
1963         (dbus_g_proxy_manager_unref): Destroy owner_names.
1964         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
1965         name refcounts.
1966         (find_name_in_info, name_owner_foreach)
1967         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
1968         (dbus_g_proxy_manager_monitor_name_owner)
1969         (dbus_g_proxy_manager_unmonitor_name_owner)
1970         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
1971         New functions; they manipulate the owner_names mapping.
1972         (got_name_owner_cb): New function.
1973         (get_name_owner): New function, extracted from
1974         dbus_g_proxy_new_for_name_owner.
1975         (dbus_g_proxy_manager_register): For now we need to keep track of
1976         all NameOwnerChanged.  Also if the proxy is for a name, if we
1977         don't already know the name owner, queue a new GetNameOwner
1978         request and add it to our list of unassociated proxies.  Otherwise
1979         inc the refcount.
1980         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
1981         cancel any pending GetNameOwner call, etc.
1982         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
1983         the owner_names mapping to look up the current names for the
1984         signal source, and dispatch to any proxies for that name.
1985         (dbus_g_proxy_new): Initialize new members.
1986         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
1987         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
1988         (dbus_g_pending_call_end_valist): New function, extracted from
1989         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
1990         but want to use the GLib infrastructure.  Also note how many
1991         arguments in reply were over.
1992         (dbus_g_pending_call_end): New function, just call
1993         dbus_g_pending_call_end_valist.
1994         (dbus_g_proxy_end_call_internal): Just call
1995         dbus_g_pending_call_end_valist.
1996
1997         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
1998         of builtin marshaller for STRING_STRING_STRING.
1999
2000         * test/glib/test-dbus-glib.c: 
2001         * test/glib/test-service-glib.c:
2002         * test/glib/test-service-glib.xml:
2003         Extend tests to cover name proxies, destruction of owner proxies,
2004         etc.
2005         
2006         * glib/examples/example-signal-recipient.c
2007         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2008         
2009         * tools/dbus-send.c (main): Print D-BUS error name in addition
2010         to message.
2011
2012 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2013
2014         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2015         cmessage_function_handler): Patch from 
2016         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2017         by using the Py_GILState_Ensure/Release to synchronize with the
2018         python runtime.
2019         
2020 2005-06-28  Ray Strode  <rstrode@redhat.com>
2021
2022         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2023         babysitter helper process on last unref, bug #2813.
2024
2025 2005-06-27  Colin Walters  <walters@verbum.org>
2026
2027         * test/glib/test-dbus-glib.c: 
2028         * test/glib/test-service-glib.c:
2029         * test/glib/test-service-glib.xml:
2030         Test hash table signal emitting.
2031
2032         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2033         types to their fundamental basis types, since this is what
2034         marshallers operate on.  Also add an entry for VOID__BOXED.
2035         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2036
2037 2005-06-26  Havoc Pennington  <hp@redhat.com>
2038
2039         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2040         from Don Park
2041
2042 2005-06-26  Colin Walters  <walters@verbum.org>
2043
2044         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2045         (dbus_g_error_set): New public function from its ashes; used by
2046         both service-side method implementation and GLib bindings
2047         internals.
2048         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2049         (_dbus_glib_test): Add some tests.
2050
2051         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2052
2053         * test/glib/test-service-glib.c (my_object_throw_error): Use
2054         dbus_g_error_set.
2055
2056         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2057         errors thrown by dbus_g_error_set.
2058
2059         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2060
2061         * glib/dbus-gparser.c (validate_signature): Ditto.
2062
2063         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2064         (dbus_g_proxy_end_call_internal): Ditto.
2065
2066         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2067         converts DBUS_ERROR_x to DBUS_GERROR_x.
2068         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2069
2070         * doc/TODO: Remove error TODO.
2071
2072         * doc/dbus-tutorial.xml: Update with documentation about error
2073         handling.
2074
2075         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2076         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2077         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2078
2079 2005-06-22  Colin Walters  <walters@verbum.org>
2080         
2081         Patch from Ross Burton <ross@openedhand.com>
2082
2083         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2084
2085 2005-06-20  Colin Walters  <walters@verbum.org>
2086
2087         * configure.in: Add glib/examples.
2088
2089         * glib/Makefile.am: Add examples/
2090
2091         * glib/examples/.cvsignore
2092         * glib/examples/Makefile.am
2093         * glib/examples/example-client.c
2094         * glib/examples/example-service.c
2095         * glib/examples/example-service.xml
2096         * glib/examples/example-signal-emitter.c
2097         * glib/examples/example-signal-emitter.xml
2098         * glib/examples/example-signal-recipient.c:
2099         New files; GLib binding examples, ported from
2100         python/examples.
2101
2102 2005-06-20  Colin Walters  <walters@verbum.org>
2103
2104         * dbus/dbus-glib.h: 
2105         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2106         dbus_g_proxy_call.
2107
2108         * glib/dbus-binding-tool-glib.c: 
2109         * doc/dbus-tutorial.xml: 
2110         * test/glib/test-dbus-glib.c: Update for rename.
2111         
2112 2005-06-20  Colin Walters  <walters@verbum.org>
2113
2114         Patch suggested by Ross Burton <ross@openedhand.com>
2115
2116         * glib/dbus-gobject.c (export_signals): Free signal name.
2117         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2118         memory leak.  Add a bit of documentation.
2119         (dbus_g_method_return_error): Free context, and note we do
2120         so.
2121
2122 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2123
2124         * dbus/dbus-glib.h:
2125         * glib/dbus-gobject.c:
2126         * glib/dbus-gproxy.c:
2127         * glib/dbus-gvalue.c: Predeclare structs as 
2128         typedef struct _Something Something instead of 
2129         typedef struct Something Something, so we can 
2130         redeclare the prototypes. Other GNOME libraries 
2131         do this already.
2132
2133 2005-06-17  Colin Walters  <walters@verbum.org>
2134
2135         * tools/dbus-names-model.c (have_names_notify): Fix call
2136         to dbus_g_proxy_end_call.
2137         
2138 2005-06-17  Colin Walters  <walters@verbum.org>
2139
2140         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2141         spew warnings if we get malformed remote signals.
2142
2143         * glib/dbus-gobject.c (propsig_iterate): New function.
2144         (lookup_object_info): New function, extracted from
2145         lookup_object_and_method.
2146         (introspect_properties, introspect_signals): Delete; these
2147         are merged into write_interface.
2148         (write_interface): Write out signals and properties here;
2149         dump the org.gtk.object stuff and use the interface given
2150         in the introspection data blob.  Also fix up property XML.
2151         (lookup_values): New function.
2152         (introspect_interfaces): Gather a mapping from interface to a
2153         list of its methods, signals, and properties, then write out
2154         each interface.
2155         (lookup_object_and_method): Use lookup_object_info.
2156         (struct DBusGSignalClosure): Add interface.
2157         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2158         we can just use the constant data.
2159         (dbus_g_signal_closure_finalize): Don't free signal name.
2160         (signal_emitter_marshaller): Use interface from signal closure.
2161         (export_signals): Only export signals mentioned in introspection
2162         blob.
2163         (dbus_g_connection_register_g_object): Warn if we have no
2164         introspection data for an object.
2165         (funcsig_equal): Remove unused variable.
2166         (dbus_g_object_register_marshaller): Take varargs instead of
2167         list.
2168         (dbus_g_object_register_marshaller_array): New function,
2169         extracted from old dbus_g_object_register_marshaller.
2170
2171         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2172         signals and property data.
2173         (write_quoted_string): New function, extracted from generate_glue.
2174         (generate_glue): Write signals and properties to introspection
2175         blob.
2176
2177         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2178         exported_signals and exported_properties.
2179         (dbus_g_object_register_marshaller): Update prototype.
2180         (dbus_g_object_register_marshaller_array): Prototype.
2181         
2182         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2183
2184         * test/glib/test-service-glib.c: Add new test signals and method
2185         to emit them.
2186
2187         * test/glib/test-service-glib.xml: Add some test signals.
2188
2189         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2190         and my-object-marshal.h
2191         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2192         my-object-marshal.c.
2193         (my-object-marshal.c, my-object-marshal.h): Implement.
2194
2195         * test/glib/.cvsignore: Update.
2196
2197         * doc/TODO: Remove two GLib TODO items fixed by this
2198         patch.
2199
2200 2005-06-16  Colin Walters  <walters@verbum.org>
2201
2202         * doc/TODO: Update for GLib bindings.
2203         
2204 2005-06-16  Colin Walters  <walters@verbum.org>
2205
2206         * glib/dbus-binding-tool-glib.c:
2207         * glib/dbus-gobject.c:
2208         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2209         from Ross Burton, for his GLib bindings work.
2210
2211 2005-06-16  Colin Walters  <walters@verbum.org>
2212
2213         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2214         to iterate instead of walking to G_TYPE_INVALID.
2215
2216         Patch based on a patch from Ryan Gammon.
2217
2218 2005-06-16  Colin Walters  <walters@verbum.org>
2219
2220         * bus/bus.c (bus_context_new): Set parser to NULL
2221         after we unref it (Patch from Chris Boscolo, #2174).
2222         
2223 2005-06-16  Colin Walters  <walters@verbum.org>
2224
2225         * python/dbus_bindings.pyx.in: Import size_t,
2226         __int64_t, __uint64_t, and __signed.
2227
2228         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2229         Define cmsg struct, output it.
2230         (_dbus_read_credentials_unix_socket):
2231         Use cmsg struct.
2232         
2233         Patch from Joe Markus Clarke for FreeBSD support.
2234         
2235 2005-06-16  Colin Walters  <walters@verbum.org>
2236
2237         * tools/dbus-send.c (append_array): Use strtok.
2238         (append_dict): New function.
2239         (type_from_name): New function, extracted from main.
2240         (main): Handle sending dicts.
2241
2242         * tools/dbus-print-message.c (print_iter): Print dict
2243         entries.
2244         
2245 2005-06-16  Colin Walters  <walters@verbum.org>
2246
2247         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2248         values as the empty string (#2948).
2249         
2250 2005-06-16  Colin Walters  <walters@verbum.org>
2251
2252         * dbus/Makefile.am:
2253         * mono/doc/Makefile.am:
2254         * test/glib/Makefile.am:
2255
2256         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2257
2258 2005-06-16  Colin Walters  <walters@verbum.org>
2259
2260         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2261         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2262
2263         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2264         Increment pointer after swapping fixed array.  Add assertion
2265         for array length.
2266                 
2267 2005-06-15  Colin Walters  <walters@verbum.org>
2268
2269         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2270         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2271         
2272 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2273
2274         * NEWS: Update to 0.34
2275
2276 2005-06-15  David Zeuthen  <davidz@redhat.com>
2277
2278         * configure.in (LT_CURRENT): Revert back to 1 as the library
2279         hasn't changed and we've certainly not committed to protocol
2280         stability yet.  All this does is to break ABI. See commit note
2281         from hp@redhat.com 2005-05-05 for details.
2282         
2283 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2284
2285         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2286         (_dbus_connection_run_builtin_filters): New method
2287         (dbus_connection_dispatch): Run the builtin filters which in turn
2288         runs the peer filter which handles Ping messages.
2289
2290         * doc/TODO: 
2291          - Ping isn't handled: This patch fixes it
2292          
2293          - Add a test case for the Ping message: added TODO item
2294
2295 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2296
2297         * dbus/dbus-message.c:
2298         (dbus_message_has_path): New method
2299         (dbus_message_has_interface): New method
2300         (dbus_message_has_member): New method
2301
2302         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2303         New method
2304
2305         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2306         the keyring directory is private to the user
2307
2308         * doc/TODO:
2309          - The convenience functions in dbus-bus.h should perhaps have
2310          the signatures that they would have if they were autogenerated
2311          stubs. e.g. the acquire service function. We should also evaluate
2312          which of these functions to include, in light of the fact that
2313          GLib/Qt native stubs will probably also exist.: Punted
2314
2315          - add dbus_message_has_path(), maybe has_member/interface:
2316          fixed in this patch
2317
2318          - in dbus-keyring.c, enforce that the keyring dir is not
2319          world readable/writable: Fixed in this patch
2320
2321 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2322
2323         * dbus/dbus-marshal-validate.h: Added a new validation
2324         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2325         out of memory errors when validating signitures
2326
2327         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2328         in places where we previously used DBUS_VALID and a FALSE return 
2329         value to indicate OOM
2330         
2331         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2332         Use a stack to track the number of elements inside containers.  The 
2333         stack values are then used to validate that dict entries have only two
2334         elements within them.
2335         (validate_body_helper): check the reason for failure when validating
2336         varients
2337         
2338         * dbus/dbus-message.c (load_message): use 
2339         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2340         DBUS_VALID and a FALSE return value to indicate OOM
2341
2342         * doc/TODO: remove "- validate dict entry number of fields" as this
2343         patch fixes it
2344
2345 2005-06-14  David Zeuthen  <davidz@redhat.com>
2346
2347         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2348         watches (if applicable) and add new watches
2349
2350         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2351         (main): Setup SIGIO signal handler if using D_NOTIFY
2352
2353         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2354
2355         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2356         (merge_included): Also merge conf_dirs list
2357         (bus_config_parser_unref): Clear conf_dirs list
2358         (include_dir): Add directory to conf_dirs list
2359         (bus_config_parser_get_conf_dirs): New function
2360
2361         * bus/dir-watch.[ch]: New files
2362
2363         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2364
2365         * configure.in: Add checks for D_NOTIFY on Linux
2366
2367 2005-06-14  Colin Walters  <walters@verbum.org>
2368
2369         * glib/dbus-binding-tool-glib.c:
2370         * glib/dbus-gobject.c:
2371         * glib/dbus-gvalue.c: Fix indentation and brace style.
2372         
2373 2005-06-14  Ross Burton <ross@openedhand.com>.
2374
2375         * glib/dbus-glib.h: Make DBusGMethodInvocation
2376         a private structure.  Rearrange prototypes a bit.
2377         
2378         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2379         documentation for first_arg_type.
2380         
2381         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2382         here, add documentation.  Move dbus_g_method_return
2383         and dbus_g_method_return_error into public API
2384         section.
2385
2386 2005-06-14  Colin Walters  <walters@verbum.org>
2387
2388         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2389         Add missing return statements, noticed by Ross Burton.
2390         
2391 2005-06-13  Ross Burton <ross@openedhand.com>.
2392
2393         * glib/dbus-gobject.c: Handle errors on message
2394         demarshalling by sending error message back.
2395         * glib/dbus-gvalue.c: Initialize return variables.
2396
2397 2005-06-13  Colin Walters  <walters@verbum.org>
2398
2399         * glib/Makefile.am: Fix thinko in last patch.
2400
2401 2005-06-13  Colin Walters  <walters@verbum.org>
2402
2403         * glib/Makefile.am: Move dbus-gtype-specialized.c
2404         and dbus-gtype-specialized.h into a _HEADERS variable,
2405         install them.
2406
2407 2005-06-12  Colin Walters  <walters@verbum.org>
2408
2409         Async signals and various bugfixes and testing by
2410         Ross Burton <ross@openedhand.com>.
2411
2412         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2413         (dbus_gvalue_genmarshal_name_from_type)
2414         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2415         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2416         (dbus_g_value_types_init, dbus_gtype_from_signature)
2417         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2418         (dbus_gtypes_from_arg_signature): New function prototypes.
2419         (dbus_gvalue_demarshal): Take context and error arguments.
2420         (dbus_gvalue_demarshal_variant): New function.
2421         (dbus_gvalue_demarshal_message): New function.
2422         (dbus_gvalue_store): Delete.
2423
2424         * glib/dbus-gvalue.c:
2425
2426         File has been almost entirely rewritten; now we special-case
2427         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2428         hash tables correctly, etc.  Full support for recursive values
2429         is not yet complete.
2430
2431         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2432         argument of signal to G_TYPE_POINTER since we now pass a
2433         structure.
2434         (lookup_g_marshaller): Delete in favor of
2435         _dbus_gobject_lookup_marshaller.
2436         (marshal_dbus_message_to_g_marshaller): Use
2437         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2438         to handle remote signal callbacks.
2439         (dbus_g_proxy_new_from_proxy): New function; creates a new
2440         DBusGProxy by copying an existing one.
2441         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2442         (dbus_g_proxy_get_path): New functions.
2443         (dbus_g_proxy_marshal_args_to_message): New function;
2444         factored out of existing code.
2445         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2446         from a varargs array.
2447         (dbus_g_proxy_begin_call_internal): New function.
2448         (dbus_g_proxy_end_call_internal): New function.
2449         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2450         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2451         after collecting args into value array.
2452         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2453         invoke dbus_g_proxy_end_call_internal.
2454         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2455         end_call_internal.
2456         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2457         types.
2458         (array_free_all): New function.
2459         (dbus_g_proxy_add_signal): Take GTypes.
2460
2461         * glib/dbus-gobject.h:
2462         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2463         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2464         Prototype.
2465
2466         * glib/dbus-gobject.c: Add a global marshal_table hash which
2467         stores mappings from type signatures to marshallers.  Change lots
2468         of invocations of dbus_gtype_to_dbus_type to
2469         dbus_gtype_to_signature.
2470         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2471         (introspect_signals): Fix test for query.return_type.
2472         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2473         (invoke_object_method): Many changes.  Handle asynchronous
2474         invocations.  Convert arguments with
2475         dbus_gvalue_demarshal_message.  Handle errors.  Use
2476         DBusSignatureIter instead of strlen on args. Handle all arguments
2477         generically.  Special-case variants.
2478         (dbus_g_method_return, dbus_g_method_return_error): New function.
2479         (DBusGSignalClosure): New structure, closes over signal
2480         information.
2481         (dbus_g_signal_closure_new): New function.
2482         (dbus_g_signal_closure_finalize): New function.
2483         (signal_emitter_marshaller): New function; is special marshaller
2484         which emits signals on bus.
2485         (export_signals): New function; introspects object signals and
2486         connects to them.
2487         (dbus_g_object_type_install_info): Take GType instead of
2488         GObjectClass.
2489         (dbus_g_connection_register_g_object): Invoke export_signals.
2490         (dbus_g_connection_lookup_g_object): New function.
2491         (DBusGFuncSignature) New structure; used for mapping type
2492         signatures to marshallers.
2493         (funcsig_hash): New function; hashes DBusGFuncSignature.
2494         (funcsig_equal): New function; compares DBusGFuncSignature.
2495         (_dbus_gobject_lookup_marshaller): New function.
2496         (dbus_g_object_register_marshaller): New function; used to
2497         register a marshaller at runtime for a particular signature.
2498
2499         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2500
2501         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2502         which notes a server method implementation should be
2503         asynchronous.
2504
2505         * glib/dbus-binding-tool-glib.c
2506         (dbus_binding_tool_output_glib_server): Call
2507         dbus_g_value_types_init.
2508         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2509         variants specially.
2510         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2511         of a lookup function.
2512         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2513         (write_untyped_out_args): New method; write output arguments.
2514         (write_formal_declarations_for_direction): Function for
2515         writing prototypes.
2516         (write_formal_parameters_for_direction): Function for
2517         writing implementations.
2518         (write_typed_args_for_direction): Function for writing
2519         arguments prefixed with GTypes.
2520         (write_async_method_client): Write out async version
2521         of method.
2522
2523         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2524         (dbus_g_type_get_marshal_name): Move mapping from GType
2525         to marshal name into here.
2526         (dbus_g_type_get_c_name): Move into here.
2527         (compute_marshaller): Convert signature to type with
2528         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2529         (compute_marshaller_name): Ditto.
2530         (compute_marshaller): Handle async signal annotations.
2531         (gather_marshallers): Return if we don't have a known
2532         prefix.
2533         (generate_glue): Collect introspection blob here, and
2534         write all of the blob at the end.  This allows an object
2535         with multiple interfaces to work.
2536         Mark async methods in introspection blob.
2537
2538         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2539         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2540         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2541
2542         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2543         avoids people accidentally using DBUS_TYPE_* which should
2544         not be necessary anymore.
2545         Do include dbus-gtype-specialized.h, which are utilities
2546         for GLib container types.
2547         Add various #defines for types such as
2548         DBUS_TYPE_G_BOOLEAN_ARRAY.
2549         (DBusGValueIterator, DBusGValue): Define, not fully used
2550         yet.
2551         (dbus_g_value_get_g_type): Type for recursive value.
2552         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2553         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2554         (dbus_g_value_free): Prototypes.
2555         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2556         (dbus_g_proxy_set_interface): Prototype.
2557         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2558         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2559         types.
2560         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2561         Accessors.
2562         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2563         doing async invocations.
2564         (dbus_g_method_return, dbus_g_method_return_error):
2565         Prototypes.
2566         * doc/dbus-tutorial.xml: Update GLib section.
2567         
2568         * tools/dbus-viewer.c (load_child_nodes): Update
2569         for new invocation type of dbus_g_proxy_end_call.
2570         (load_from_service_thread_func): Ditto.
2571
2572         * tools/print-introspect.c (main): Ditto.
2573
2574         * tools/dbus-names-model.c (have_names_notify)
2575         (names_model_reload, names_model_set_connection)
2576         Use GTypes.
2577
2578         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2579         needed since Python bindings use GLib bindings.
2580
2581         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2582         Add --prefix argument.
2583
2584         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2585         unneeded --ignore-unsupported arg.
2586         
2587         * test/glib/test-service-glib.c: 
2588         * test/glib/test-service-glib.xml:
2589         * test/glib/test-dbus-glib.c: Add many more tests.
2590
2591 2005-06-06  David Zeuthen  <davidz@redhat.com>
2592
2593         * doc/TODO: Add item about need to remove deprecated functions.
2594
2595         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2596
2597         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2598         to repair the ABI which was broken with the last commit.
2599
2600 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2601
2602         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2603         (dbus_connection_disconnect): renamed to dbus_connection_close 
2604         for API symmetry with dbus_connection_open
2605         (_dbus_connection_open_internal): 
2606         s/dbus_connection_disconnect/dbus_connection_close
2607
2608         * dbus/dbus-bus.c (dbus_bus_get):
2609         s/dbus_connection_disconnect/dbus_connection_close
2610
2611         * bus/connection.c (bus_connections_unref, 
2612         bus_connections_setup_connection, bus_connections_expire_incomplete):
2613         s/dbus_connection_disconnect/dbus_connection_close
2614
2615         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2616         kill_client_connection_unchecked, check_hello_connection):
2617         s/dbus_connection_disconnect/dbus_connection_close
2618
2619         * bus/bus.c (new_connection_callback):
2620         s/dbus_connection_disconnect/dbus_connection_close
2621
2622         * tools/dbus-send.c (main):
2623         s/dbus_connection_disconnect/dbus_connection_close
2624
2625         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2626         s/dbus_connection_disconnect/dbus_connection_close
2627         
2628         * test/test-service.c (path_message_func, filter_func):
2629         s/dbus_connection_disconnect/dbus_connection_close
2630         
2631         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2632         
2633 2005-05-25  Colin Walters  <walters@verbum.org>
2634
2635         * dbus/dbus-protocol.h: Move various bus service #defines such
2636           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2637           dbus/dbus-shared.h.
2638         * dbus/dbus-shared.h: Various defines moved here.
2639         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2640
2641 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
2642
2643         * python/__init__.py: Python bindings deserve a minor version
2644         update.  Upped to (0, 40, 2)
2645
2646 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
2647
2648         * python/decorators.py: add explicitly_pass_message decorator
2649         for passing in the dbus message as keyword for edge case signal
2650         handling
2651
2652         * python/matchrules.py (SignalMatchRule.__repr__): fix output
2653         to conform with what dbus expects for match rules
2654         (SignalMatchRule.execute): add the dbus message as a keyword
2655         if the signal handler has requested it
2656
2657         * python/examples/example/signal-recipient.py: added some more
2658         examples on how to hook up to signals
2659
2660 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
2661
2662         * python/decorators.py: import dbus_bindings
2663
2664         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
2665         SignalMatchNode): new classes that implement wildcard signal
2666         callback matching using a tree lookup. Heavily modified from a
2667         patch sent by Celso Pinto (fd.o bug #3241)
2668
2669         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2670         use new match classes to handle signals.
2671
2672 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
2673         
2674         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2675
2676 2005-05-18  Havoc Pennington  <hp@redhat.com>
2677
2678         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2679         gettext. Not really worth requiring yet perhaps, but any
2680         production quality 1.0 would require it so we should go ahead and
2681         get things set up. We do have a couple token calls to
2682         bindtextdomain in the code already.
2683
2684 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
2685
2686         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2687         when using recursive g_main_loops
2688
2689         * python/_dbus.py (class Bus): add the ProxyObjectClass
2690         alias for ProxyObject to make it easier for the Twisted 
2691         networking framework to integrate dbus.
2692
2693         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2694         alias for ProxyMethod to make it easier for the Twisted 
2695         networking framework to integrate dbus. 
2696
2697 2005-05-11  Ross Burton  <ross@openedhand.com>
2698
2699         * glib/dbus-glib-tool.c: Add --prefix argument.
2700         * glib/dbus-binding-tool-glib.h: Add prefix argument.
2701         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2702         Add prefix argument.
2703         (generate_glue): Pass prefix argument down.
2704         (dbus_binding_tool_output_glib_server): Pass prefix to
2705         glib-genmarshal.
2706         
2707 2005-05-11  Colin Walters  <walters@verbum.org>
2708
2709         * tools/dbus-send.c (append_array): New function.
2710         (append_arg): Broken out from main.
2711         (main): Add cheesy hack to send arrays and variants.
2712         (usage): Update.
2713         * tools/dbus-print-message.c (print_iter): Broken out
2714         from main.
2715
2716 2005-05-11  Colin Walters  <walters@verbum.org>
2717
2718         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2719         New function, returns signature string for signature iter.
2720         * dbus/dbus-signature.h: Prototype it.
2721         * dbus/dbus-message.c (dbus_message_iter_get_signature):
2722         New function, returns signature string for message iter.
2723         (dbus_message_iter_get_array_len): New function, returns
2724         length of array.
2725         (dbus_message_iter_get_fixed_array): Fix assertion; this
2726         function should be used when the iter is pointing to the
2727         contents of an array
2728         * dbus/dbus-message.h: Prototypes.
2729         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2730         New function; returns length of an array.
2731         * dbus/dbus-marshal-recursive.h: Prototype it.
2732         
2733 2005-05-11  Colin Walters  <walters@verbum.org>
2734
2735         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2736         compilation error.
2737         
2738 2005-05-08  Havoc Pennington  <hp@redhat.com>
2739
2740         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2741         daemon's pid, not the parent's pid, to the file descriptor.
2742         Reported by Taj Morton.
2743
2744 2005-05-05  Havoc Pennington  <hp@redhat.com>
2745
2746         * configure.in (LT_*): add notes on how the libtool versioning
2747         works to save thinking. Increment soname to indicate protocol
2748         breakage (though really the library interface hasn't changed I
2749         guess)
2750
2751         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2752         verify the GUID received from server matches what we were
2753         expecting, if we had an expectation
2754
2755         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2756         (_dbus_auth_get_guid_from_server): new function
2757         (send_begin): parse the OK args
2758
2759         * doc/dbus-specification.xml: add GUID to the auth protocol
2760
2761 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
2762
2763         * Fix my name in previous changelog ;)
2764
2765         * python/proxies.py (ProxyObject.__getattr__): add further patch
2766         from Anthony Baxter to throw an AttributeError when python 
2767         __special__ functions are called instead of marshling them over 
2768         the bus (Bug#1685 comment 3).
2769
2770 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
2771
2772         * python/Makefile.am: changed to use pyexecdir for the binding
2773         shared libraries (Bug#2494)
2774
2775         * python/exceptions.py: bring exceptions over from the bindings
2776         so they can be used in applications (Bug#2036)
2777         Make all exceptions derive from DBusException
2778
2779         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2780         of classes so that print obj doesn't throw an exception (Bug #1685)
2781
2782 2005-05-03  Ross Burton  <ross@openedhand.com>
2783
2784         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2785         Return if we get an error during registration.  Set up a
2786         weak reference on object to unregister if object is destroyed.
2787         (unregister_gobject): New function.
2788         
2789 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
2790
2791         * python/dbus_bindings.pyx.in: 
2792         - added new type classes for hinting to the marashaler what type 
2793         to send over the wire
2794         - added int16 and uint16 marshalers
2795         - Fixed a bug in the type constants that caused int32 to go out
2796         as uint16 over the wire
2797         * python/dbus.py: split up into different files and renamed _dbus.py
2798         * python/__init__.py, python/_util.py, python/decorators.py, 
2799         python/exceptions.py, python/proxies.py, python/services.py,
2800         python/types.py: new files split off from dbus.py
2801         * python/Makefile.am: Add new files, remove dbus.py and 
2802         install all python files to <python module dir>/dbus
2803         * python/examples/*: Added #!/usr/bin/env python to the top of
2804         every example.  Patch provided by Tatavarty Kalyan
2805
2806 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2807
2808         * NEWS: Update to 0.33
2809
2810 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2811
2812         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2813         method for doing async calls
2814         (_pending_call_notification): New C function for handling pendning call
2815         callbacks
2816         (set_notify): New method for setting pending call notification
2817         
2818         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2819         Async capabilities added to remote method calls
2820         (Sender): class removed
2821         (RemoteService): class removed
2822         (ObjectTree): class removed for now
2823         (RemoteObject): Renamed to ProxyObject
2824         (RemoteMethod): Renamed to ProxyMethod
2825         (method): Decorator added for decorating python methods as dbus methods
2826         (signal): Decorator added for decorating python methods as signal emitters
2827         (ObjectType): Metaclass added for generating introspection data and the
2828         method callback vtable
2829         (Interface): Wrapper class added to wrap objects in a dbus interface
2830         (Object): Uses ObjectType as its metaclass and exports Introspect
2831         of the org.freedesktop.DBus.Introspectable interface
2832         (ValidationException, UnknownMethodException): new exceptions
2833
2834         * python/examples/*: Modified to fit with the new bindings
2835
2836 2005-04-23  Havoc Pennington  <hp@redhat.com>
2837
2838         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2839         reported by Tony Houghton
2840
2841         * test/test-service.c (main): test
2842         dbus_connection_get_object_path_data()
2843
2844         * dbus/dbus-object-tree.c (find_handler): be sure we always init
2845         the exact_match
2846         (_dbus_object_tree_get_user_data_unlocked): new function used by
2847         dbus_connection_get_object_path_data()
2848         (do_register): add assertion test for get_user_data_unlocked
2849         (object_tree_test_iteration): more tests
2850
2851         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2852         new function from Dan Reed to let you get the user data from 
2853         dbus_connection_register_object_path()
2854
2855 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
2856
2857         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2858         in numerous places that did not account for the NULL terminator
2859         (signature_from_seed): changed the manual string copy loop to 
2860         just use strcpy instead
2861         make check should now pass
2862
2863 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
2864
2865         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2866         so that it allows messages that are not signals to pass in 
2867         NULL as the interface.
2868
2869 2005-04-18  David Zeuthen  <davidz@redhat.com>
2870
2871         * glib/dbus-gmain.c (io_handler_destroy_source): 
2872         (timeout_handler_destroy_source, connection_setup_free): 
2873         Also unref the source to avoid memory leaks.
2874
2875 2005-04-13  David Zeuthen  <davidz@redhat.com>
2876
2877         * bus/config-parser.c (bus_config_parser_new): Bump this to a
2878         more reasonable, yet still totally arbitrary, value :-). 
2879
2880 2005-04-13  David Zeuthen  <davidz@redhat.com>
2881
2882         * doc/TODO: Added an "important for 1.0" item about selinux
2883         allow/deny messages
2884
2885 2005-04-13  David Zeuthen  <davidz@redhat.com>
2886
2887         * bus/selinux.c: Add c-file-style to top of file
2888         (log_audit_callback): Don't free the data here anymore
2889         (bus_selinux_check): Don't take spid and tpid since appending
2890         that to auxdata may OOM.
2891         (bus_selinux_allows_acquire_service): Handle OOM and signal back
2892         to the caller if we are OOM by taking an error object.
2893         (bus_selinux_allows_send): -do-
2894
2895         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
2896         and bus_selinux_allows_send
2897
2898         * bus/bus.c (bus_context_check_security_policy): Pass error and
2899         pass on OOM thrown by bus_selinux_allows_send()
2900
2901         * bus/services.c (bus_registry_acquire_service): Pass error and
2902         pass on OOM thrown by bus_selinux_allows_acquire_service()
2903
2904 2005-04-13  Havoc Pennington  <hp@redhat.com>
2905
2906         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
2907         message at a time to avoid monopolizing the main loop, bug 
2908         #2953 from Benjamin Otte
2909
2910 2005-04-09  Havoc Pennington  <hp@redhat.com>
2911
2912         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
2913         possible overlap, fix from Daniel Reed
2914         (fixup_alignment): fix signedness warnings
2915         (_dbus_string_append_unichar): ditto
2916
2917 2005-04-09  Havoc Pennington  <hp@redhat.com>
2918
2919         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
2920
2921         * glib/dbus-glib-tool.c (main): fix warning
2922
2923         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
2924
2925         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
2926         add a new function that can be used in simple applications that
2927         don't have a main loop and are willing to block
2928
2929 2005-04-05  David Zeuthen  <davidz@redhat.com>
2930
2931         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
2932
2933         * glib/dbus-gmain.c:
2934         (io_handler_destroy_source): Remove from list of IO handlers
2935         of the ConnectionSetup object
2936         (timeout_handler_destroy_source): -do- for timeout handlers
2937         (io_handler_source_finalized): Don't remove from list since
2938         we now do that in io_handler_destroy_source(). Renamed from
2939         io_handler_source_destroyed
2940         (timeout_handler_source_destroyed): -do- for timeout handlers
2941         (connection_setup_free): It is now safe to iterate over all
2942         IO and timeout handlers as the _destroy_source removes them
2943         from the list synchronously
2944
2945 2005-03-30  Havoc Pennington  <hp@redhat.com>
2946
2947         * configure.in: change check to gtk 2.4
2948
2949         * tools/dbus-viewer.c (name_combo_changed_callback): remove
2950         gtk_combo_box_get_active_text() usage to decrement GTK requirement
2951         to 2.4
2952
2953 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
2954
2955         * News: Update 0.32
2956
2957         * HACKING: Fixed realease instructions.  configure.in should be updated to
2958           the next release by the person who made the last release.
2959
2960 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
2961
2962         * python/lvalue_cast_post_process.py - removed.  Patch has been
2963           submitted to Pyrex maintainers that fixes gcc4.0 errors
2964
2965         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
2966
2967 2005-03-24  Daniel Reed  <n@ml.org>
2968
2969         * tools/Makefile.am: Make print-introspect and
2970         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
2971
2972 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
2973
2974         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
2975
2976         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
2977           had in Red Hat packages for a while but for some reason never 
2978           got merged upstream
2979           (_dbus_is_a_number): New checks if a string
2980           can be converted to a number and does the conversion if it can
2981           (_dbus_user_database_lookup): Add check to see if the given username
2982           is a udi.  This allows udi's to be used instead of usernames in the
2983           config file.
2984           (_dbus_user_database_lookup_group): Add check to see if the given groupname
2985           is a gdi.  This allows gdi's to be used instead of groupnames in the
2986           config file.
2987
2988 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
2989
2990         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
2991           code so that it compiles with gcc4.0
2992
2993         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
2994           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
2995           results back to dbus_binding.c
2996
2997 2005-03-20  Colin Walters  <walters@verbum.org>
2998
2999         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3000
3001         * configure.in: Require GTK+ 2.6.
3002         
3003 2005-03-20  Colin Walters  <walters@verbum.org>
3004
3005         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3006
3007 2005-03-17  Tom Parker  <palfrey@tevp.net>
3008
3009         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3010         print DBUS_UID_UNSET; instead print passed username.  Also
3011         be sure to actually use gid looked up in cache.
3012         
3013         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3014         for DBUS_GID_UNSET and groupname.
3015
3016 2005-03-17  Colin Walters  <walters@verbum.org>
3017
3018         * bus/print-introspect.c: Move to tools/.
3019         * bus/run-with-tmp-session-bus.sh: Ditto.
3020         
3021         * glib/Makefile.am (dbus-glib-bindings.h): Move
3022         generation to tools/Makefile.am.
3023
3024         * test/glib/run-test.sh: Update to handle move
3025         of run-with-tmp-session-bus.sh.
3026
3027         * test/glib/test-service-glib.c: Update to handle
3028         move of dbus-glib-bindings.h.
3029
3030         * tools/print-introspect.c: Moved here
3031         from bus/, and ported to GLib bindings.
3032
3033         * tools/run-with-tmp-session-bus.sh: Moved here
3034         from bus/.
3035
3036         * tools/Makefile.am: Generate dbus-glib-bindings.h
3037         and dbus-bus-introspect.xml here.
3038
3039         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3040         Update.
3041
3042 2005-03-17  Colin Walters  <walters@verbum.org>
3043
3044         * bus/driver.c (write_args_for_direction): Use
3045         _dbus_string_get_const_data to retrieve string;
3046         _dbus_string_get_const_data_len doesn't actually return
3047         a NULL-terminated substring.
3048
3049         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3050         (main): Change to use org_freedesktop_DBus_request_name
3051         instead of using g_proxy_begin_call/end_call.
3052
3053 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3054
3055         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3056         generating the finalizer.  Fixes from Ben Maurer.
3057
3058 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3059
3060         * mono/BusDriver.cs: Update method names: ListServices
3061         becomes ListNames; GetOwner becomes GetNameOwner.
3062
3063         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3064         onto the eval stack when removing the delegate.
3065
3066 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3067
3068         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3069         LT_CURRENT.  Set it to the autoconf variable.
3070                                                                                 
3071         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3072         classes that disconnects the signal handler delegate from the
3073         service object.  Fixes a big leak of proxy objects on the
3074         client side of things.  Patch from Ben Maurer
3075         <bmaurer@ximian.com>
3076
3077 2005-03-12  Colin Walters  <walters@verbum.org>
3078
3079         * bus/driver.c (write_args_for_direction): New function,
3080         parses a type signature into arguments and outputs to
3081         XML.
3082         (bus_driver_handle_introspect): Use it instead of
3083         hardcoding XML for certain signatures.
3084         
3085         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3086         dependency on dbus-daemon.
3087
3088         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3089         argument, pass it to dbus_binding_tool_output_glib_client.
3090
3091         * glib/dbus-binding-tool-glib.c
3092         (generate_client_glue): Protect against multiple inclusion.
3093         (dbus_binding_tool_output_glib_client): Add
3094         G_BEGIN_DECLS/G_END_DECLS.
3095
3096         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3097         Change to just take iface prefix directly.
3098         (write_formal_parameters): Clarify error message.
3099         (check_supported_parameters): New function; checks to see type
3100         signatures of method parameters are supported.
3101         (generate_client_glue): Handle ignore_unsupported flag.
3102         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3103         parameter.
3104
3105         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3106         --ignore-unsupported by default until glib bindings
3107         support arrays.
3108
3109 2005-03-11  Colin Walters  <walters@verbum.org>
3110
3111         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3112         install it.
3113
3114         * bus/print-introspect.c: New file; prints introspection
3115         data for a given name and object path.
3116
3117         * bus/run-with-tmp-session-bus.sh: New file, refactored
3118         from test/glib/run-test.sh.  Creates a temporary session
3119         bus and runs another program.
3120
3121         * test/glib/run-test.sh: Refactor to invoke
3122         run-with-tmp-session-bus.sh.
3123
3124         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3125         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3126         macros instead of hardcoding.
3127
3128         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3129
3130 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3131
3132         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3133         this unref; it doesn't match up evenly in some codepaths.
3134         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3135         this evenly matches with the ref near the top of this function.
3136
3137 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3138
3139         * dbus/dbus-object-tree.c
3140         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3141         and we try to unregister a path that's not registered, still go
3142         through the process of unlocking and don't just return.
3143
3144 2005-03-09  Colin Walters  <walters@verbum.org>
3145
3146         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3147         to this are generated for client-side wrappers.  Invokes a
3148         D-BUS method and returns reply values.  
3149
3150         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3151         function; writes signature string for argument direction.
3152         (write_args_for_direction): Change to pass input values directly
3153         instead of via address, and fix indentation.
3154         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3155         make generated wrappers inlineable.
3156
3157         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3158         note about using dbus_type_is_fixed.
3159
3160         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3161         dbus/dbus-signature.c as dbus_type_is_fixed.
3162
3163         All callers updated.
3164
3165         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3166         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3167
3168         * dbus/dbus-signature.h: Prototype.
3169
3170         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3171         error printf code.
3172
3173         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3174         appropriate instead of just freeing it.
3175         (main): Free returned strings using g_free.
3176
3177         * test/glib/Makefile.am (test-service-glib-glue.h)
3178         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3179
3180         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3181         simply maps a simple D-BUS type to GType.
3182         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3183         GType.
3184         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3185         initialize the value with it.
3186         (dbus_gvalue_binding_type_from_type): Unused, delete.
3187         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3188         various types instead of unmarshalling to value data directly.
3189         Remove can_convert boolean.
3190         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3191         returning directly instead of using can_convert boolean.
3192         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3193         Stores a GValue in a pointer to a value of its corresponding C
3194         type.
3195
3196         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3197         add dbus_gvalue_store.
3198
3199 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3200
3201         Fix a bunch of lifecycle and memory management problems
3202         in the mono bindings.
3203
3204         * mono/Arguments.cs (Arguments): Implement IDisposable
3205
3206         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3207         strictly a static class.
3208
3209         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3210         delegates into this file.
3211         (Connection): Implement IDisposable.
3212         (Dispose): Disconnect the connection and set the raw connection
3213         pointer to IntPtr.Zero.
3214         (~Connection): Call Dispose().
3215         (RegisterObjectPath): Added.  Manages the registration of object
3216         paths so we can cleanly disconnect them at dispose/finalize time.
3217         (UnregisterObjectPath): Ditto.
3218         (set_RawConnection): Unregister all of the object paths when
3219         changing the underlying DBusConnection.  Add them back onto the
3220         new connection, if any.
3221
3222         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3223         more unmanaged resources anymore, so it's not necessary.  Move all
3224         the DBusObjectPathVTable stuff out of here.
3225         (Handler): Save references to our delegates so that they don't get
3226         finalized.  Call Connection.RegisterObjectPath() instead of
3227         dbus_connection_register_object_path() directly.
3228         (Message_Called): Dispose the message after we're finished with
3229         it.
3230
3231         * mono/Message.cs (Message): Implement IDisposable.
3232         (Dispose): Dispose the Arguments, and set the RawMessage to
3233         IntPtr.Zero.
3234         (SendWithReplyAndBlock): We own the ref to the reply that comes
3235         back from dbus_connection_send_with_reply_and_block() so add a
3236         comment about that and unref it after we've constructed a managed
3237         MethodReturn class around it.  Fixes a big, big leak.
3238
3239         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3240         method.
3241         (BuildSignalHandler): After we've sent the Signal message, dispose
3242         of it.
3243         (BuildMethod): Dispose of the method call and reply messages after
3244         we've sent the message and extracted the data we want from the
3245         reply.
3246
3247         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3248         anymore.
3249         (Service_FilterCalled): Dispose of the message after we're
3250         finished with it.
3251
3252 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3253
3254         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3255         After we attach our pending call to the connection, unref
3256         it.  Fixes a leak.
3257  
3258         * mono/Connection.cs (set_RawConnection): Disconnect our
3259         filter and match callbacks from the old connection and
3260         reconnect them to the new connection, if any.
3261
3262         * mono/DBusType/Array.cs: "Code" is a static member, so
3263         don't use "this" to refer to it.  Fix for stricter checking
3264         in Mono 1.1.4.
3265  
3266         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3267         object path that we pass into unmanaged code.
3268  
3269         * mono/DBusType/String.cs (Append): Don't leak the string
3270         that we pass into unmanged code.
3271
3272 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3273         * NEWS: Update for 0.31
3274
3275         * configure.in: Release 0.31
3276         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3277
3278         * qt/Makefile.am: fixed build
3279
3280         * dbus/Makefile.am: soname bump for libdbus
3281
3282         * glib/Makefile.am: soname bump for libdbus-glib
3283
3284 2005-03-05  Havoc Pennington  <hp@redhat.com>
3285
3286         * dbus/dbus-sysdeps.c:
3287         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3288         value
3289         (_dbus_generate_random_bytes_buffer): fix return value
3290
3291         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3292         checks actually work, from Tom Parker <fdo@tevp.net>
3293
3294 2005-03-01  Colin Walters  <walters@verbum.org>
3295
3296         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3297         functions copied from dbus-glib-tool.c.
3298         (main): Convert lots of error code to use them.
3299         Also add some testing for introspection bits.
3300
3301 2005-03-01  Colin Walters  <walters@verbum.org>
3302         
3303         * doc/TODO: Remove introspection signature TODO.
3304
3305 2005-02-27  Colin Walters  <walters@verbum.org>
3306
3307         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3308         Change return value to const char * instead of int so we can do
3309         full signatures.
3310         (struct PropertyInfo, struct ArgInfo): Store char *.
3311         (property_info_new, arg_info_new): Update parameters, strdup.
3312         (property_info_unref, arg_info_unref): Free.
3313
3314         * glib/dbus-gidl.h: Update prototypes.
3315
3316         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3317         (validate_signature): New function, just validates signature and
3318         sets GError.
3319         (parse_property, parse_arg): Invoke validate_signature.  Store
3320         signature instead of just type code.
3321
3322         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3323         function to return a primary type for a signature, dropping
3324         information about types in container types.
3325         (dbus_gvalue_genmarshal_name_from_type)
3326         (dbus_gvalue_binding_type_from_type)
3327         (dbus_gvalue_ctype_from_type): Update to take full signature
3328          instead of type code.
3329         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3330
3331         * glib/dbus-gvalue.h: Update prototypes for above.
3332
3333         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3334         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3335         (introspect_properties, introspect_signals, write_interface):
3336         Update to handle signatures, and remove usage of
3337         _dbus_gutils_type_to_string.
3338         (handle_introspect): Print out type codes instead of e.g. "string"
3339         in hardcoded introspection XML; also use x_AS_STRING constants
3340         instead of hardcoding in string.
3341
3342         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3343         to string.  Remove usage of _dbus_gutils_type_to_string.
3344
3345         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3346
3347         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3348         deletion.
3349         
3350         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3351         (compute_marshaller_name, generate_glue): Handle signature change
3352         to string.
3353         (write_formal_parameters, write_args_for_direction): Ditto, and
3354         remove FIXME.
3355
3356         * tools/dbus-tree-view.c (type_to_string): Delete.
3357         (info_set_func_text): Update to print full signatures.
3358
3359         * test/glib/test-service-glib.xml: Change types to new
3360         introspection format.
3361
3362 2005-02-26  Havoc Pennington  <hp@redhat.com>
3363
3364         * doc/TODO: remove the "guid" item
3365
3366         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3367         (with_bus_thread_func): use open_private
3368
3369         * dbus/dbus-connection.c (dbus_connection_open_private): new
3370         function that works like the old dbus_connection_open()
3371         (dbus_connection_open): now returns an existing connection if
3372         possible
3373
3374         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3375         through the GUID to the transport
3376
3377         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3378         GUID in hex-encoded form.
3379
3380         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3381         pass GUID argument in to the transport
3382
3383         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3384         guid argument
3385
3386         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3387
3388         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3389
3390 2005-02-25  Havoc Pennington  <hp@redhat.com>
3391
3392         * doc/dbus-specification.xml: document the GUID thing
3393
3394         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3395         globally unique ID for the server, and put a "guid=hexencoded"
3396         field in the address
3397
3398         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3399
3400         * dbus/dbus-message.c: ditto
3401
3402         * dbus/dbus-dataslot.c: ditto
3403
3404         * dbus/dbus-list.c: ditto
3405
3406         * dbus/dbus-internals.h: wait, just include
3407         dbus-threads-internal.h here
3408         
3409         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3410         use in main library
3411
3412         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3413
3414 2005-02-24  Colin Walters  <walters@verbum.org>
3415
3416         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3417
3418 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3419
3420         * glib/Makefile.am: added dbus-gobject.h to sources list
3421         so distcheck doesn't fail
3422         
3423 2005-02-24  Havoc Pennington  <hp@redhat.com>
3424
3425         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3426         you must disconnect before unref, since locking and other things
3427         are screwed up otherwise. Fix assorted other locking stuff.
3428
3429         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3430         fix compilation
3431
3432         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3433         into a private header and don't export from the library
3434
3435         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3436
3437 2005-02-24  Colin Walters  <walters@verbum.org>
3438         
3439         * dbus/dbus-signature.c: New file; implements various functions
3440         related to type signatures.  Includes an interator for parsing,
3441         validation functions.
3442         (dbus_type_is_basic): Moved here from
3443         dbus-marshal-basic.c:_dbus_type_is_basic.
3444         (dbus_type_is_container): Moved here from
3445         dbus-marshal-basic.c:_dbus_type_is_container.
3446
3447         All callers of _dbus_type_is_container and _dbus_type_is_basic
3448         updated, and include dbus-signature.h.
3449
3450         * dbus/dbus-signature.h: New file; prototypes for the above.
3451
3452         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3453         dbus-signature.h.
3454
3455         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3456         function factored out of _dbus_first_type_in_signature.
3457         (_dbus_first_type_in_signature_c_str): New function; returns first
3458         type code for a type signature character.
3459
3460         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3461         handle function moves.
3462
3463         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3464
3465         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3466         function; skips to next complete type in type signature.
3467         Implemented using previous skip_one_complete_type.  Now
3468         skip_one_complete_type just delegates to
3469         _dbus_type_signature_next.
3470
3471         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3472         to dbus-signature.c
3473         (_dbus_type_is_container): Ditto.
3474
3475         * doc/dbus-specification.xml: Update introspection sample to
3476         use real type signatures.
3477
3478         * dbus/dbus-test.h: Prototype signature test.
3479
3480         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3481         signature tests.
3482
3483         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3484
3485 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3486
3487         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3488         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3489
3490 2005-02-21  Colin Walters  <walters@verbum.org>
3491
3492         * dbus/dbus-test-main.c (main): Take optional specific test
3493         argument.
3494
3495         * dbus/dbus-test.c (run_test): New function, runs a test function
3496         with no data directory.
3497         (run_data_test): Like above, but takes data directory.
3498         (dbus_internal_do_not_use_run_tests): Take
3499         specific test argument.  Replace lots of cut n' paste code
3500         with run_test and run_data_test.
3501
3502         * dbus/dbus-test.h: Update prototype for
3503         dbus_internal_do_not_use_run_tests.
3504
3505 2005-02-20  Havoc Pennington  <hp@redhat.com>
3506
3507         Fix bugs reported by Daniel P. Berrange
3508         
3509         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3510         (protected_change_watch): new function
3511         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3512         (_dbus_server_add_watch): change to work like the
3513         dbus-connection.c equivalents; like those, probably kind of
3514         busted, but should at least mostly work for now
3515         (dbus_server_disconnect): drop the lock if we were already
3516         disconnected, patch from Daniel P. Berrange
3517
3518         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3519         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3520         same stuff
3521
3522         * doc/TODO: todo about unscrewing this mess
3523
3524 2005-02-19  Colin Walters  <walters@verbum.org>
3525
3526         * glib/dbus-binding-tool-glib.c
3527         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3528
3529         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3530         as errno.h and sys/stat.h.
3531         (lose): New function, prints error with
3532         newline and exits.
3533         (lose_gerror): Similar, but takes GError for message.
3534         (main): Add --output argument to specify output file to write to,
3535         instead of always printing to stdout.  In this mode, determine
3536         timestamps on source files to see whether any are newer than the
3537         target file.  If not, exit.  Also convert a number of error
3538         messages to use lose (since it's shorter), and switch to using
3539         g_io_channel_shutdown.
3540
3541 2005-02-19  Havoc Pennington  <hp@redhat.com>
3542
3543         * glib/dbus-gobject.c
3544         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3545
3546         * glib/dbus-glib.c: fix doxygen warnings
3547
3548         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3549         is found on an <arg>
3550
3551 2005-02-17  Colin Walters  <walters@verbum.org>
3552
3553         * glib/dbus-gobject.h: Don't export
3554         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3555         
3556         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3557         (invoke_object_method): Handle it.
3558
3559         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3560         Handle rename.
3561         
3562 2005-02-17  Colin Walters  <walters@verbum.org>
3563
3564         * bus/.cvsignore, doc/.cvsignore
3565         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3566         Update.
3567
3568 2005-02-17  Colin Walters  <walters@verbum.org>
3569         
3570         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3571         Rename to DBUS_SERVICE_DBUS.
3572         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3573         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3574         Change the value from "org.freedesktop.Local"
3575         to "org.freedesktop.DBus.Local".
3576         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3577         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3578         DBUS_INTERFACE_INTROSPECTABLE.
3579         Change the value from "org.freedesktop.Introspectable"
3580         to "org.freedesktop.DBus.Introspectable".
3581         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3582         DBUS_INTERFACE_PROPERTIES.
3583         Change the value from "org.freedesktop.Properties"
3584         to "org.freedesktop.DBus.Properties".
3585         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3586         DBUS_INTERFACE_PEER.
3587         Change the value from "org.freedesktop.Peer"
3588         to "org.freedesktop.DBus.Peer".
3589         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3590         DBUS_INTERFACE_LOCAL.
3591         Change the value from "org.freedesktop.Local"
3592         to "org.freedesktop.DBus.Local".
3593
3594         All other users of those constants have been changed.
3595
3596         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3597
3598         * glib/dbus-gobject.c (handle_introspect): Use constants.
3599
3600         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3601
3602 2005-02-17  Colin Walters  <walters@verbum.org>
3603
3604         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3605         (parse_node, parse_interface, parse_method, parse_signal)
3606         (parse_property, parse_annotation): Lose if we're currently in an
3607         annotation.
3608         (parse_annotation): New function.
3609         (parser_start_element, parser_end_element): Handle annotation.
3610         (parse_method, parse_interface): Remove support for c_name attribute,
3611         switch to annotations.
3612
3613         * glib/dbus-gidl.h (interface_info_get_binding_names)
3614         (method_info_get_binding_names)
3615         (interface_info_get_binding_name, method_info_get_binding_name)
3616         (interface_info_set_binding_name, method_info_set_binding_name):
3617         Remove.
3618         (interface_info_get_annotations, method_info_get_annotations)
3619         (interface_info_get_annotation, method_info_get_annotation)
3620         (interface_info_add_annotation, method_info_add_annotation):
3621         Prototype.
3622
3623         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3624         for "bindings".
3625         (struct MethodInfo): Ditto.
3626         Straightfoward conversion of binding methods into annotation methods
3627         as prototyped.
3628
3629         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3630
3631         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3632
3633         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3634         Use new annotation API.
3635
3636         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3637         annotation element.
3638         
3639         * doc/dbus-specification.xml: Discuss introspection annotations,
3640         include list of well-known annotations.
3641
3642         * test/glib/test-service-glib.xml: Make validate against new DTD.
3643
3644 2005-02-17  Colin Walters  <walters@verbum.org>
3645
3646         This patch is based on initial work from
3647         Paul Kuliniewicz <kuliniew@purdue.edu>.
3648
3649         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3650         initialization of GValue from dbus type to here.
3651         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3652         for the "glib-genmarshal" program from a DBus type.
3653         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3654         into the C name for it we use in the glib bindings.
3655         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3656         glib C type (not GValue).
3657         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3658
3659         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3660         from dbus-gobject.c.
3661
3662         * glib/dbus-gutils.h: Prototype it.
3663
3664         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3665         (marshal_dbus_message_to_g_marshaller): Use new shared function
3666         dbus_glib_marshal_dbus_message_to_gvalue_array.
3667
3668         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3669         Will be changed once we have annotations.
3670
3671         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3672         GStaticRWLock.  Callers updated.
3673         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
3674         (string_table_next): New function for iterating over zero-terminated
3675         string value array.
3676         (string_table_lookup): New function; retrieves specific entry in
3677         array.
3678         (get_method_data): New function; look up method data in object data chunk.
3679         (object_error_domain_prefix_from_object_info)
3680         (object_error_code_from_object_info): New functions, but not implemented yet.
3681         (method_interface_from_object_info): New function; retrieve interface name.
3682         (method_name_from_object_info): New function; retrieve method name.
3683         (method_arg_info_from_object_info): New function; retrieve argument data.
3684         (arg_iterate): New function; iterates over serialized argument data.
3685         (method_dir_signature_from_object_info): New function; returns a
3686         GString holding type signature for arguments for just one
3687         direction (input or output).
3688         (method_input_signature_from_object_info)
3689         (method_output_signature_from_object_info): New functions.
3690         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3691         converts dbus message arguments into a GValue array.  Used for both
3692         signal handling and method invocation.
3693         (struct DBusGlibWriteIterfaceData): New utility structure.
3694         (write_interface): New function; generate introspection XML for
3695         an interface.
3696         (introspect_interfaces): New function; gathers all interface->methods,
3697         generates introspection XML for them.
3698         (handle_introspect): Invoke introspect_interfaces.
3699         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3700         (lookup_object_and_method): New function; examines an incoming message
3701         and attempts to match it up (via interface, method name, and argument
3702         signature) with a known object and method.
3703         (gerror_domaincode_to_dbus_error_name): New function; converts a
3704         GError domain and code into a DBus error name.  Needs GError data
3705         added to object introspection to work well.
3706         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3707         GError.
3708         (invoke_object_method): New function to invoke an object method
3709         looked up via lookup_object_and_method.  Parses the incoming
3710         message, turns it into a GValue array, then invokes the marshaller
3711         specified in the DBusGMethodInfo.  Creates a new message with
3712         either return values or error message as appropriate.
3713         (gobject_message_function): Invoke lookup_object_and_method and
3714         invoke_object_method.
3715
3716         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3717         (enum DBusBindingOutputMode): New enum for binding output modes.
3718         (pretty_print): Print binding names.
3719         (dbus_binding_tool_error_quark): GError bits.
3720         (version): Fix typo.
3721         (main): Create GIOChannel for output.  Parse new --mode argument,
3722         possible values are "pretty-print", "glib-server", "glib-client".
3723         Use mode to invoke appropriate function.
3724         
3725         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3726
3727         * glib/dbus-glib-tool.h: New header, just includes GError bits
3728         for now.
3729
3730         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3731         maps binding style to name.
3732         (struct MethodInfo): Ditto.
3733         (get_hash_keys, get_hash_key): Utility function, returns keys for
3734         a GHashTable.
3735         (interface_info_new, method_info_new): Initialize bindings.
3736         (interface_info_unref, method_info_unref): Destroy bindings.
3737         (method_info_get_binding_names, method_info_get_binding_name)
3738         (interface_info_get_binding_names, interface_info_get_binding_name):
3739         Functions for retrieving binding names.
3740         (method_info_set_binding_name, interface_info_set_binding_name):
3741         Functions for setting binding names.
3742
3743         * glib/dbus-binding-tool-glib.h: New file, has prototypes
3744         for glib binding generation.
3745
3746         * glib/dbus-binding-tool-glib.c: New file, implements server-side
3747         and client-side glib glue generation.
3748
3749         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3750         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3751         dbus-glib-tool.h.
3752
3753         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3754         of using GClosureMarshal directly.
3755         (struct DBusGObjectInfo): Add n_infos member.
3756
3757         * test/glib/test-service-glib.xml: New file; contains introspection data
3758         for MyTestObject used in test-service-glib.c.
3759
3760         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3761         (my_object_do_nothing, my_object_increment, my_object_throw_error)
3762         (my_object_uppercase, my_object_many_args): New test methods.
3763         (main): Use dbus_g_object_class_install_info to include generated object
3764         info.
3765
3766         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3767         as well as client-side bindings.
3768
3769         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3770         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3771         using both the dbus_gproxy stuff directly as well as the generated bindings.
3772
3773 2005-02-15  Havoc Pennington  <hp@redhat.com>
3774
3775         * dbus/dbus-connection.c (dbus_connection_dispatch): always
3776         complete a pending call, don't run filters first.
3777
3778         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3779         dbus_pending_call_steal_reply
3780
3781         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3782         _dbus_connection_block_pending_call
3783         (dbus_pending_call_get_reply): change to steal_reply and return a
3784         ref
3785
3786         * dbus/dbus-connection.c
3787         (dbus_connection_send_with_reply_and_block): port to work in terms
3788         of DBusPendingCall
3789         (_dbus_connection_block_pending_call): replace block_for_reply
3790         with this
3791
3792 2005-02-14  Havoc Pennington  <hp@redhat.com>
3793
3794         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3795         properly handle looking up group information by name; fix 
3796         from j@bootlab.org
3797
3798 2005-02-13  Havoc Pennington  <hp@redhat.com>
3799
3800         * dbus/dbus-connection.c (dbus_connection_return_message) 
3801         (dbus_connection_borrow_message): hold dispatch lock while message
3802         is outstanding
3803         (_dbus_connection_block_for_reply): hold dispatch lock while we
3804         block for the reply, so nobody steals our reply
3805         (dbus_connection_pop_message): hold the dispatch lock while we
3806         pluck the message
3807
3808 2005-02-13  Havoc Pennington  <hp@redhat.com>
3809
3810         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3811         (_dbus_connection_release_dispatch)
3812         (_dbus_connection_acquire_io_path)
3813         (_dbus_connection_release_io_path): make the mutex and condvar
3814         control access to the "acquired" flag. Drop the connection lock
3815         while waiting on the condvar. Hopefully these are baby steps in
3816         roughly the right direction.
3817
3818 2005-02-13  Havoc Pennington  <hp@redhat.com>
3819
3820         * dbus/dbus-connection.c: use separate mutexes for the condition
3821         variables; this is some kind of baseline for sanity, but the
3822         condition variables still aren't used correctly afaict
3823
3824 2005-02-13  Havoc Pennington  <hp@redhat.com>
3825
3826         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3827         fix a double-unlock
3828
3829         * dbus/dbus-connection.c
3830         (_dbus_connection_detach_pending_call_unlocked): add this
3831
3832         Initial semi-correct pass through to fix thread locking; there are
3833         still some issues with the condition variable paths I'm pretty
3834         sure
3835         
3836         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3837         lock/unlock calls
3838
3839         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3840         rename to add _unlocked
3841         (struct DBusConnection): move "dispatch_acquired" and
3842         "io_path_acquired" to use only one bit each.
3843         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3844         (dbus_connection_set_watch_functions): hacky fix to reentrancy
3845         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
3846         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
3847         (_dbus_connection_remove_timeout) 
3848         (_dbus_connection_toggle_timeout): drop lock when calling out to
3849         user functions; done in a hacky/bad way.
3850         (_dbus_connection_send_and_unlock): add a missing unlock
3851         (_dbus_connection_block_for_reply): add a missing unlock
3852
3853         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3854         drop lock in a hacky probably unsafe way to call out to user
3855         function
3856
3857 2005-02-12  Havoc Pennington  <hp@redhat.com>
3858
3859         * tools/dbus-tree-view.c (info_set_func_text): display more
3860         details on args
3861
3862         * bus/driver.c (bus_driver_handle_list_services): list the bus
3863         driver
3864
3865         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3866
3867         * glib/dbus-gidl.c (signal_info_get_n_args): new function
3868         (method_info_get_n_args): new function
3869
3870 2005-02-12  Havoc Pennington  <hp@redhat.com>
3871
3872         * bus/driver.c (bus_driver_handle_introspect): add introspection
3873         for bus driver
3874
3875 2005-02-12  Havoc Pennington  <hp@redhat.com>
3876
3877         * bus/driver.c: put the signature of each bus driver method in the
3878         table of handlers and check it on incoming calls; this isn't
3879         really useful, but going to add introspect support in a minute.
3880
3881 2005-02-11  Joe Shaw  <joeshaw@novell.com>
3882
3883         * mono/Connection.cs: The unpredictability of finalizers in mono
3884         prevents us from deterministically disconnecting the filters from
3885         the Service class's finalizer, so move tracking of filters and
3886         matches here.  Add API for that.
3887
3888         * mono/Service.cs: Remove the code, add code which calls the
3889         methods now on the Connection class.
3890
3891 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
3892
3893         * python/dbus.py (class Sender): added to support dbus signals better
3894         (Bus::add_signal_receiver): added expand_args parameter which defaults
3895         to True.  When expand args is True the signal handler will pass the 
3896         message arguments as parameters to the signal handler.  If False
3897         revert to previous behavior where the signal handler must get the
3898         argument list from the message.  This is to help port applications
3899         like HAL that have a tendancy to send variable length argument lists.
3900         self._match_rule_to_receivers is now a dict of dicts.
3901         (Bus::remove_signal_receiver): pop handler off the dict intead of 
3902         removing it from a list
3903         (Bus::_signal_func): change signal handlers so that interface,
3904         signal_name, service, path and message are packed into a Sender
3905         object and that is passed to the handler.  If expand_args is True
3906         extract the args list from the message and append it to the parameter
3907         list
3908         
3909         * python/dbus_bindings.pyx.in (class Signature): added to support 
3910         signiature types
3911         (MessageIter::__init__): changed iteration limit to match D-BUS
3912         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
3913         STRUCT and VARIENT type support
3914         (MessageIter::python_value_to_dbus_sig): made recursive to support
3915         recursive types
3916         (MessageIter::append*): added Signature, dict, tuple 
3917         support
3918
3919         * python/examples/example-client.py: added examples of getting tuples
3920         and dicts
3921
3922         * python/examples/example-service.py: added examples of sending tuples
3923         and dicts
3924
3925         * python/examples/example-signal-recipient.py: Fixed to handle new
3926         signal callback format
3927
3928 2005-02-10  Havoc Pennington  <hp@redhat.com>
3929
3930         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
3931         (call dbus_g_proxy_add_signal)
3932
3933         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3934         escape the hostname
3935         (_dbus_server_new_for_domain_socket): escape the path
3936
3937         * dbus/dbus-address.c (dbus_address_escape_value): new
3938         (dbus_address_unescape_value): new
3939         (dbus_parse_address): unescape values
3940
3941         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
3942
3943         * doc/dbus-specification.xml: explain how to escape values in
3944         addresses
3945
3946 2005-02-10  Havoc Pennington  <hp@redhat.com>
3947
3948         * dbus/dbus-message-factory.c (generate_special): modify test to
3949         avoid using a non-basic dict key
3950
3951         * dbus/dbus-marshal-validate-util.c: add test for the below
3952
3953         * doc/dbus-specification.xml: require that dict keys are a basic
3954         type
3955
3956         * dbus/dbus-marshal-validate.c
3957         (_dbus_validate_signature_with_reason): require that dict key is a
3958         basic type
3959
3960 2005-02-10  Havoc Pennington  <hp@redhat.com>
3961
3962         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3963         change to be _and_unlock instead of _unlocked
3964
3965         * dbus/dbus-connection.c
3966         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
3967         have no_update so we can find this bug quickly in future
3968
3969 2005-02-10  Havoc Pennington  <hp@redhat.com>
3970
3971         * dbus/dbus-message-util.c (verify_test_message): tests for string
3972         array
3973
3974         * dbus/dbus-message.c (dbus_message_append_args_valist): add
3975         support for arrays of string/signature/path
3976
3977 2005-02-10  Joe Shaw  <joeshaw@novell.com>
3978
3979         * dbus/dbus-connection.c
3980         (_dbus_connection_queue_received_message_link,
3981         _dbus_connection_message_sent): Add the path to
3982         the verbose output.
3983         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
3984         _dbus_connection_send_preallocated_unlocked(), updated the
3985         dispatch status, and unlocks.  Fixes a bug where certain
3986         situations (like a broken pipe) could cause a Disconnect message
3987         to not be sent, tricking the bus into thinking a service was still
3988         there when the process had quit.
3989         (_dbus_connection_send_preallocated): Call
3990         _dbus_connection_send_preallocated_and_unlock().
3991         (_dbus_connection_send_and_unlock): Added.  Calls
3992         _dbus_connection_send_preallocated_and_unlock().
3993         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
3994         (dbus_connection_send_with_reply): Update the dispatch status and
3995         unlock.
3996
3997         * mono/Service.cs (~Service): Added.  Removes the filter so that
3998         we don't get unmanaged code calling back into a GCed delegate.
3999         (RemoveFilter); Added.
4000
4001 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4002
4003         * dbus/dbus-message.c (dbus_message_iter_open_container):
4004         - Removed check for iterator type being an array because
4005         get_arg_type does not work with writer iterators
4006         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4007
4008 2005-02-07  Havoc Pennington  <hp@redhat.com>
4009
4010         * doc/dbus-specification.xml: some more language cleanups; add
4011         stuff about how to deal with invalid protocol and extension
4012         points; add _ to allowed chars in auth commands; add EXTENSION_
4013         auth command prefix
4014
4015 2005-02-06  Havoc Pennington  <hp@redhat.com>
4016
4017         * s/expected/required/ in a couple places for clarity
4018
4019 2005-02-07  Colin Walters  <walters@verbum.org>
4020
4021         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4022         sender or proposed_recipient.
4023
4024 2005-02-06  Havoc Pennington  <hp@redhat.com>
4025
4026         * dbus/dbus-message-factory.c (generate_special): more tests
4027
4028         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4029         array length that exceeds the maximum
4030
4031 2005-02-05  Havoc Pennington  <hp@redhat.com>
4032
4033         * dbus/dbus-message-factory.c (generate_special): more test cases,
4034         increasing coverage
4035
4036         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4037         reason why a signature was invalid
4038
4039         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4040         skip the length of the string before we look at it in validation
4041
4042         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4043         equal_substring
4044
4045         * dbus/dbus-message.c (_dbus_message_loader_new): default
4046         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4047
4048 2005-02-05  Havoc Pennington  <hp@redhat.com>
4049
4050         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4051         if the signature of a variant was empty
4052         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4053         struct with no element type)
4054
4055         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4056         mangled messages to break things
4057
4058 2005-02-04  Havoc Pennington  <hp@redhat.com>
4059
4060         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4061         g_quark_try_string() so it actually can return 0
4062         (dbus_g_proxy_connect_signal): ditto
4063
4064 2005-02-04  Havoc Pennington  <hp@redhat.com>
4065
4066         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4067         bogus warning
4068         (tristring_from_message): assert cleanly on null path/interface
4069         (should not be possible though I decided later)
4070         (dbus_g_proxy_dispose): move proxy manager unregistration here
4071         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4072         g_return_if_fail() checks
4073
4074 2005-02-04  Havoc Pennington  <hp@redhat.com>
4075
4076         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4077
4078         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4079         (with some minor changes)
4080
4081         * doc/dbus-specification.xml: add deprecated attribute to
4082         introspection format
4083
4084 2005-01-31  Havoc Pennington  <hp@redhat.com>
4085
4086         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4087         think it's sort of right
4088
4089 2005-01-30  Havoc Pennington  <hp@redhat.com>
4090
4091         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4092
4093 2005-01-30  Havoc Pennington  <hp@redhat.com>
4094
4095         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4096
4097         * autogen.sh: change to autotools 1.9
4098
4099         * glib/dbus-gproxy.c: completely change how signals work
4100         (dbus_g_proxy_add_signal): new function to specify signature of a
4101         signal
4102         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4103         and g_warning if the incoming message has the wrong signature.
4104
4105 2005-01-30  Havoc Pennington  <hp@redhat.com>
4106
4107         * tools/dbus-names-model.c (have_names_notify): fix this
4108
4109         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4110         up the string array handling a bit 
4111
4112 2005-01-30  Havoc Pennington  <hp@redhat.com>
4113
4114         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4115         (dbus_g_pending_call_cancel): new function
4116
4117         * dbus/dbus-glib.h: move GType decls for connection/message here;
4118         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4119         here, just kind of rationalizing how we handle all that
4120
4121         * tools/dbus-names-model.c: new file for a tree model listing the
4122         services on a bus
4123
4124         * tools/dbus-tree-view.c (model_new): use proper typing on the
4125         model rows
4126
4127 2005-01-30  Havoc Pennington  <hp@redhat.com>
4128
4129         * glib/dbus-gmain.c: add a custom GSource back that just checks
4130         whether the message queue has anything in it; otherwise, there are 
4131         cases where we won't see messages in the queue since there was no 
4132         IO visible to the glib main loop
4133
4134         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4135         increase default message timeout to 25 seconds
4136
4137 2005-01-30  Havoc Pennington  <hp@redhat.com>
4138
4139         * test/glib/test-profile.c (no_bus_stop_server): remove the
4140         warning about the g_warning that I just fixed
4141
4142         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4143         custom source, seems to be a lot easier to understand and work
4144         better.
4145
4146 2005-01-30  Havoc Pennington  <hp@redhat.com>
4147
4148         I think this main loop thing is conceptually broken, but here are 
4149         some band aids. I'll maybe rewrite it in a minute.
4150         
4151         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4152         custom GSource, so don't pass it in; confusing
4153         (gsource_server_finalize, gsource_connection_finalize): add
4154         finalize handlers that remove all the watches.  
4155
4156 2005-01-30  Havoc Pennington  <hp@redhat.com>
4157
4158         * glib/dbus-gobject.c (introspect_properties): fix the XML
4159         generated
4160
4161         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4162         which effectively detects the use of freed messages
4163
4164         * glib/dbus-gobject.c (handle_introspect): modify and return the
4165         reply message instead of the incoming message
4166
4167         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4168         gee, maybe it should SEND THE XML instead of just making a string
4169         and freeing it again ;-)
4170
4171         * tools/dbus-print-message.c (print_message): improve printing of
4172         messages
4173
4174         * configure.in: add debug-glib.service to the output
4175
4176 2005-01-30  Havoc Pennington  <hp@redhat.com>
4177
4178         dbus-viewer introspected and displayed the bus driver
4179         
4180         * dbus/dbus-object-tree.c 
4181         (object_tree_test_iteration): add tests for a handler registered on "/"
4182
4183         * dbus/dbus-object-tree.c
4184         (_dbus_decompose_path): fix to handle path "/" properly
4185         (run_decompose_tests): add tests for path decomposition
4186         
4187         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4188         properly
4189
4190         * glib/dbus-gobject.c (handle_introspect): fix quotes
4191
4192         * test/glib/run-test.sh: support launching the bus, then running
4193         dbus-viewer
4194
4195         * test/glib/test-service-glib.c (main): put in a trivial gobject
4196         subclass and register it on the connection
4197
4198         * bus/driver.c (bus_driver_handle_introspect): implement
4199         introspection of the bus driver service
4200
4201         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4202         identifiers, doctype decl
4203
4204         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4205         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4206         returning the service unchanged.
4207         (bus_driver_handle_message): remove old check for reply_serial in
4208         method calls, now the message type deals with that
4209         (bus_driver_handle_message): handle NULL interface
4210
4211         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4212
4213         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4214         -1 for len
4215
4216         * tools/dbus-viewer.c: add support for introspecting a service on
4217         a bus
4218
4219         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4220         (dbus_g_pending_call_unref): add
4221
4222 2005-01-29  Havoc Pennington  <hp@redhat.com>
4223
4224         * tools/dbus-tree-view.c: add support for displaying properties.
4225         (run dbus-viewer with an introspect xml file as arg, then resize
4226         the window so the tree elements show up, not sure what that is)
4227
4228         * glib/dbus-gobject.c (handle_introspect): return
4229         org.freedesktop.Properties and org.freedesktop.Introspectable
4230         interfaces when we are introspected.
4231
4232         * doc/dbus-specification.xml: allow empty interface name when 
4233         Get/Set a property
4234
4235 2005-01-29  Havoc Pennington  <hp@redhat.com>
4236
4237         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4238         though it uses glib, it could be extended for any binding in
4239         principle
4240
4241         * glib/dbus-gobject.c (gobject_message_function): change to the
4242         new way properties work
4243
4244         * dbus/dbus-protocol.h: add the new interfaces
4245
4246         * doc/dbus-specification.xml: document the introspection format,
4247         Introspectable interface, and add an org.freedesktop.Properties
4248         interface.
4249
4250         * glib/dbus-gparser.c: add support for a <property> element
4251
4252         * glib/dbus-gidl.c: add PropertyInfo
4253
4254         * glib/dbus-gobject.c (handle_introspect): put the outermost
4255         <node> outside the signal and property descriptions.
4256         (introspect_properties): export properties as <property> rather
4257         than as method calls
4258
4259 2005-01-28  Havoc Pennington  <hp@redhat.com>
4260
4261         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4262         related to authentication protocol
4263
4264 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4265
4266         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4267                 - BUS_ACTIVATION -> BUS_STARTER
4268                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4269                 - class MessageIter (__init__): Added recursion checking 
4270                 so we throw a nice error instead of just disconnecting from the
4271                 bus.
4272                 (get): Added arg_type parameter for recursion.
4273                 Removed the nil type
4274                 Added signiture type placeholder (not implemented)
4275                 Added struct type placeholder (not implemented)
4276                 Added varient type placeholder (not implemented)
4277                 Commented out dict type for now     
4278                 (get_element_type): renamed from get_array_type
4279                 (get_*): changed to use the dbus_message_iter_get_basic API
4280                 (get_*_array): removed in favor of recursive get_array method
4281                 (get_array): new recursive method which calls get to marshal
4282                 the elements of the array
4283                 (value_to_dbus_sig): New method returns the corrasponding
4284                 dbus signiture to a python value
4285                 (append): Comment out dict handling for now
4286                 Handle lists with the new recursive API
4287                 Comment out None handling for now
4288                 (append_nil): removed
4289                 (append_*): changed to use dbus_message_iter_append_basic API
4290                 (append_*_array): removed in favor of recursive append_array 
4291                 method
4292                 (__str__): Make it easier to print out recursive iterators
4293                 for debugging
4294                 - class Message (__str__): moved type inspection to the
4295                 MessageIter class' __str__ method
4296                 (get_iter): Added an append parameter wich defaults to False
4297                 If True use the new API's to create an append iterator
4298
4299         * python/dbus.py: Update to use new bindings API
4300                 - TYPE_ACTIVATION -> TYPE_STARTER
4301                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4302                 - class ActivationBus -> class StarterBus
4303                 - class RemoteObject (__call__): get an append iterator
4304                 - (_dispatch_dbus_method_call): get an append iterator
4305                 - class Object (emit_signal): get an append iterator
4306
4307         * python/examples/: Fixed up the examples to work with the new API
4308                 
4309 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4310
4311         * configure.in: Bump version up to 0.30.
4312
4313         * HACKING: Add a release item to bump the version number up after 
4314         a release.
4315
4316 2005-01-28  Havoc Pennington  <hp@redhat.com>
4317
4318         * doc/dbus-specification.xml: update to describe 16-bit types and
4319         dict entries
4320
4321         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4322         assertion
4323
4324         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4325         type
4326
4327         * dbus/dbus-marshal-recursive.c: implement
4328
4329 2005-01-27  Havoc Pennington  <hp@redhat.com>
4330
4331         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4332
4333         * configure.in: find the right type for 16 and 32 bit ints as well
4334         as 64
4335
4336         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4337         the 16-bit types so people don't have to stuff them in 32-bit or
4338         byte arrays.
4339
4340 2005-01-27  Havoc Pennington  <hp@redhat.com>
4341
4342         * dbus/dbus-message.c: byteswap the message if you init an
4343         iterator to read/write from it
4344         
4345         * dbus/dbus-marshal-byteswap.c: new file implementing 
4346         _dbus_marshal_byteswap()
4347
4348         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4349
4350 2005-01-26  Havoc Pennington  <hp@redhat.com>
4351         
4352         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4353         build, apparently - nobody noticed?)
4354         
4355 2005-01-26  Havoc Pennington  <hp@redhat.com>
4356
4357         * dbus/dbus-marshal-recursive.h: remove todo comment
4358
4359 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4360
4361         * Land the mono binding changes to conform to the new APIs.
4362
4363         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4364         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4365
4366         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4367         type code as a string.
4368         (InitAppending): Rename dbus_message_append_iter_init() to
4369         dbus_message_iter_init_append().
4370
4371         * mono/BusDriver.cs: Rename ServiceEventHandler to
4372         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4373         Rename ServiceOwnerChanged to NameOwnerChanged.
4374
4375         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4376         underlying C call.
4377
4378         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4379
4380         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4381         dbus_bus_acquire_service() to dbus_bus_request_name().
4382
4383         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4384         of Type.UnderlyingSystemType to get the correct element type for
4385         the array.
4386         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4387         dbus_message_get_{element|arg}_type() instead of
4388         dbus_message_iter_init_array_iterator().
4389         (Append): Replace dbus_message_iter_append_array() with
4390         dbus_message_iter_open_container() and
4391         dbus_message_iter_close_container().
4392
4393         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4394         types have been removed.
4395         
4396         * mono/DBusType/*.cs: Replace calls of
4397         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4398         but specify the type in the DllImport extern declaration.  Ditto
4399         for dbus_message_iter_append_[type]() ->
4400         dbus_message_iter_append_basic().
4401
4402         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4403         NameOwnerChangedHandler.
4404
4405 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4406
4407         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4408                 - get_base_service -> get_unique_name
4409                 - bus_get_base_service -> bus_get_unique_name
4410                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4411                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4412                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4413                 - bus_activate_service -> bus_start_service_by_name
4414                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4415                 - bus_acquire_service -> bus_request_name
4416                 - dbus_bus_acquire_service -> dbus_bus_request_name
4417                 - bus_service_exists -> bus_name_has_owner
4418                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4419
4420         * python/dbus.py: Rename of methods
4421                 - activate_service -> start_service_by_name
4422                 - bus_acquire_service -> bus_request_name
4423                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4424                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4425
4426         
4427 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4428
4429         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4430         signature for the method that can't be found.
4431
4432         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4433         the message has any arguments, we need to call
4434         _dbus_type_reader_get_current_type(), not
4435         _dbus_type_reader_has_next().
4436
4437 2005-01-24  Havoc Pennington  <hp@redhat.com>
4438
4439         * dbus/dbus-message-factory.c: more testing of message validation
4440
4441         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4442         header
4443
4444 2005-01-23  Havoc Pennington  <hp@redhat.com>
4445
4446         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4447         get this all working, not many tests in the framework yet though
4448
4449 2005-01-22  Havoc Pennington  <hp@redhat.com>
4450
4451         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4452         tutorial, based on work from David Wheeler.
4453
4454 2005-01-21  Havoc Pennington  <hp@redhat.com>
4455
4456         * dbus/dbus-bus.c: add more return_if_fail checks
4457
4458         * dbus/dbus-message.c (load_message): have the "no validation"
4459         mode (have to edit the code to toggle the mode for now though)
4460
4461         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4462         skips all validation; I want to use this at least for benchmark
4463         baseline, I'm not sure if it should be a publicly-available switch.
4464
4465 2005-01-21  Havoc Pennington  <hp@redhat.com>
4466
4467         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4468         toplevel doxygen group as the low-level API stuff
4469
4470         * dbus/dbus.h: note that libdbus is the low-level API
4471
4472 2005-01-20  Havoc Pennington  <hp@redhat.com>
4473
4474         * update-dbus-docs.sh: script to update docs on the web site, only
4475         works for me though. neener.
4476
4477 2005-01-20  Havoc Pennington  <hp@redhat.com>
4478
4479         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4480         code can reveal bugs in it
4481
4482 2005-01-20  Havoc Pennington  <hp@redhat.com>
4483
4484         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4485         select() version, patches from Tor Lillqvist
4486
4487 2005-01-20  Havoc Pennington  <hp@redhat.com>
4488
4489         * doc/dbus-tutorial.xml: replace > with &gt;
4490
4491         * bus/services.c (bus_registry_acquire_service): validate the name
4492         and return a better error if it's no good.
4493
4494         * doc/dbus-specification.xml: note NO_AUTO_START change
4495
4496         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4497         from AUTO_START, we're toggling the default
4498
4499         * bus/dispatch.c: adapt the tests to change of auto-start default
4500
4501 2005-01-18  Havoc Pennington  <hp@redhat.com>
4502
4503         * rename dbus-daemon-1 to dbus-daemon throughout
4504
4505 2005-01-18  Havoc Pennington  <hp@redhat.com>
4506
4507         * Throughout, grand renaming to strip out the use of "service",
4508         just say "name" instead (or "bus name" when ambiguous).  Did not
4509         change the internal code of the message bus itself, only the
4510         programmer-facing API and messages.
4511         
4512         * doc/dbus-specification.xml: further update the message bus section
4513         
4514         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4515         in error case
4516
4517 2005-01-17  Havoc Pennington  <hp@redhat.com>
4518
4519         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4520         ever
4521
4522         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4523         "invalid name character" not only non-ASCII
4524
4525         * doc/dbus-specification.xml: further update spec, message bus 
4526         parts are still out-of-date but the marshaling etc. stuff is now
4527         accurate-ish
4528
4529 2005-01-17  Havoc Pennington  <hp@redhat.com>
4530
4531         * doc/dbus-specification.xml: partially update spec
4532
4533 2005-01-17  Havoc Pennington  <hp@redhat.com>
4534
4535         * Throughout, align variant bodies according to the contained
4536         type, rather than always to 8. Should save a fair bit of space in
4537         message headers.
4538         
4539         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4540         fix handling of case where p == end
4541
4542         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4543
4544 2005-01-17  Havoc Pennington  <hp@redhat.com>
4545
4546         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4547
4548         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4549         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4550         are marshaling/unmarshaling a boolean.
4551
4552 2005-01-16  Havoc Pennington  <hp@redhat.com>
4553
4554         This is about it on what can be disabled/deleted from libdbus
4555         easily, back below 150K anyhow. Deeper cuts are more work than 
4556         just turning the code off as I've done here.
4557         
4558         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4559         signed int convenience funcs
4560
4561         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4562         verbose mode
4563
4564         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4565         things out of libdbus
4566
4567         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4568         
4569         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4570         tests-enabled-only, though it should probably be deleted)
4571
4572         * dbus/dbus-message-util.c: same stuff
4573
4574         * dbus/dbus-auth-util.c: same stuff
4575
4576 2005-01-16  Havoc Pennington  <hp@redhat.com>
4577
4578         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4579
4580         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4581         way for stripping down dbus-userdb.c stuff included in libdbus.
4582         Rename _dbus_parse_uid for consistency.
4583
4584 2005-01-16  Havoc Pennington  <hp@redhat.com>
4585
4586         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4587         name the assertion failed in
4588
4589         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4590         (_dbus_return_val_if_fail): assert that the name of the function
4591         containing the check doesn't start with '_', since we only want to 
4592         use checks on public functions
4593         
4594         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4595         checks to assertions
4596
4597         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4598         change checks to asserts for private function
4599
4600         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4601         to asserts for private function
4602
4603         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4604         broken assertion that was breaking make check
4605         (_dbus_type_reader_array_is_empty): remove this rather than fix
4606         it, was only used in assertions
4607
4608 2005-01-16  Havoc Pennington  <hp@redhat.com>
4609
4610         * test/unused-code-gc.py: hacky script to find code that's used
4611         only by the bus (not libdbus) or used only by tests or not used at
4612         all. It has some false alarms, but looks like we can clean up a
4613         lot of size from libdbus.
4614
4615         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4616         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4617         
4618 2005-01-16  Havoc Pennington  <hp@redhat.com>
4619
4620         * Add and fix docs according to Doxygen warnings throughout
4621         source.
4622         
4623         * dbus/dbus-marshal-recursive.c
4624         (_dbus_type_reader_array_is_empty): change this to just call
4625         array_reader_get_array_len() and make it static
4626
4627         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4628         from get_array_type
4629         (dbus_message_iter_init_append): rename from append_iter_init
4630
4631         * dbus/dbus-marshal-recursive.c
4632         (_dbus_type_reader_get_element_type): rename from
4633         _dbus_type_reader_get_array_type
4634
4635 2005-01-15  Havoc Pennington  <hp@redhat.com>
4636
4637         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4638
4639         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4640         when DBUS_DISABLE_ASSERT
4641         (_dbus_marshal_set_basic): be sure we align for the string length
4642
4643         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4644         this look faster
4645
4646         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4647         inline macro version
4648         (_dbus_string_set_byte): provide inline macro version
4649
4650 2005-01-15  Havoc Pennington  <hp@redhat.com>
4651
4652         * Land the new message args API and type system.
4653
4654         This patch is huge, but the public API change is not 
4655         really large. The set of D-BUS types has changed somewhat, 
4656         and the arg "getters" are more geared toward language bindings;
4657         they don't make a copy, etc.
4658
4659         There are also some known issues. See these emails for details
4660         on this huge patch:
4661         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4662         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4663         
4664         * dbus/dbus-marshal-*: all the new stuff
4665
4666         * dbus/dbus-message.c: basically rewritten
4667
4668         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4669         freed blocks to be all non-nul bytes so using freed memory is less
4670         likely to work right
4671
4672         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4673         DBUS_FAIL_MALLOC=N environment variable, so you can do
4674         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4675         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4676         thorough.
4677
4678         * qt/message.cpp: port to the new message args API
4679         (operator<<): use str.utf8() rather than str.unicode()
4680         (pretty sure this is right from the Qt docs?)
4681
4682         * glib/dbus-gvalue.c: port to the new message args API
4683
4684         * bus/dispatch.c, bus/driver.c: port to the new message args API
4685
4686         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4687         "locked" flag to TRUE and align_offset to 0; I guess we never
4688         looked at these anyhow, but seems cleaner.
4689
4690         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4691         move allocation padding macro to this header; use it to implement
4692         (_DBUS_STRING_STATIC): ability to declare a static string.
4693
4694         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4695         change to return TRUE if the interface is not set.
4696
4697         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4698         to dbus-marshal-validate.[hc]
4699
4700         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4701         dbus-internals.c
4702
4703         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4704         to dbus-marshal-*.[hc]
4705
4706         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4707         function here from dbus-marshal.c
4708
4709 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4710
4711         * NEWS: Update for 0.23.
4712
4713         * configure.in: Release 0.23.
4714
4715 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4716
4717         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
4718         dbus DLL with --debug.  Clean up after the .mdb files this leaves
4719         behind.
4720
4721         * mono/doc/Makefile.am: Need to uninstall the docs on "make
4722         uninstall"
4723
4724         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4725         is an enum, get the enum's underlying type.  Another mono
4726         1.1.3 fix.
4727
4728 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4729
4730         Patch from Sjoerd Simons <sjoerd@luon.net>
4731
4732         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4733         DESTDIR.  It breaks stuff.
4734
4735 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4736
4737         Patch from Tambet Ingo <tambet@ximian.com>
4738
4739         * mono/DBusType/Array.cs (Get): Get the underlying element type by
4740         calling type.GetElementType().  The code previously depended on
4741         broken Mono behavior, which was fixed in Mono 1.1.3.
4742
4743         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4744         Activator.CreateInstance() so that the class's constructor is
4745         called with the right parameters.
4746
4747 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4748
4749         Patch from Timo Teräs <ext-timo.teras@nokia.com>
4750
4751         * dbus/dbus-connection.c
4752         (_dbus_connection_queue_received_message_link): Call
4753         _dbus_connection_remove_timeout() instead of the _locked()
4754         variant, since it's always called from
4755         _dbus_connection_handle_watch(), which handles the locking.
4756         Removed the _locked() variant since it's no longer used.
4757
4758 2005-01-03  Havoc Pennington  <hp@redhat.com>
4759
4760         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4761         return
4762         
4763 2004-12-26  Havoc Pennington  <hp@redhat.com>
4764
4765         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4766
4767 2005-01-03  Havoc Pennington  <hp@redhat.com>
4768
4769         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4770         floating point
4771
4772         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4773
4774 2005-01-02  Havoc Pennington  <hp@redhat.com>
4775
4776         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4777
4778 2005-01-01  Havoc Pennington  <hp@redhat.com>
4779
4780         * configure.in: add -Wfloat-equal
4781
4782 2005-01-01  Havoc Pennington  <hp@redhat.com>
4783
4784         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
4785         for a variety of reasons '==' doesn't do this.
4786
4787 2004-12-31  Havoc Pennington  <hp@redhat.com>
4788
4789         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4790         I keep wishing I had
4791
4792 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4793
4794         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4795
4796 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4797
4798         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4799         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4800         dbus-protocol.h.  Because they are defines and not enums they are not
4801         autogenerated.
4802
4803 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
4804
4805         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4806         dbus_bus_activate_service
4807
4808         * python/dbus.py (Bus.activate_service): activate a service on the
4809         bus.
4810
4811 2004-12-24  Havoc Pennington  <hp@redhat.com>
4812
4813         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4814         file format has also changed and I haven't adapted to that yet
4815         
4816         * Makefile.am: load .gcno files from latest gcc
4817
4818 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
4819         * Patch from Rob Taylor <robtaylor@fastmail.fm>
4820
4821         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4822         lowlevel binding
4823
4824         * python/dbus.py (get_unix_user): Added binding to 
4825         call dbus_bindings.bus_get_unix_user
4826
4827         * python/extract.py: Modified the proto_pat regex to
4828         handle unsigned long
4829
4830 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4831
4832         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4833         better POSIX compliance.
4834
4835 2004-12-19  Havoc Pennington  <hp@redhat.com>
4836
4837         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
4838         (_dbus_string_insert_8_aligned): new functions
4839
4840         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4841
4842 2004-12-18  Havoc Pennington  <hp@redhat.com>
4843
4844         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4845         macro
4846
4847         * dbus/dbus-message.c: fix a comment, and add a still-unused
4848         not-implemented function
4849
4850         * dbus/dbus-marshal.h: fix comment
4851
4852         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4853
4854 2004-12-17  Joe Shaw  <joeshaw@novell.com>
4855
4856         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4857         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4858         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4859         Type.UnderlyingSystemType to get the actual system type
4860         underneath.  This code previously depended on the broken Mono
4861         behavior, which was fixed in 1.1.3.
4862
4863 2004-11-27  Havoc Pennington  <hp@redhat.com>
4864
4865         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4866         are disabled
4867         (_dbus_string_get_const_data): inline when asserts are disabled
4868
4869         * dbus/dbus-message.c: record the _dbus_current_generation of
4870         creation so we can complain if dbus_shutdown() is used improperly.
4871         Do this only if checks are enabled.
4872
4873         * dbus/dbus-connection.c: ditto
4874         
4875 2004-11-26  Havoc Pennington  <hp@redhat.com>
4876
4877         * test/glib/test-profile.c: add with_bus mode to profile echoes
4878         that go through the bus.
4879
4880         * test/glib/run-test.sh: add ability to run test-profile
4881
4882         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4883         config file reload.
4884
4885 2004-11-26  Havoc Pennington  <hp@redhat.com>
4886
4887         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4888         thing was implemented
4889
4890 2004-11-26  Havoc Pennington  <hp@redhat.com>
4891
4892         * test/glib/test-profile.c: tweak a bit, add support for some
4893         made-up minimal malloc overhead with plain sockets, since in 
4894         real life some sort of buffers are unavoidable thus we could 
4895         count them in the theoretical best case
4896
4897 2004-11-26  Havoc Pennington  <hp@redhat.com>
4898
4899         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
4900         where I was trying to cache one too many messages
4901
4902 2004-11-26  Havoc Pennington  <hp@redhat.com>
4903
4904         * dbus/dbus-message.c: reimplement message cache as an array which 
4905         makes the cache about twice as fast and saves maybe 1.5% overall
4906
4907 2004-11-26  Havoc Pennington  <hp@redhat.com>
4908
4909         * dbus/dbus-threads.c (init_global_locks): forgot to put the
4910         message cache lock here
4911
4912 2004-11-26  Havoc Pennington  <hp@redhat.com>
4913
4914         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
4915         the "char byte_order" next to each other to save 4 bytes
4916         (dbus_message_new_empty_header): reduce preallocation, since the
4917         message cache should achieve a similar effect
4918         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
4919         message cache that keeps a few DBusMessage around in a pool,
4920         another 8% speedup or so.
4921
4922         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
4923
4924 2004-11-25  Havoc Pennington  <hp@redhat.com>
4925
4926         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
4927         to write, without reading or blocking, try it before the poll()
4928         and skip the poll() if nothing remains to write. This is about a
4929         3% speedup in the echo client/server
4930
4931 2004-11-25  Havoc Pennington  <hp@redhat.com>
4932
4933         The primary change here is to always write() once before adding
4934         the write watch, which gives us about a 10% performance increase.
4935         
4936         * dbus/dbus-transport-unix.c: a number of modifications to cope
4937         with removing messages_pending
4938         (check_write_watch): properly handle
4939         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
4940         messages_pending stuff
4941         (check_read_watch): properly handle WAITING_FOR_MEMORY and
4942         AUTHENTICATED cases
4943         (unix_handle_watch): after writing, see if the write watch can be
4944         removed
4945         (unix_do_iteration): assert that write_watch/read_watch are
4946         non-NULL rather than testing that they aren't, since they 
4947         aren't allowed to be NULL. check_write_watch() at the end so 
4948         we add the watch if we did not finish writing (e.g. got EAGAIN)
4949
4950         * dbus/dbus-transport-protected.h: remove messages_pending call,
4951         since it resulted in too much inefficient watch adding/removing; 
4952         instead we now require that the transport user does an iteration 
4953         after queueing outgoing messages, and after trying the first
4954         write() we add a write watch if we got EAGAIN or exceeded our 
4955         max bytes to write per iteration setting
4956
4957         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
4958         function
4959
4960         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
4961         freed and then accessed, valgrind flagged this bug, fix it
4962
4963         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
4964         as the last valid field plus 1, where really it is equal to the
4965         last valid field. Corrects some message corruption issues.
4966
4967         * dbus/dbus-mainloop.c: verbosity changes
4968
4969         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
4970         instead of aborting in one of the test codepaths
4971
4972         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
4973         caused not printing the pid ever again if a verbose was missing
4974         the newline at the end
4975         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
4976
4977         * dbus/dbus-connection.c: verbosity changes; 
4978         (dbus_connection_has_messages_to_send): new function
4979         (_dbus_connection_message_sent): no longer call transport->messages_pending
4980         (_dbus_connection_send_preallocated_unlocked): do one iteration to
4981         try to write() immediately, so we can avoid the write watch. This
4982         is the core purpose of this patchset
4983         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
4984         dump the outgoing message queue, so nobody will get confused
4985         trying to send them or thinking stuff is pending to be sent
4986
4987         * bus/test.c: verbosity changes
4988
4989         * bus/driver.c: verbosity/assertion changes
4990
4991         * bus/dispatch.c: a bunch of little tweaks to get it working again
4992         because this patchset changes when/where you need to block.
4993
4994 2004-11-23  Havoc Pennington  <hp@redhat.com>
4995
4996         * test/glib/test-profile.c: modify to accept a plain_sockets
4997         argument in which case it will bench plain sockets instead of
4998         libdbus, for comparison purposes.
4999
5000 2004-11-22  Havoc Pennington  <hp@redhat.com>
5001
5002         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5003         threads for more time, so sysprof can get a grip on it.
5004
5005         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5006         pointless variable
5007
5008 2004-11-13  Havoc Pennington  <hp@redhat.com>
5009
5010         * test/glib/test-profile.c: fix this thing up a bit
5011
5012         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5013         preallocation sizes by a fair bit; not sure if this will be an
5014         overall performance win or not, but it does reduce reallocs.
5015
5016         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5017         the test hack that forced constant realloc if asserts are
5018         disabled, so we can profile sanely. Sprinkle in some
5019         _DBUS_UNLIKELY() which are probably pointless, but before I
5020         noticed the real performance problem I put them in.
5021         (_dbus_string_validate_utf8): micro-optimize this thing a little
5022         bit, though callgrind says it didn't help; then special-case
5023         ascii, which did help a lot; then be sure we detect nul bytes as
5024         invalid, which is a bugfix.
5025         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5026         superstition; use memset to nul the padding instead of a manual
5027         loop.
5028         (_dbus_string_get_length): inline this as a
5029         macro; it showed up in the profile because it's used for loop
5030         tests and so forth
5031
5032 2004-11-10  Colin Walters  <walters@verbum.org>
5033
5034         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5035         for extra paranoia.
5036
5037 2004-11-09  Colin Walters  <walters@verbum.org>
5038
5039         * dbus/dbus-string.c (_dbus_string_get_length): New
5040         function, writes DBusString to C buffer.
5041
5042         * dbus/dbus-string.h: Prototype it.
5043
5044         * dbus/dbus-message.c (dbus_message_type_to_string): New
5045         function, converts message type into C string.
5046
5047         * dbus/dbus-message.h: Prototype it.
5048
5049         * bus/selinux.c (bus_selinux_check): Take source pid,
5050         target pid, and audit data.  Pass audit data to
5051         avc_has_perm.
5052         (log_audit_callback): New function, appends extra
5053         audit information.
5054         (bus_selinux_allows_acquire_service): Also take
5055         service name, add it to audit data.
5056         (bus_selinux_allows_send): Also take message
5057         type, interface, method member, error name,
5058         and destination, and add them to audit data.
5059         (log_cb): Initialize func_audit.
5060         
5061         * bus/selinux.h (bus_selinux_allows_acquire_service)
5062         (bus_selinux_allows_send): Update prototypes 
5063
5064         * bus/services.c (bus_registry_acquire_service): Pass
5065         service name to bus_selinux_allows_acquire_service.
5066
5067         * bus/bus.c (bus_context_check_security_policy): Pass
5068         additional audit data.  Move assignment of dest
5069         to its own line.
5070
5071 2004-11-07  Colin Walters  <walters@verbum.org>
5072
5073         * dbus/dbus-transport-unix.c (do_authentication): Always
5074         initialize auth_completed.
5075         
5076 2004-11-07  Colin Walters  <walters@verbum.org>
5077
5078         * bus/bus.c (load_config): Break into three
5079         separate functions: process_config_first_time_only,
5080         process_config_every_time, and process_config_postinit.
5081         (process_config_every_time): Move call of
5082         bus_registry_set_service_context_table into
5083         process_config_postinit.
5084         (process_config_postinit): New function, does
5085         any processing that needs to happen late
5086         in initialization (and also on reload).
5087         (bus_context_new): Instead of calling load_config,
5088         open config parser here and call process_config_first_time_only
5089         and process_config_every_time directly.  Later, after
5090         we have forked but before changing UID,
5091         invoke bus_selinux_full_init, and then call
5092         process_config_postinit.
5093         (bus_context_reload_config): As in bus_context_new,
5094         load parse file inside here, and call process_config_every_time
5095         and process_config_postinit.
5096
5097         * bus/services.h, bus/services.c
5098         (bus_registry_set_service_context_table): Rename
5099         from bus_registry_set_sid_table.  Take string hash from config
5100         parser, and convert them here into SIDs.
5101
5102         * bus/config-parser.c (struct BusConfigParser): Have
5103         config parser only store a mapping of service->context
5104         string.
5105         (merge_service_context_hash): New function.
5106         (merge_included): Merge context string hashes instead
5107         of using bus_selinux_id_table_union.
5108         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5109         simply create a new string hash.
5110         (bus_config_parser_unref): Unref it.
5111         (start_selinux_child): Simply insert strings into hash,
5112         don't call bus_selinux_id_table_copy_over.
5113
5114         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5115         (bus_selinux_id_table_copy_over): Delete.
5116
5117 2004-11-03  Colin Walters  <walters@verbum.org>
5118
5119         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5120         variables.
5121         
5122 2004-11-03  Colin Walters  <walters@verbum.org>
5123
5124         * bus/test-main.c (test_pre_hook): Fix test logic,
5125         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5126
5127 2004-11-02  Colin Walters  <walters@redhat.com>
5128
5129         * bus/selinux.c (bus_selinux_init): Split into two functions,
5130         bus_selinux_pre_init and bus_selinux_post_init.
5131         (bus_selinux_pre_init): Just determine whether SELinux is
5132         enabled.
5133         (bus_selinux_post_init): Do everything else.
5134
5135         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5136         config file, and bus_selinux_post_init after.  This ensures that
5137         we don't lose the policyreload notification thread that
5138         bus_selinux_init created before forking previously.
5139         
5140         * bus/test-main.c (test_pre_hook): Update for split.
5141
5142 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5143
5144         Patch from Johan Fischer <linux@fischaz.com>
5145         
5146         * mono/doc/Makefile.am (install-data-local): Added directory
5147         install for DESTDIR
5148
5149 2004-10-29  Colin Walters  <walters@redhat.com>
5150
5151         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5152         parameter for fd to write pid to.       
5153
5154         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5155         
5156         * bus/bus.c (bus_context_new): Pass print_pid_fd
5157         to _dbus_become_daemon (bug #1720)
5158
5159 2004-10-29  Colin Walters  <walters@redhat.com>
5160
5161         Patch from Ed Catmur <ed@catmur.co.uk>
5162
5163         * mono/doc/Makefile.am (install-data-local): Handle
5164         DESTDIR.
5165
5166 2004-10-29  Colin Walters  <walters@redhat.com>
5167
5168         * bus/.cvsignore, qt/.cvsignore: Update.
5169
5170 2004-10-29  Colin Walters  <walters@redhat.com>
5171
5172         Patch from Kristof Vansant <de_lupus@pandora.be>
5173
5174         * configure.in: Detect Slackware.
5175         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5176         * bus/rc.messagebus.in: New file.
5177
5178 2004-10-29  Colin Walters  <walters@redhat.com>
5179
5180         * tools/dbus-monitor.c (filter_func): Return
5181         DBUS_HANDLER_RESULT_HANDLED in filter function
5182         for now.  See:
5183         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5184
5185 2004-10-29  Colin Walters  <walters@redhat.com>
5186
5187         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5188
5189         * bus/services.c (bus_registry_acquire_service): 
5190         Correctly retrieve service name from DBusString
5191         for printing.
5192
5193 2004-10-29  Colin Walters  <walters@redhat.com>
5194
5195         * dbus/dbus-glib.h: Update documentation to not
5196         refer to internal APIs.
5197
5198 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5199
5200         * mono/Arguments.cs (GetDBusTypeConstructor):
5201         type.UnderlyingSystemType will return "System.Byte" if you do it
5202         on "byte[]", which is not what we want.  So check the type.IsArray
5203         property and use System.Array instead.
5204
5205 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5206
5207         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5208         the DBusUserInfo structure since this is passed into the function.
5209         This would cause a double free when the function that allocated
5210         the structure would try to free it when an error occured.
5211
5212         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5213         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5214         for service activation to avoid 32bit/64bit parallel install issues
5215
5216 2004-10-21  Colin Walters  <walters@verbum.org>
5217
5218         * AUTHORS: Fix my email address, the @gnu.org one
5219         has been bouncing for some time.  Also add J5.
5220         
5221 2004-10-21  Colin Walters  <walters@verbum.org>
5222
5223         * dbus/dbus-transport-unix.c (do_authentication): Return
5224         authentication status to callers.
5225         (unix_handle_watch): If we completed authentication this round,
5226         don't do another read.  Instead wait until the next iteration,
5227         after we've read any pending data in the auth buffer.
5228         (unix_do_iteration): Ditto.
5229         (unix_handle_watch): Updated for new do_authentication prototype.
5230
5231 2004-10-18  Colin Walters  <walters@verbum.org>
5232
5233         * bus/selinux.c (bus_selinux_enabled): Handle
5234         --disable-selinux case.
5235         
5236 2004-10-18  Colin Walters  <walters@verbum.org>
5237
5238         * bus/selinux.h: Add bus_selinux_enabled.
5239         
5240         * bus/selinux.c (bus_selinux_enabled): Implement it.
5241         
5242         * bus/config-parser.c (struct include): Add
5243         if_selinux_enabled member.
5244         (start_busconfig_child): Parse if_selinux_enabled
5245         attribute for include.
5246         (bus_config_parser_content): Handle it.
5247
5248         * bus/session.conf.in, bus/system.conf.in: Add
5249         inclusion of context mapping to default config files;
5250         conditional on SELinux being enabled.
5251         
5252         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5253         
5254         * test/data/invalid-config-files/badselinux-1.conf, 
5255         test/data/invalid-config-files/badselinux-2.conf:
5256         Test files for bad syntax.
5257         
5258 2004-10-17  Colin Walters  <walters@verbum.org>
5259
5260         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5261         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5262         format specifier mismatches.
5263
5264 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5265
5266         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5267         format string.
5268
5269         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5270         pointer (bug #1540, Leonardo Boiko).
5271
5272 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5273
5274         * mono/BusDriver.cs: Changed BusDriver struct to remove
5275         the ServiceCreated and ServiceDeleted events and replace them
5276         with the new ServiceOwnerChanged event.
5277
5278         * mono/example/BusListener.cs: Added a new example program,
5279         which listens for and reports any ServiceOwnerChanged events
5280         on the bus driver.
5281
5282         * mono/example/Makefile.am (DESTDIR): Build changes for the
5283         new BusListener.cs example.
5284
5285 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5286
5287         * bus/signals.c (bus_match_rule_parse): validate the components of
5288         match rules (bug #1439).
5289
5290         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5291
5292 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5293
5294         * doc/dbus-specification.xml: document ServiceOwnerChanged
5295         signal.
5296         
5297         * bus/driver.c, bus/driver.h, bus/services.c: Use
5298         ServiceOwnerChanged signal instead of ServiceCreated and
5299         ServiceDeleted.
5300         
5301         * bus/dispatch.c: update testcase for the new signal.
5302
5303 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5304
5305         Patch from Nat Friedman <nat@novell.com>
5306
5307         * mono/Makefile.am: A number of small build fixes to allow "make
5308         distcheck" to succeed.
5309
5310         * mono/example/Makefile.am: "make distcheck" fixes.
5311
5312         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5313         key in @srcdir@.
5314
5315         * test/Makefile.am: "make distcheck" fixes.
5316
5317 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5318
5319         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5320
5321         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5322
5323         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5324         messages after the first one (bug #1389).
5325         
5326         * bus/dispatch.c (check_double_hello_message): add a test case for
5327         the double hello message bug.
5328         (check_existent_service_activation): fix check of spawning error.
5329         
5330 2004-09-16  David Zeuthen  <david@fubar.dk>
5331
5332         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5333
5334 2004-09-12  David Zeuthen  <david@fubar.dk>
5335
5336         Patch from Kay Sievers <kay.sievers@vrfy.org>
5337
5338         * bus/bus.c (bus_context_new):
5339         * bus/bus.h:
5340         * bus/main.c (usage)
5341         (main):
5342         Add commandline option --nofork to override configuration file
5343         setting.
5344
5345 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5346
5347         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5348         compilers don't like it (bug #974).
5349
5350 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5351
5352         * qt/connection.*: Applied patch by Jérôme Lodewyck
5353         <lodewyck@clipper.ens.fr> to integrate an existing
5354         connection into the Qt eventloop
5355
5356 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5357
5358         * mono/BusDriver.cs: Added.  This is a class for interacting with
5359         the org.freedesktop.DBus service.
5360
5361         * mono/Message.cs: Added a mechanism to expose the message that is
5362         currently being dispatched via the static Message.Current
5363         property.  Added Message.Sender and Message.Destination
5364         properties.
5365
5366         * mono/Handler.cs: Expose the dispatched message via
5367         Message.Current when handling method calls.
5368
5369         * mono/Service.cs: Expose the dispatched message via
5370         Message.Current when handling signal emissions.
5371         
5372         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5373         Connection.BaseService property.
5374
5375 2004-08-28  Havoc Pennington  <hp@redhat.com>
5376
5377         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5378
5379         More fixes from Steve Grubb
5380         
5381         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5382         (_dbus_listen_tcp_socket): fix fd leak
5383
5384         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5385         EINTR to a bit lower in the code
5386
5387 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5388
5389         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5390         TRUE if we are inquiring about the existence of the built-in
5391         org.freedesktop.DBus service.
5392
5393 2004-08-25  John Palmieri  <johnp@redhat.com>
5394         * bus/config-parser.c:
5395         (struct PolicyType): Add POLICY_CONSOLE
5396         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5397         (start_busconfig_child): Sets up console element when
5398         <policy at_console=""> is encountered in a policy file
5399         (append_rule_from_element): Convert console elements to console
5400         rules.
5401
5402         * bus/policy.c: 
5403         (bus_policy_create_client_policy): Add console rules to the client
5404         policy based on if the client is at the console
5405         (bus_policy_append_console_rule): New function for adding a
5406         console rule to a policy
5407         (bus_policy_merge): Handle console rule merging
5408
5409         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5410         where we check for console user files
5411         
5412         * dbus/dbus-sysdeps.c:
5413         (_dbus_file_exists): New function which checks if the given
5414         file exists
5415         (_dbus_user_at_console): New function which does the system
5416         specific process of checking if the user is at the console
5417
5418         * dbus/dbus-userdb.c:
5419         (_dbus_is_console_user): New function converts a UID to user name
5420         and then calls the system specific _dbus_user_at_console to 
5421         see if the user is at the console and therefor a console user
5422
5423 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5424
5425         * bus/config-parser.c (set_limit):
5426         * bus/dbus-daemon-1.1.in:
5427         * test/data/valid-config-files/many-rules.conf: set the
5428         max_match_rules_per_connection limt from the config file. 
5429
5430         * doc/busconfig.dtd: update the DTD.
5431
5432         * bus/driver.c: remove some unused variables.
5433
5434 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5435
5436         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5437         it's been replaced by dbus_g_bus_get
5438
5439 2004-08-23  Colin Walters  <walters@redhat.com>
5440
5441         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5442
5443         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5444
5445         * bus/selinux.c: Create a thread for policy reload notification.
5446         (bus_selinux_get_policy_root): Implement.
5447
5448         * bus/config-parser.c (start_busconfig_child)
5449         (bus_config_parser_content): Support SELinux-root relative
5450         inclusion.
5451
5452         * configure.in <HAVE_SELINUX>: Add -lpthread.
5453         
5454         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5455         (test_post_hook): Move memory checking into here.
5456         (test_pre_hook, test_post_hook): Move SELinux checks in
5457         here, but conditional on a DBUS_TEST_SELINUX environment
5458         variable.  Unfortunately we can't run the SELinux checks
5459         as a normal user, since they won't have any permissions
5460         for /selinux.  So this will have to be tested manually
5461         for now, until we have virtualization for most of
5462         libselinux.
5463         
5464 2004-08-23  Havoc Pennington  <hp@redhat.com>
5465
5466         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5467         drop supplementary groups, suggested by Steve Grubb
5468
5469 2004-08-20  Colin Walters  <walters@redhat.com>
5470
5471         * bus/config-parser.c (start_busconfig_child): Remove some unused
5472         variables.
5473         
5474         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5475         warning.
5476
5477 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5478
5479         * configure.in: If --enable-mono is passed in, if we can't find
5480         mono error out.
5481
5482         * mono/Makefile.am: Use /gacutil to install assemblies into the
5483         GAC and not /root.
5484
5485 2004-08-12  Havoc Pennington  <hp@redhat.com>
5486
5487         * NEWS: update for 0.22
5488
5489         * configure.in: release 0.22
5490
5491 2004-08-11  Colin Walters  <walters@redhat.com>
5492
5493         * tools/dbus-send.c (main, usage): Add --reply-timeout
5494         argument.
5495
5496 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5497
5498         * bus/bus.c (process_config_first_time_only): get rid of an unused
5499         DBusError that was causing a memoy leak (bug #989).
5500
5501         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5502         fix compilation on Solaris/Forte C (bug #974)
5503
5504         * bus/main.c (main): plug two minuscule memleaks.
5505
5506 2004-08-10  Havoc Pennington  <hp@redhat.com>
5507
5508         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5509
5510 2004-08-09  Havoc Pennington  <hp@redhat.com>
5511
5512         * COPYING: switch to Academic Free License version 2.1 instead of
5513         2.0, to resolve complaints about patent termination clause.
5514
5515 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5516
5517         * README: added documentation for the --enable-python 
5518         configure switch.
5519
5520 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5521
5522         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5523         _unref in the SELinux support.
5524
5525         * doc/busconfig.dtd: update DTD for SELinux support.
5526
5527         * bus/config-loader-libxml.c: fix error handler and parser
5528         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5529
5530         * configure.in: remove the warning about libxml2.
5531
5532         * dbus/dbus-bus.c: silence doxygen warning.
5533
5534 2004-07-31  Colin Walters  <walters@redhat.com>
5535
5536         * configure.in: Move #error in SELinux check to its own line.
5537
5538 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5539
5540         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5541         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5542         dbus_error_set.
5543
5544         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5545         broken by the change in the _SET_OOM macros.
5546
5547 2004-07-31  Colin Walters  <walters@redhat.com>
5548
5549         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5550         BUS_SET_OOM.
5551
5552 2004-07-31  Colin Walters  <walters@redhat.com>
5553
5554         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5555         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5556         AC_MSG_CHECKING.
5557
5558 2004-07-24  Havoc Pennington  <hp@redhat.com>
5559
5560         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5561
5562         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5563         functionality
5564
5565         * configure.in: add --enable-selinux
5566         
5567         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5568
5569         * bus/main.c (main): initialize and shut down selinux
5570
5571         * bus/connection.c: store SELinux ID on each connection, to avoid 
5572         repeated getting of the string context and converting it into 
5573         an ID
5574
5575         * bus/bus.c (bus_context_get_policy): new accessor, though it
5576         isn't used
5577         (bus_context_check_security_policy): check whether the security
5578         context of sender connection can send to the security context of
5579         recipient connection
5580
5581         * bus/config-parser.c: add parsing for <selinux> and <associate>
5582         
5583         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5584         implement dbus_connection_get_unix_fd()
5585
5586         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5587         function, used by the selinux stuff
5588         
5589 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5590
5591         * bus/config-loader-libxml.c: complete the implementation of
5592         libxml backend for config file loader. Doesn't work with full OOM
5593         test yet. 
5594         
5595         * configure.in: change error when selecting libxml into a warning.
5596         
5597         * test/data/invalid-config-files: add two non-well-formed XML
5598         files. 
5599         
5600         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5601         
5602         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5603         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5604         be necessary to read all the buffer. (bug #894)
5605
5606         * bus/activation.c (bus_activation_activate_service): fix a
5607         potential assertion failure (bug #896). Small optimization in the
5608         case of auto-activation messages.
5609
5610         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5611         add test case for byte-through-vararg bug (#901). patch by Kimmo
5612         Hämäläinen. 
5613
5614 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5615
5616         * python/dbus.py:
5617         * python/dbus_bindings.pyx.in:
5618         Add dbus.init_gthreads (), allow emit_signal to pass
5619         arguments to the signal.
5620         
5621 2004-07-24  Havoc Pennington  <hp@redhat.com>
5622
5623         * AUTHORS: add some people, not really comprehensively, let me
5624         know if I missed you
5625
5626 2004-07-24  Havoc Pennington  <hp@redhat.com>
5627
5628         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5629         Owen
5630
5631         * test/Makefile.am (DIST_SUBDIRS): here also
5632
5633 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5634
5635         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5636         breaking build on Solaris, reported by Farhad Saberi on the ML.
5637
5638         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5639         va_arg invocation to account for integer promotion in the case of
5640         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5641
5642         * bus/services.c (bus_service_remove_owner): fix bug #902, use
5643         _dbus_list_get_first_link, not _dbus_list_get_first.
5644
5645         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5646
5647         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5648         handler functions so that the asserts in _dbus_object_subtree_unref
5649         do not fail.
5650
5651         * dbus/dbus-transport-unix.c (do_reading):
5652         _dbus_transport_queue_messages return value is of type
5653         dbus_bool_t, not DBusDispatchStatus.
5654         
5655 2004-07-19  David Zeuthen  <david@fubar.dk>
5656
5657         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5658
5659         * bus/dispatch.c:
5660         (check_get_connection_unix_user): Debug says GetProperty; but the
5661         method is called GetConnectionUnixUser
5662         (check_get_connection_unix_process_id): New function
5663         (bus_dispatch_test): Actually call check_get_connection_unix_user();
5664         also call check_get_connection_unix_process_id()
5665         
5666         * bus/driver.c:
5667         (bus_driver_handle_get_connection_unix_process_id): New function,
5668         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5669         interface
5670         
5671         * dbus/dbus-auth.c:
5672         (handle_server_data_external_mech): Set pid from the credentials
5673         obtained from the socket
5674         
5675         * dbus/dbus-connection.c:
5676         (dbus_connection_get_unix_process_id): New function
5677         
5678         * dbus/dbus-connection.h: 
5679         Add prototype for dbus_connection_get_unix_process_id
5680         
5681         * dbus/dbus-transport.c:
5682         (_dbus_transport_get_unix_process_id): New function
5683         
5684         * dbus/dbus-transport.h:
5685         Add prototype for _dbus_transport_get_unix_process_id
5686         
5687 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5688
5689         * dbus/dbus-message.c: Message counter fix, patch by Christian
5690         Hammond <chipx86@gnupdate.org>
5691
5692 2004-07-18  Seth Nickell  <seth@gnome.org>
5693
5694         * python/dbus.py:
5695         * python/dbus_bindings.pyx.in:
5696         * python/tests/test-client.py:
5697
5698         Add dbus.ByteArray and dbus_bindings.ByteArray
5699         types so that byte streams can be passed back.
5700
5701         Give jdahlin the heaps of credit that are so
5702         rightfully his.
5703         
5704 2004-07-12  Seth Nickell  <seth@gnome.org>
5705
5706         * python/dbus.py:
5707
5708         Add message argument to the default object_method_handler
5709         function.
5710         
5711         * python/dbus_bindings.pyx.in:
5712
5713         Automatically return NIL when passed an empty list
5714         (we can't pass back a list since lists are typed
5715         and we don't have any idea what type the the client
5716         intended the list to be... :-( )
5717         
5718 2004-07-10  Seth Nickell  <seth@gnome.org>
5719
5720         * python/examples/Makefile.am:
5721
5722         Fix distcheck breakage caused by new examples.
5723
5724 2004-07-10  Seth Nickell  <seth@gnome.org>
5725
5726         * python/dbus.py:
5727
5728         Add "message" argument to service-side dbus.Object
5729         methods. This will break existing services written
5730         using the python bindings, but will allow extraction
5731         of all the message information (e.g. who its from).
5732
5733         Add improved "object oriented" signal handling/emission.
5734         
5735         * python/examples/example-service.py:
5736
5737         Nix this example.
5738         
5739         * python/examples/example-signal-emitter.py:
5740         * python/examples/example-signal-recipient.py:
5741
5742         Two new examples that show how to emit and receive
5743         signals using the new APIs.
5744         
5745         * python/examples/example-signals.py:
5746         * python/examples/gconf-proxy-service.py:
5747         * python/examples/gconf-proxy-service2.py:
5748
5749         Add "message" argument to service methods.
5750
5751 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
5752
5753         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5754         * dbus/bus.c (dbus_bus_get_unix_user)
5755         * doc/dbus-specification.xml: implement GetConnectionUnixUser
5756         method of org.freedesktop.DBus interface.
5757
5758         * bus/dispatch.c: test case
5759
5760 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
5761
5762         * python/Makefile.am: switched include directory from glib/ to dbus/
5763         since dbus-glib.h moved
5764  
5765 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5766
5767         * configure.in: prevent building the gcj stuff and libxml loader
5768         since they are broken.
5769
5770 2004-06-20  Havoc Pennington  <hp@redhat.com>
5771
5772         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
5773         codes from the dbus error names
5774         
5775         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
5776         as dbus/dbus-glib.h and that breakage is now visible due to 
5777         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5778         
5779         * glib/dbus-glib.h: s/gproxy/g_proxy/
5780
5781         * dbus/dbus-shared.h: new header to hold stuff shared with
5782         binding APIs
5783         
5784         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5785         than dbus-errors.h
5786
5787         * glib/dbus-glib.h (dbus_set_g_error): move to
5788         dbus-glib-lowlevel.h
5789
5790         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5791         of stuff to enable this
5792
5793         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5794
5795         * a bunch of other changes with the same basic "separate glib 
5796         bindings from dbus.h" theme
5797         
5798 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
5799
5800         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5801
5802         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5803
5804 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5805
5806         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5807         the reply value of the ServiceExists message.
5808
5809 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
5810
5811         * python/dbus_bindings.pyx.in: No longer need to parse path
5812         elements and pass them as arrays of strings.  The C API now
5813         accepts plain path strings.
5814         (_build_parsed_path): removed 
5815
5816 2004-06-07  Havoc Pennington  <hp@redhat.com>
5817
5818         * doc/TODO: remove auto-activation item since it's done; sort
5819         items by importance/milestone
5820
5821 2004-06-07  Havoc Pennington  <hp@redhat.com>
5822
5823         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5824         random signature when using REQUIRED_FIELDS (this hack won't work
5825         in the long term)
5826
5827         * dbus/dbus-message.c: change the signature to be a header field,
5828         instead of message->signature special-case string. Incremental
5829         step forward. Then we can fix up code to send the signature in the
5830         message, then fix up code to validate said signature, then fix up
5831         code to not put the typecodes inline, etc.
5832         (load_one_message): don't make up the signature after the fact
5833         (decode_header_data): require signature field for the known
5834         message types
5835
5836         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5837
5838         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5839
5840 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
5841
5842         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5843
5844         * mono/Handler.cs: Updated to follow new path argument for
5845         (un-)registering objects.
5846
5847         * mono/example/Makefile.am:
5848         * mono/Makefile.am:
5849         * configure.in: Bumped required version for mono and use new -pkg
5850         syntax for deps
5851
5852 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5853
5854         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5855         registration functions take the path argument as char* instead of
5856         char**.
5857
5858         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5859         split off the path decompostion part of
5860         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5861         warnings. 
5862
5863         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5864         
5865 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5866  
5867         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5868         machine approach.  A state is implemented as a function that
5869         handles incoming events as specified for that state.
5870         
5871         * doc/dbus-specification.xml: Update auth protocol state machine
5872         specification to match implementation.  Remove some leftover
5873         base64 examples.
5874
5875 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5876
5877         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5878         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5879         quiet doxygen.
5880
5881         * Doxyfile.in: remove deprecated options.
5882
5883         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5884         glib/test-thread.h, glib/test-thread-client.c,
5885         glib/test-thread-server.c, glib/test-profile.c,
5886         glib/test-dbus-glib.c: remove these unused files.
5887
5888 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5889
5890         * dbus/dbus-object-tree.c
5891         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5892         non-fallback handlers (bug #684).
5893         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5894         (find_subtree_recurse): report wether the returned subtree is an
5895         exact match or a "fallback" match higher up in the tree.
5896         (object_tree_test_iteration): update test case.
5897
5898 2004-06-01  Seth Nickell  <seth@gnome.org>
5899
5900         * python/dbus_bindings.pyx.in:
5901         * python/tests/test-client.py:
5902
5903         Round off basic type support. Add dicts (yay!), and 
5904         remaining array types.
5905
5906         Make MessageIter more general so it works for dicts too.
5907
5908         Mark all loop variables as C integers.
5909         
5910 2004-05-31  Havoc Pennington  <hp@redhat.com>
5911
5912         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
5913         "in" before "out"
5914
5915         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
5916
5917         * glib/dbus-glib-tool.c (main): set up to have a --self-test
5918         option that runs the tests, and start filling in some code
5919         including for starters just dumping the interfaces to stdout
5920
5921         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
5922
5923         * test/data/valid-introspection-files/lots-of-types.xml: test of
5924         an example introspection file
5925
5926         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
5927         "node" (I think...)
5928
5929 2004-05-31  Seth Nickell  <seth@gnome.org>
5930
5931         * python/dbus_bindings.pyx.in:
5932         * python/tests/test-client.py:
5933
5934         Test Suite: 1
5935         Python Bindings: 0
5936
5937         Fix string array memory trashing bug... oops...
5938
5939 2004-05-30  Seth Nickell  <seth@gnome.org>
5940
5941         * python/dbus.py:
5942
5943         Add a nicer-but-less-flexible alternate API for handling 
5944         calls to virtual objects in dbus.ObjectTree.
5945
5946         Screw up the argument order to the dbus.Object constructor
5947         for consistency with dbus.ObjectTree (and to make dbus_methods
5948         optional for future extension)
5949         
5950         * python/examples/Makefile.am:
5951         * python/examples/gconf-proxy-service.py:
5952         * python/examples/gconf-proxy-service2.py:
5953
5954         Alternate implementation of gconf-proxy-service using the
5955         nicer dbus.ObjectTree API.
5956         
5957         * python/examples/example-service.py:
5958         * python/tests/test-server.py
5959
5960         Reverse the argument order to deal with dbus.Object constructor
5961         changes.
5962         
5963 2004-05-30  Seth Nickell  <seth@gnome.org>
5964
5965         * python/examples/example-client.py:
5966         * python/examples/example-service.py:
5967
5968         Take it back. Lists seem to work but they're broken
5969         in the test suite. Make the base examples use
5970         lists (works fine).
5971
5972 2004-05-30  Seth Nickell  <seth@gnome.org>
5973
5974         * python/dbus_bindings.pyx.in:
5975         * python/tests/test-client.py:
5976
5977         Add some more tests and fix errors that crop up.
5978         Unfortunately, currently it seems like marshalling
5979         and unmarshalling of lists is completely broken :-(
5980
5981 2004-05-30  Seth Nickell  <seth@gnome.org>
5982
5983         * python/dbus_bindings.pyx.in:
5984
5985         Add support for ObjectPath type.
5986
5987         * python/dbus.py:
5988
5989         Refactor message handling code to a common function.
5990         
5991         * python/tests/test-client.py:
5992         * python/tests/test-server.py:
5993
5994         Add tests that check to make sure values of all types
5995         can be echoed from a service w/o mangling.
5996         
5997 2004-05-29  Seth Nickell  <seth@gnome.org>
5998
5999         * python/dbus.py:
6000
6001         Add ObjectTree class which allows implementation
6002         of trees of "virtual" objects. Basically the python
6003         wrapper for "register_fallback".
6004         
6005         * python/examples/Makefile.am
6006         * python/examples/gconf-proxy-client.py:
6007         * python/examples/gconf-proxy-service.py:
6008
6009         Implement a simple GConf proxy service that supports
6010         get/set on string and int GConf keys using the ObjectTree.
6011         
6012 2004-05-29  Seth Nickell  <seth@gnome.org>
6013
6014         * python/dbus.py:
6015         * python/examples/example-client.py:
6016         * python/examples/example-service.py:
6017         * python/examples/list-system-services.py:
6018
6019         Add SessionBus, SystemBus and ActivationBus classes
6020         so you don't need to know the special little BUS_TYPE
6021         flag.
6022         
6023 2004-05-29  Havoc Pennington  <hp@redhat.com>
6024
6025         * bus/config-parser.c (process_test_valid_subdir): temporarily
6026         stop testing config parser OOM handling, since expat has issues
6027         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6028
6029         * bus/dbus-daemon-1.1.in: change requested_reply to
6030         send_requested_reply/receive_requested_reply so we can send the
6031         replies, not just receive them.
6032
6033         * bus/config-parser.c: parse the new
6034         send_requested_reply/receive_requested_reply
6035
6036         * bus/policy.c (bus_client_policy_check_can_send): add
6037         requested_reply argument and use it
6038
6039         * bus/bus.c (bus_context_check_security_policy): pass through
6040         requested_reply status to message send check
6041
6042         * bus/system.conf.in: adapt to requested_reply change
6043         
6044 2004-05-28  Havoc Pennington  <hp@redhat.com>
6045
6046         * test/glib/test-service-glib.c (main): remove unused variable
6047
6048         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6049
6050         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6051         from the enum, no longer in use.
6052
6053         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6054         works right.
6055
6056         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6057         whether error_name passed in is a valid error name.
6058
6059 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6060
6061         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6062         OBJECT_PATH and OBJECT_PATH_ARRAY
6063
6064 2004-05-28  Seth Nickell  <seth@gnome.org>
6065
6066         * python/examples/Makefile.am:
6067
6068         Forget to add Makefile.am. Do not pass go.
6069
6070 2004-05-28  Michael Meeks  <michael@ximian.com>
6071
6072         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6073         fix no int64 case.
6074
6075         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6076
6077         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6078         (_dbus_message_iter_get_basic_type_array): impl.
6079         drastically simplify ~all relevant _get methods to use these.
6080         (_dbus_message_iter_append_basic_array),
6081         (dbus_message_iter_append_basic): impl
6082         drastically simplify ~all relevant _append methods to use these.
6083
6084         * dbus/dbus-message-builder.c (parse_basic_type) 
6085         (parse_basic_array, lookup_basic_type): impl.
6086         (_dbus_message_data_load): prune scads of duplicate /
6087         cut & paste coding.
6088
6089         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6090         (_dbus_demarshal_basic_type): implement,
6091         (demarshal_and_validate_len/arg): beef up debug.
6092         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6093
6094 2004-05-27  Seth Nickell  <seth@gnome.org>
6095
6096         * configure.in:
6097         * python/Makefile.am:
6098
6099         Include the example python apps in the tarball.
6100         
6101         * python/examples/list-system-services.py
6102
6103         Add a python new example that fetches the list of services
6104         from the system bus.
6105         
6106 2004-05-27  Seth Nickell  <seth@gnome.org>
6107
6108         * python/dbus.py:
6109         * python/dbus_bindings.pyx.in:
6110
6111         Fix failure to notify that a signal was not handled,
6112         resulted in hung functions.
6113         
6114 2004-05-25  Colin Walters  <walters@redhat.com>
6115
6116         * tools/dbus-monitor.c (main): Monitor all types of messages.
6117
6118 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6119
6120         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6121         which unregisters the object path and disposes the handler.
6122
6123 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6124  
6125         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6126          
6127         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6128         operands to && so we call dbus_message_iter_next () for the last
6129         argument also.
6130
6131 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6132
6133         * dbus/dbus-object-tree.c
6134         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6135         children even if the requested path isn't registered.
6136         (object_tree_test_iteration): test object_tree_list_registered.
6137
6138         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6139         it to 0.
6140         
6141 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6142
6143         * doc/TODO: Remove resolved items.
6144
6145         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6146         field.
6147         
6148         * bus/connection.c (bus_connections_expect_reply): Enforce the
6149         per-connection limit on pending replies.
6150         
6151         Patch from Jon Trowbridge <trow@ximian.com>:
6152  
6153         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6154         up a watch that triggers a config reload when one end of the pipe
6155         becomes readable.
6156         (signal_handler): Instead of doing the config reload in our SIGHUP
6157         handler, just write to the reload pipe and let the associated
6158         watch handle the reload when control returns to the main loop.
6159  
6160         * bus/driver.c (bus_driver_handle_reload_config): Added.
6161         Implements a ReloadConfig method for requesting a configuration
6162         file reload via the bus driver.
6163  
6164 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6165
6166         * HACKING: Updated release instructions concerning the wiki page.
6167
6168 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6169
6170         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6171         filter against auth->allowed_mechs; we only add allowed mechs in
6172         record_mechanisms().
6173  
6174         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6175         ALLOWED_MECHS to auth-script format so we can set the list of
6176         allowed mechanisms.
6177  
6178         * data/auth/client-out-of-mechanisms.auth-script: New test to
6179         check client disconnects when it is out of mechanisms to try.
6180  
6181         * dbus/dbus-auth.c (process_command): Remove check for lines
6182         longer that 1 MB; we only buffer up maximum 16 kB.
6183  
6184         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6185         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6186         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6187         assume there might be unused bytes.
6188  
6189         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6190         client-out-of-mechs, it is handled in process_reject(). Move check
6191         for max failures to send_rejected(), as it's a server-only thing.
6192
6193         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6194         send_auth(), send_data(), send_rejected(), send_error(),
6195         send_ok(), send_begin() and send_cancel().
6196
6197 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6198
6199         Remove base64 encoding, replace with hex encoding. Original patch
6200         from trow@ximian.com, added error handling.
6201
6202         * dbus/dbus-string.c (_dbus_string_base64_encode)
6203         (_dbus_string_base64_decode): Remove.
6204         (_dbus_string_hex_decode): Add end_return argument so we can
6205         distinguish between OOM and invalid hex encoding.
6206         (_dbus_string_test): Remove base64 tests and add test case for
6207         invalid hex.
6208
6209         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6210         Replace base64 with hex.
6211
6212         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6213         for invalid hex encoded data in auth protocol.
6214
6215 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6216
6217         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6218         leak.
6219
6220 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6221
6222         * mono/dbus-sharp.dll.config.in: Added for GAC
6223         * mono/dbus-sharp.snk: Added for GAC
6224         * mono/Assembly.cs.in: Added for GAC
6225         * mono/Makefile.am: Changes for GAC installation        
6226         * configure.in: Added refs for dbus-sharp.dll.config.in and
6227         Assembly.cs.in. More fixes for mono testing
6228         * mono/example/Makefile.am: Changed var to CSC
6229         * Makefile.am: Changed flag name to DBUS_USE_CSC
6230
6231 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6232
6233         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6234         * mono/doc/*: Added documentation framework
6235         * configure.in: Added monodoc check
6236         * README: Added description of mono configure flags
6237
6238 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6239
6240         * doc/dbus-specification.xml: Added a "Required" column to the 
6241         header fields table and changed the "zero or more" verbage in
6242         the above paragraph to read "The header must contain the required 
6243         named header fields and zero or more of the optional named header 
6244         fields".
6245         * test/data/invalid-messages/*.message: Added the required PATH 
6246         named header field to the tests so that they don't fail on 
6247         'Missing path field'
6248
6249 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6250
6251         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6252         the stack by implicitly defining variable and parameter types and
6253         removing the hack of defining C pointers as python objects and later
6254         casting them.
6255
6256 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6257
6258         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6259
6260 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6261
6262         * mono/DBusType/Dict.cs: Handle empty dicts
6263         * mono/DBusType/Array.cs: Handle empty arrays
6264         * mono/Arguments.cs: Handle empty arguments
6265
6266 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6267
6268         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6269         field
6270
6271 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6272
6273         * test/data/valid-messages/standard-*.message: Update message
6274         test scripts to new header field names.
6275
6276 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6277
6278         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6279         overflow to times_we_did_each_thing array which would chop off the
6280         first character of the failure_dir string. Increased the size of
6281         the array to 7 to reflect the number of random mutation functions
6282         we have.
6283
6284 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6285
6286         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6287         unix_server->watch here, it is unreffed in disconnect.
6288         (_dbus_server_new_for_tcp_socket): convert NULL host to
6289         "localhost" here so we don't append NULL to address.
6290         
6291         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6292         various addresses, including tcp with no explicit host.
6293
6294 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6295
6296         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6297         fix incorrect setting of .name_offset in the HeaderField (it was
6298         off by two bytes, positioned right after the name and typecode)
6299
6300         * bus/bus.c (bus_context_new, bus_context_unref): test before
6301         calling dbus_server_free_data_slot and _dbus_user_database_unref
6302         in case of an error.
6303
6304         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6305         by libdbus-gtool.
6306
6307 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6308
6309         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6310         _dbus_poll() instead of select().
6311
6312 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6313
6314         * bus/main.c (signal_handler): Reload the configuration files
6315         on SIGHUP.
6316         (main): Set up our SIGHUP handler.
6317
6318         * bus/bus.c (struct BusContext): Store the config file, user and
6319         fork flag in the BusContext.
6320         (process_config_first_time_only): Added.  Contains the code
6321         (previously in bus_context_new) for setting up the BusContext from
6322         the BusConfigParser that should only be run the first time the
6323         config files are read.
6324         (process_config_every_time): Added.  Contains the code (previously
6325         in bus_context_new) for setting up the BusContext from the
6326         BusConfigParser that should be run every time the config files are
6327         read.
6328         (load_config): Added.  Builds a BusConfigParser from the config
6329         files and passes the resulting structure off to
6330         process_config_first_time_only (assuming this is the first time)
6331         and process_config_every_time.
6332         (bus_context_new): All of the config-related code has been moved
6333         to process_config_first_time_only and process_config_every_time.
6334         Now this function just does the non-config-related initializations
6335         and calls load_config.
6336         (bus_context_reload_config): Added.
6337
6338 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6339
6340         * bus/driver.c (bus_driver_handle_get_service_owner):
6341         implement a GetServiceOwner method.
6342         * doc/dbus-specification.xml: document it.
6343         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6344         
6345         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6346         implement, using the bus GetServiceOwner method.
6347
6348         * test/glib/test-dbus-glib.c:
6349         use dbus_gproxy_new_for_service_owner so that we can receive the
6350         signal. 
6351
6352 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6353
6354         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6355         dbus/dbus-message.c, dbus/dbus-protocol.h
6356         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6357
6358         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6359         dbus/dbus-message.c, dbus/dbus-protocol.h
6360         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6361
6362         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6363         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6364         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6365
6366         * doc/dbus-specification.xml (Header Fields Table):
6367         s/SERVICE/DESTINATION
6368         s/SENDER_SERVICE/SENDER
6369
6370
6371 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6372
6373         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6374         a few seconds.
6375
6376 2004-04-13  Michael Meeks  <michael@ximian.com>
6377
6378         * glib/dbus-gobject.c (handle_introspect): split out
6379         (introspect_properties): this.
6380         (handle_introspect): implement this.
6381
6382         * test/glib/Makefile.am: use the absolute path so the bus
6383         daemon's chdir ("/") doesn't kill us dead.
6384
6385         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6386
6387 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6388
6389         * bus/config-parser.c (struct BusConfigParser): Added
6390         included_files field.
6391         (seen_include): Added.  Checks whether or not a file has already
6392         been included by any parent BusConfigParser.
6393         (bus_config_parser_new): Copy the parent's included_files.
6394         (include_file): Track which files have been included, and fail on
6395         circular inclusions.
6396         (process_test_valid_subdir): Changed printf to report if we are
6397         testing valid or invalid conf files.
6398         (all_are_equiv): Changed printf to be a bit clearer about
6399         what we are actually doing.
6400         (bus_config_parser_test): Test invalid configuration files.
6401
6402 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6403
6404         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6405         argument.  If non-null, the newly-constructed BusConfigParser will
6406         be initialized with the parent's BusLimits instead of the default
6407         values.
6408         (include_file): When including a config file, pass in
6409         the current parser as the parent and then copy the BusLimits
6410         from the included BusConfigParser pack to the current parser.
6411         (process_test_valid_subdir): Renamed from process_test_subdir.
6412         (process_test_equiv_subdir): Added.  Walks through a directory,
6413         descending into each subdirectory and loading the config files
6414         it finds there.  If any subdirectory contains two config files
6415         that don't produce identical BusConfigParser structs, fail.
6416         For now, the BusConfigParser's BusPolicies are not compared.
6417         (bus_config_parser_test): Call both process_test_valid_subdir and
6418         process_test_equiv_subdir.
6419
6420         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6421         argument and pass it along to the call to bus_config_parser_new.
6422         Also made a few small changes to allow this code to compile.
6423
6424         * bus/config-loader-expat.c (bus_config_load): Take a parent
6425         argument and pass it along to the call to bus_config_parser_new.
6426
6427         * bus/bus.c (bus_context_new): Load the config file
6428         with a NULL parent argument.
6429
6430 2004-03-29  Michael Meeks  <michael@ximian.com>
6431
6432         * glib/dbus-gobject.c (introspect_properties): split
6433         out, fix mangled 'while' flow control.
6434         (introspect_signals): implement.
6435         (handle_introspect): update.
6436
6437 2004-03-29  Michael Meeks  <michael@ximian.com>
6438
6439         * glib/dbus-gobject.c (set_object_property): split out / 
6440         re-work, use the property type, and not the message type(!)
6441         (get_object_property): ditto.
6442
6443         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6444         (dbus_gvalue_marshal): make this code re-usable, needed
6445         for signals too, also on both proxy and server side.
6446         Re-write for more efficiency / readability.
6447
6448 2004-03-29  Michael Meeks  <michael@ximian.com>
6449
6450         * dbus/dbus-message.c
6451         (dbus_message_new_error_printf): impl.
6452
6453         * dbus/dbus-connection.c
6454         (dbus_connection_unregister_object_path): fix warning.
6455
6456         * configure.in: fix no-mono-installed situation.
6457
6458 2004-03-27  Havoc Pennington  <hp@redhat.com>
6459
6460         Patch from Timo Teräs:
6461         
6462         * tools/dbus-send.c (main): if --print-reply, assume type is
6463         method call; support boolean type args
6464         
6465         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6466         bunch of memleak and logic bugs
6467         
6468 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6469
6470         * mono/Arguments.cs:
6471         * mono/Introspector.cs:
6472         * mono/Handler.cs:
6473         * mono/InterfaceProxy.cs:
6474         * mono/Message.cs
6475         * mono/ProxyBuilder.cs:
6476         * mono/Service.cs:
6477         Added InterfaceProxy class to avoid building proxies for every
6478         object.
6479
6480         * dbus-message.h:
6481         * dbus-message.c (dbus_message_append_args_valist)
6482         (dbus_message_iter_get_object_path)
6483         (dbus_message_iter_get_object_path_array)
6484         (dbus_message_iter_append_object_path)
6485         (dbus_message_iter_append_object_path_array):
6486         Added object_path iter functions to handle OBJECT_PATH arguments
6487         
6488 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6489
6490         First checkin of mono bindings.
6491         * configure.in:
6492         * Makefile.am:
6493         Build stuff for the bindings
6494         * dbus-sharp.pc.in: Added for pkgconfig
6495         
6496 2004-03-21  Havoc Pennington  <hp@redhat.com>
6497
6498         * test/test-service.c (main): remove debug spew
6499
6500 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6501
6502         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6503         arrays
6504
6505         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6506         (dbus_message_iter_init_array_iterator)
6507         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6508         indicate whether the iterator is empty
6509
6510         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6511         warnings
6512
6513 2004-03-19  Havoc Pennington  <hp@redhat.com>
6514
6515         * NEWS: 0.21 updates
6516
6517         * configure.in: 0.21
6518
6519         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6520         
6521         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6522         you don't need pyrex to make dist
6523
6524         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6525         sources; run moc
6526         
6527 2004-03-18  Richard Hult  <richard@imendio.com>
6528
6529         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6530         (dbus_message_set_auto_activation): Add doxygen docs.
6531
6532 2004-03-16  Richard Hult  <richard@imendio.com>
6533
6534         * bus/activation.c: (bus_activation_service_created),
6535         (bus_activation_send_pending_auto_activation_messages),
6536         (bus_activation_activate_service):
6537         * bus/activation.h:
6538         * bus/dispatch.c: (bus_dispatch),
6539         (check_nonexistent_service_auto_activation),
6540         (check_service_auto_activated),
6541         (check_segfault_service_auto_activation),
6542         (check_existent_service_auto_activation), (bus_dispatch_test):
6543         * bus/driver.c: (bus_driver_handle_activate_service):
6544         * bus/services.c: (bus_registry_acquire_service):
6545         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6546         (dbus_message_get_auto_activation):
6547         * dbus/dbus-message.h:
6548         * dbus/dbus-protocol.h: Implement auto-activation.
6549         
6550         * doc/dbus-specification.xml: Add auto-activation to the spec.
6551
6552 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6553
6554         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6555         fix a bug with CUSTOM types.
6556
6557         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6558         a unit test for this bug (used to fail).
6559
6560 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6561
6562         * bus/activation.c:
6563         (babysitter_watch_callback): notify all pending activations waiting for
6564           the same exec that the activation failed.
6565         (bus_activation_activate_service): shortcut the activation if we 
6566           already waiting for the same executable to start up.
6567
6568 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6569
6570         * bus/activation.c: 
6571         - Added service file reloading. 
6572           Each service files directory is kept in an hash table in 
6573           BusActivation and each BusActivationEntry knows what .service-file it
6574           was read from. So when you try to activate a service the bus will 
6575           check if it's been updated, removed or if new .service-files has 
6576           been installed.
6577         - Test code at the bottom for the service file reloading.
6578         * bus/test-main.c: (main):
6579         * bus/test.h:
6580         - added service reloading test.
6581         * dbus/dbus-sysdeps.c: 
6582         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6583
6584 2004-03-08  Michael Meeks  <michael@ximian.com>
6585
6586         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6587         bail immediately if disconnected, to avoid busy loop.
6588
6589         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6590         cleanup cut/paste/inefficiency.
6591
6592 2004-03-01  David Zeuthen  <david@fubar.dk>
6593
6594         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6595         bug where args were used twice. This bug resulted in a segfault
6596         on a Debian/PPC system when starting the messagebus daemon. Include
6597         dbus-sysdeps.h for DBUS_VA_COPY
6598
6599         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6600
6601         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6602         appropriate va_copy implementation. From GLib
6603         
6604 2004-02-24  Joe Shaw  <joe@ximian.com>
6605
6606         * bus/services.c (bus_registry_acquire_service): We need to pass
6607         in the service name to dbus_set_error() to prevent a crash.
6608
6609 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6610
6611         * AUTHORS: Reveal my True identity.
6612
6613 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6614
6615         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6616         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6617
6618 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6619
6620         * doc/TODO: Added not about better error check of configuration files.
6621
6622 2003-12-02  Richard Hult  <richard@imendio.com>
6623
6624         * Update AFL version to 2.0 throughout the source files to reflect
6625         the update that was done a while ago.
6626
6627 2003-12-02  Richard Hult  <richard@imendio.com>
6628
6629         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6630         wrote_dict_key to FALSE on the iter that the dict is appended to,
6631         just like when appending other types. Fixes a bug where a dict
6632         couldn't be put inside a dict.
6633         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6634         (message_iter_test, _dbus_message_test): Add test case for dict
6635         inside dict.
6636
6637 2003-12-01  David Zeuthen  <david@fubar.dk>
6638
6639         * python/dbus.py: Add the actual message when calling the reciever
6640         of a signal such that parameters can be inspected. Add the method
6641         remove_signal_receiver
6642         
6643 2003-11-26  Mikael Hallendal  <micke@imendio.com>
6644
6645         * bus/*.[ch]:
6646         * dbus/*.[ch]:
6647         * glib/*.[ch]: Made ref functions return the pointer
6648
6649 2003-11-25  Zack Rusin  <zack@kde.org>
6650
6651         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6652
6653         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
6654         wrappers,
6655
6656         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
6657         the Integrator and to better fit with the server,
6658
6659 2003-11-24  Zack Rusin  <zack@kde.org>
6660
6661         * qt/connection.h, qt/connection.cpp: removing initDbus method since
6662         the integrator handles it now
6663
6664         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6665         since QTimer wasn't really meant to be used the way DBusTimeout is
6666
6667 2003-11-24  Zack Rusin  <zack@kde.org>
6668
6669         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
6670         Integrator class which integrates D-BUS with the Qt event loop,
6671
6672         * qt/connection.h, qt/connection.cpp: Move all the code which
6673         was dealing with D-BUS integration to the Integrator class,
6674         and start using Integrator,
6675
6676 2003-11-23  Zack Rusin  <zack@kde.org>
6677
6678         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
6679         wrapper
6680
6681         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6682         switching namespaces to DBusQt, reworking the class,
6683
6684         * Makefile.cvs: switching dependencies so that it matches KDE 
6685         schematics,
6686         
6687         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
6688         the library
6689
6690 2003-11-19  Havoc Pennington  <hp@redhat.com>
6691
6692         * NEWS: update
6693
6694         * configure.in: bump version to 0.20
6695
6696         * configure.in (have_qt): add yet another place to look for qt
6697         (someone hand trolltech a .pc file...)
6698
6699 2003-11-01  Havoc Pennington  <hp@redhat.com>
6700
6701         * doc/dbus-specification.xml: add state machine docs on the auth
6702         protocol; just a first draft, I'm sure it's wrong.      
6703
6704 2003-10-28  David Zeuthen  <david@fubar.dk>
6705
6706         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6707         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6708         
6709 2003-10-28  Havoc Pennington  <hp@redhat.com>
6710
6711         * dbus/dbus-message.c (get_next_field): delete unused function
6712
6713 2003-10-28  Havoc Pennington  <hp@redhat.com>
6714
6715         * bus/expirelist.c (do_expiration_with_current_time): detect
6716         failure of the expire_func due to OOM
6717
6718         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6719
6720         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6721         NoReply error that's now created by the bus when the service exits
6722
6723 2003-10-28  Havoc Pennington  <hp@redhat.com>
6724
6725         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6726         tests for set_path, set_interface, set_member, etc.
6727
6728         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6729
6730         * dbus/dbus-message.c (set_string_field): always just delete and
6731         re-append the field; accept NULL for deletion
6732         (re_align_fields_recurse): reimplement
6733         
6734 2003-10-26  Havoc Pennington  <hp@redhat.com>
6735
6736         * dbus/dbus-connection.c: fix docs to properly describe the
6737         disconnected message
6738         (_dbus_connection_notify_disconnected): remove this function; 
6739         we can't synchronously add the disconnected message, we have to 
6740         do it after we've queued any remaining real messages
6741         (_dbus_connection_get_dispatch_status_unlocked): queue the
6742         disconnect message only if the transport has finished queueing all
6743         its real messages and is disconnected.
6744         (dbus_connection_disconnect): update the dispatch status here
6745
6746 2003-10-22  Havoc Pennington  <hp@redhat.com>
6747
6748         * bus/bus.c (bus_context_check_security_policy): fix up assertion
6749
6750         * bus/connection.c (bus_transaction_send_from_driver): set the
6751         destination to the connection's base service
6752
6753 2003-10-20  Havoc Pennington  <hp@redhat.com>
6754
6755         hmm, make check is currently not passing.
6756         
6757         * doc/dbus-specification.xml: add requirement that custom type
6758         names follow the same rules as interface names.
6759
6760         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6761         duplication and allow 'c' to be 'custom'; dict is now 'm' for
6762         'map'
6763
6764         * doc/dbus-specification.xml: update type codes to match
6765         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6766         CUSTOM. Add type OBJECT_PATH to the spec.
6767
6768 2003-10-17  Havoc Pennington  <hp@redhat.com>
6769
6770         * bus/driver.c (create_unique_client_name): use "." as separator
6771         in base service names instead of '-'
6772
6773         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6774         byte at the end of the string
6775
6776         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6777         optimization macros since string validation seems to be a slow
6778         point.
6779         
6780         * doc/dbus-specification.xml: restrict valid
6781         service/interface/member/error names. Add test suite code for the
6782         name validation.
6783
6784         * dbus/dbus-string.c: limit service/interface/member/error names 
6785         to [0-9][A-Z][a-z]_
6786
6787         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6788         format arg to verbose spew
6789
6790         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6791         memory, return instead of g_error
6792
6793         * test/test-service.c (path_message_func): support emitting a
6794         signal on request
6795
6796         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6797         activation bus type if DBUS_BUS_ACTIVATION was set; default to
6798         assuming the activation bus was the session bus so that services
6799         started manually will still register.
6800         (init_connections_unlocked): fix so that in OOM situation we get
6801         the same semantics when retrying the function
6802         
6803         * test/test-service.c (main): change to use path registration, to
6804         test those codepaths; register with DBUS_BUS_ACTIVATION rather
6805         than DBUS_BUS_SESSION
6806
6807 2003-10-16  Havoc Pennington  <hp@redhat.com>
6808
6809         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6810
6811         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6812         coverage of the tests
6813         (coverage-report.txt): don't move the .da and .bbg files around
6814
6815 2003-10-16  Havoc Pennington  <hp@redhat.com>
6816
6817         * bus/bus.c (struct BusContext): remove struct field I didn't mean
6818         to put there
6819
6820 2003-10-16  Havoc Pennington  <hp@redhat.com>
6821
6822         * bus/connection.c (bus_pending_reply_expired): either cancel or
6823         execute, not both
6824         (bus_connections_check_reply): use unlink, not remove_link, as we
6825         don't want to free the link; fixes double free mess
6826
6827         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6828         where no reply was received
6829
6830         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6831         fix a refcount leak
6832
6833         * bus/signals.c (match_rule_matches): add special cases for the
6834         bus driver, so you can match on sender/destination for it.
6835
6836         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6837         DBUS_PRINT_BACKTRACE is set
6838
6839         * dbus/dbus-internals.c: add pid to assertion failure messages
6840
6841         * dbus/dbus-connection.c: add message type code to the debug spew
6842
6843         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6844         sender=foo not service=foo
6845
6846         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6847         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
6848         DBUS_ACTIVATION_ADDRESS instead
6849
6850         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6851         DBUS_SYSTEM_BUS_ADDRESS if appropriate
6852
6853         * bus/bus.c (bus_context_new): handle OOM copying bus type into
6854         context struct
6855
6856         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6857         (dbus_message_iter_get_object_path_array): new function (half
6858         finished, disabled for the moment)
6859         
6860         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6861         DBUS_MESSAGE_TYPE_ERROR
6862
6863         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6864         avoid redirecting stderr to /dev/null
6865         (babysit): close stdin if not doing the "exit_with_session" thing
6866
6867         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6868         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6869         stdout/stdin, so things don't get confused
6870         
6871         * bus/system.conf.in: fix to allow replies, I modified .conf
6872         instead of .conf.in again.
6873
6874 2003-10-14  David Zeuthen  <david@fubar.dk>
6875
6876         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6877         argtype to arg_type when raising unknown arg type exception.
6878         Changed type list to reflect the changes in dbus-protocol.h so 
6879         the bindings actually work.
6880
6881 2003-10-14  Havoc Pennington  <hp@redhat.com>
6882
6883         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6884         to have a bug keeping it from outputting the .da files sometimes
6885         (string_get_string): don't append garbage nul bytes to the string.
6886
6887 2003-10-15  Seth Nickell  <seth@gnome.org>
6888
6889         * python/Makefile.am:
6890
6891         Include dbus_h_wrapper.h in the dist tarball.
6892
6893 2003-10-14  Havoc Pennington  <hp@redhat.com>
6894
6895         * bus/bus.c (bus_context_check_security_policy): revamp this to
6896         work more sanely with new policy-based requested reply setup
6897
6898         * bus/connection.c (bus_transaction_send_from_driver): set bus
6899         driver messages as no reply
6900
6901         * bus/policy.c (bus_client_policy_check_can_receive): handle a
6902         requested_reply attribute on allow/deny rules
6903
6904         * bus/system.conf: add <allow requested_reply="true"/>
6905
6906         * bus/driver.c (bus_driver_handle_message): fix check for replies
6907         sent to the bus driver, which was backward. How did this ever work
6908         at all though? I think I'm missing something.
6909
6910         * dbus/dbus-message.c (decode_header_data): require error and
6911         method return messages to have a reply serial field to be valid
6912         (_dbus_message_loader_queue_messages): break up this function;
6913         validate that reply serial and plain serial are nonzero; 
6914         clean up the OOM/error handling.
6915         (get_uint_field): don't return -1 from this
6916         (dbus_message_create_header): fix signed/unsigned bug
6917
6918         * bus/connection.c (bus_connections_expect_reply): save serial of
6919         the incoming message, not reply serial
6920
6921 2003-10-14  Havoc Pennington  <hp@redhat.com>
6922
6923         * bus/connection.c: implement pending reply tracking using
6924         BusExpireList
6925
6926         * bus/bus.c (bus_context_check_security_policy): verify that a
6927         reply is pending in order to allow a reply to be sent. Deny 
6928         messages of unknown type.
6929
6930         * bus/dbus-daemon-1.1.in: update to mention new resource limits
6931
6932         * bus/bus.c (bus_context_get_max_replies_per_connection): new
6933         (bus_context_get_reply_timeout): new
6934
6935 2003-10-13  Seth Nickell  <seth@gnome.org>
6936
6937         * python/Makefile.am:
6938
6939         Pass "make distcheck": remove a couple files from DIST_FILES
6940         that weren't included in the final version.
6941
6942 2003-10-12  Havoc Pennington  <hp@pobox.com>
6943
6944         Added test code that 1) starts an actual bus daemon and 2) uses
6945         DBusGProxy; fixed bugs that were revealed by the test. Lots 
6946         more testing possible, but this is the basic framework.
6947         
6948         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
6949         empty proxy lists from the proxy list hash
6950
6951         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
6952         couple of return_if_fail checks
6953
6954         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
6955         to allocate, so everything is cleared to NULL as it should be.
6956
6957         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
6958         source as data to dbus_connection_set_timeout_functions() as the 
6959         timeout functions expected
6960
6961         * test/glib/run-test.sh: add a little script to start up a message
6962         bus and run tests using it
6963
6964         * tools/dbus-launch.1: updates
6965
6966         * tools/dbus-launch.c (main): add --config-file option
6967
6968         * tools/dbus-launch.c (main): remove confusing else if (runprog)
6969         that could never be reached.
6970
6971         * dbus/dbus-message.c (dbus_message_new_method_return) 
6972         (dbus_message_new_error, dbus_message_new_signal): set the
6973         no-reply-expected flag on all these. Redundant, but may
6974         as well be consistent.
6975
6976 2003-10-11  Havoc Pennington  <hp@pobox.com>
6977
6978         * test/decode-gcov.c (function_solve_graph): make broken block
6979         graph a nonfatal error since it seems to be broken. Need to debug
6980         this.
6981
6982         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
6983         can't just check type > INVALID < LAST anymore
6984
6985         * dbus/dbus-message.c (dbus_message_get_signature): new function
6986         (dbus_message_has_signature): new function
6987         (struct DBusMessage): add signature field (right now it isn't sent
6988         over the wire, just generated on the fly)
6989         (dbus_message_copy): copy the signature, and init strings to
6990         proper length to avoid some reallocs
6991         (dbus_message_iter_init_array_iterator): return void, since it
6992         can't fail
6993         (dbus_message_iter_init_dict_iterator): return void since it can't fail
6994         (_dbus_message_loader_queue_messages): add silly temporary hack to
6995         fill in message->signature on load
6996
6997         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
6998         characters, so they are relatively human-readable.
6999
7000 2003-10-11  Havoc Pennington  <hp@pobox.com>
7001
7002         * dbus/dbus-message.c (_dbus_message_test): add more test
7003         coverage, but #if 0 for now since they uncover a bug 
7004         not fixed yet; I think in re_align_field_recurse()
7005         (re_align_field_recurse): add FIXME about broken assertion
7006
7007         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7008
7009         * bus/connection.c: share a couple code bits with expirelist.c
7010
7011         * bus/expirelist.h, bus/expirelist.c: implement a generic
7012         expire-items-after-N-seconds facility, was going to share between
7013         expiring connections and replies, decided not to use for expiring
7014         connections for now.
7015
7016         * COPYING: include AFL 2.0 (still need to change all the file headers)
7017
7018 2003-10-09  Havoc Pennington  <hp@redhat.com>
7019
7020         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7021         gcc 3.3. Not that we do anything about it yet.
7022
7023         * bus/signals.c (bus_match_rule_parse): impose max length on the
7024         match rule text
7025
7026         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7027
7028 2003-10-09  Havoc Pennington  <hp@redhat.com>
7029
7030         Make matching rules theoretically work (add parser).
7031         
7032         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7033         the case where destination is explicitly specified as bus driver
7034         and someone else is eavesdropping.
7035         
7036         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7037         definition of eavesdropping and assertion
7038
7039         * tools/dbus-send.c (main): use dbus_message_type_from_string
7040
7041         * bus/signals.c (bus_match_rule_parse): implement
7042
7043         * dbus/dbus-message.c (dbus_message_type_from_string): new
7044
7045         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7046
7047 2003-10-02  Havoc Pennington  <hp@pobox.com>
7048
7049         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7050         dbus_gproxy_oneway_call
7051
7052         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7053         (dbus_server_setup_with_g_main): fix to allow calling them more
7054         than once on the same args
7055         (dbus_bus_get_with_g_main): new function
7056
7057 2003-10-02  Havoc Pennington  <hp@redhat.com>
7058
7059         * doc/dbus-tutorial.xml: write some stuff
7060
7061 2003-09-29  Havoc Pennington  <hp@pobox.com>
7062
7063         * configure.in: split checks for Doxygen from XML docs, check for
7064         xmlto
7065
7066         * doc/Makefile.am: XML-ify all the docs, and add a blank
7067         dbus-tutorial.xml
7068
7069 2003-09-29  Havoc Pennington  <hp@pobox.com>
7070
7071         * Merge dbus-object-names branch. To see the entire patch 
7072         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7073         it's huuuuge though.
7074         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7075         
7076 2003-09-28  Havoc Pennington  <hp@pobox.com>
7077
7078         * HACKING: update to reflect new server
7079
7080 2003-09-26  Seth Nickell  <seth@gnome.org>
7081
7082         * python/dbus.py:
7083         * python/examples/example-signals.py:
7084
7085         Start implementing some notions of signals. The API
7086         is really terrible, but they sort of work (with the
7087         exception of being able to filter by service, and to
7088         transmit signals *as* a particular service). Need to
7089         figure out how to make messages come from the service
7090         we registered :-(
7091         
7092         * python/dbus_bindings.pyx.in:
7093
7094         Removed duplicate message_handler callbacks.
7095         
7096 2003-09-25  Havoc Pennington  <hp@redhat.com>
7097
7098         * bus/session.conf.in: fix my mess
7099
7100 2003-09-25  Havoc Pennington  <hp@pobox.com>
7101
7102         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7103
7104 2003-09-25  Seth Nickell  <seth@gnome.org>
7105
7106         * python/examples/example-service.py:
7107
7108         Johan notices complete wrong code in example-service, but
7109         completely wrong in a way that works exactly the same (!).
7110         Johan is confused, how could this possibly work? Example
7111         code fails to serve purpose of making things clear.
7112         Seth fixes.
7113
7114 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7115
7116         * doc/dbus-specification.sgml: don't require header fields
7117         to be 4-byte aligned and specify that fields should be
7118         distinguished from padding by the fact that zero is not
7119         a valid field name.
7120         
7121         * doc/TODO: remove re-alignment item and add item to doc
7122         the OBJECT_PATH type.
7123         
7124         * dbus/dbus-message.c:
7125         (HeaderField): rename the original member to value_offset
7126         and introduce a name_offset member to keep track of where
7127         the field actually begins.
7128         (adjust_field_offsets): remove.
7129         (append_int_field), (append_uint_field),
7130         (append_string_field): don't align the start of the header
7131         field to a 4-byte boundary.
7132         (get_next_field): impl finding the next marhsalled field
7133         after a given field.
7134         (re_align_field_recurse): impl re-aligning a number of
7135         already marshalled fields.
7136         (delete_field): impl deleting a field of any type and
7137         re-aligning any following fields.
7138         (delete_int_or_uint_field), (delete_string_field): remove.
7139         (set_int_field), (set_uint_field): no need to re-check
7140         that we have the correct type for the field.
7141         (set_string_field): ditto and impl re-aligning any
7142         following fields.
7143         (decode_header_data): update to take into account that
7144         the fields aren't 4-byte aligned any more and the new
7145         way to distinguish padding from header fields. Also,
7146         don't exit when there is too much header padding.
7147         (process_test_subdir): print the directory.
7148         (_dbus_message_test): add test to make sure a following
7149         field is re-aligned correctly after field deletion.
7150         
7151         * dbus/dbus-string.[ch]:
7152         (_dbus_string_insert_bytes): rename from insert_byte and
7153         allow the insert of multiple bytes.
7154         (_dbus_string_test): test inserting multiple bytes.
7155
7156         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7157         warning note to docs about having to re-align any
7158         marshalled values following the string.
7159         
7160         * dbus/dbus-message-builder.c:
7161         (append_string_field), (_dbus_message_data_load):
7162         don't align the header field.
7163         
7164         * dbus/dbus-auth.c: (process_test_subdir): print the
7165         directory.
7166         
7167         * test/break-loader.c: (randomly_add_one_byte): upd. for
7168         insert_byte change.
7169         
7170         * test/data/invalid-messages/bad-header-field-alignment.message:
7171         new test case.
7172         
7173         * test/data/valid-messages/unknown-header-field.message: shove
7174         a dict in the unknown field.
7175
7176 2003-09-25  Seth Nickell  <seth@gnome.org>
7177
7178         * python/dbus.py:
7179         * python/dbus_bindings.pyx.in:
7180
7181         Handle return values.
7182         
7183         * python/examples/example-client.py:
7184         * python/examples/example-service.py:
7185
7186         Pass back return values from the service to the client.
7187         
7188 2003-09-24  Seth Nickell  <seth@gnome.org>
7189
7190         * python/dbus.py:
7191
7192         Connect Object methods (when you are sharing an object) up... pass
7193         in a list of methods to be shared. Sharing all the methods just
7194         worked out too weird. You can now create nice Services over the
7195         DBus in Python. :-)
7196         
7197         * python/dbus_bindings.pyx.in:
7198
7199         Keep references to user_data tuples passed into C functions so 
7200         Python doesn't garbage collect on us.
7201
7202         Implement MethodReturn and Error subclasses of Message for creating
7203         DBusMessage's of those types.
7204         
7205         * python/examples/example-client.py:
7206         * python/examples/example-service.py:
7207
7208         Simple example code showing both how create DBus services and objects,
7209         and how to use them.
7210
7211 2003-09-23  Havoc Pennington  <hp@pobox.com>
7212
7213         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7214
7215 2003-09-23  Havoc Pennington  <hp@redhat.com>
7216
7217         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7218         (dbus_gproxy_disconnect_signal): implement
7219         (dbus_gproxy_manager_remove_signal_match): implement
7220         (dbus_gproxy_manager_add_signal_match): implement
7221         (dbus_gproxy_oneway_call): implement
7222
7223 2003-09-23  Havoc Pennington  <hp@pobox.com>
7224
7225         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7226         subclass. This means dropping the transparent thread safety of the
7227         proxy; you now need a separate proxy per-thread, or your own
7228         locking on the proxy. Probably right anyway.
7229         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7230
7231 2003-09-22  Havoc Pennington  <hp@redhat.com>
7232
7233         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7234
7235 2003-09-21  Seth Nickell  <seth@gnome.org>
7236
7237         First checkin of the Python bindings.
7238         
7239         * python/.cvsignore:
7240         * python/Makefile.am:
7241         * python/dbus_bindings.pyx.in:
7242         * python/dbus_h_wrapper.h:
7243
7244         Pieces for Pyrex to operate on, building a dbus_bindings.so
7245         python module for low-level access to the DBus APIs.
7246         
7247         * python/dbus.py:
7248
7249         High-level Python module for accessing DBus objects.
7250
7251         * configure.in:
7252         * Makefile.am:
7253
7254         Build stuff for the python bindings.
7255
7256         * acinclude.m4:
7257
7258         Extra macro needed for finding the Python C header files.
7259
7260 2003-09-21  Havoc Pennington  <hp@pobox.com>
7261
7262         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7263         implementing the proxy manager, didn't get very far.
7264
7265         * dbus/dbus-bus.c (dbus_bus_add_match): new
7266         (dbus_bus_remove_match): new
7267
7268         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7269         path_name argument; adjust the other not-yet-implemented 
7270         gproxy constructors to be what I think they should be.
7271
7272 2003-09-21  Havoc Pennington  <hp@pobox.com>
7273
7274         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7275         by default for message bus connections.
7276
7277         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7278         exit_on_disconnect flag is set and we process the disconnected
7279         signal.
7280         (dbus_connection_set_exit_on_disconnect): new function
7281
7282 2003-09-21  Havoc Pennington  <hp@pobox.com>
7283
7284         Get matching rules mostly working in the bus; only actually
7285         parsing the rule text remains. However, the client side of
7286         "signal connections" hasn't been started, this patch is only the
7287         bus side.
7288         
7289         * dbus/dispatch.c: fix for the matching rules changes
7290         
7291         * bus/driver.c (bus_driver_handle_remove_match)
7292         (bus_driver_handle_add_match): send an ack reply from these
7293         method calls
7294
7295         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7296         arguments, reported by Seth Nickell
7297
7298         * bus/config-parser.c (append_rule_from_element): support
7299         eavesdrop=true|false attribute on policies so match rules 
7300         can be prevented from snooping on the system bus.
7301
7302         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7303         and "destination" in attribute names; fix some docs bugs; 
7304         add eavesdrop=true|false attribute
7305
7306         * bus/driver.c (bus_driver_handle_add_match)
7307         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7308         messages
7309
7310         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7311         rid of broadcast service concept, signals are just always broadcast
7312
7313         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7314         mostly implement matching rules stuff (currently only exposed as signal
7315         connections)
7316
7317 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7318
7319         * doc/dbus-specification.sgml: Change the header field name
7320         to be an enum and update the rest of the spec to reference
7321         the fields using the conventinal name.
7322
7323         * dbus/dbus-protocol.h: update to reflect the spec.
7324
7325         * doc/TODO: add item to remove the 4 byte alignment requirement.
7326         
7327         * dbus/dbus-message.c: Remove the code to generalise the
7328         header/body length and serial number header fields as named
7329         header fields so we can reference field names using the 
7330         protocol values.
7331         (append_int_field), (append_uint_field), (append_string_field):
7332         Append the field name as a byte rather than four chars.
7333         (delete_int_or_uint_field), (delete_string_field): reflect the
7334         fact that the field name and typecode now occupy 4 bytes instead
7335         of 8.
7336         (decode_string_field), (decode_header_data): update to reflect
7337         protocol changes and move the field specific encoding from
7338         decode_string_field() back into decode_header_data().
7339         
7340         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7341         Add utility to aid debugging.
7342         
7343         * dbus/dbus-message-builder.c:
7344         (append_string_field), (_dbus_message_data_load): Update to
7345         reflect protocol changes; Change the FIELD_NAME directive
7346         to HEADER_FIELD and allow it to take the field's conventional
7347         name rather than the actual value.
7348         
7349         * test/data/*/*.message: Update to use HEADER_FIELD instead
7350         of FIELD_NAME; Always align the header on an 8 byte boundary
7351         *before* updating the header length.
7352
7353 2003-09-15  Havoc Pennington  <hp@pobox.com>
7354
7355         * dbus/dbus-pending-call.c: add the get/set object data
7356         boilerplate as for DBusConnection, etc. Use generic object data
7357         for the notify callback.
7358
7359         * glib/dbus-gparser.c (parse_node): parse child nodes
7360
7361         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7362         
7363         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7364         contain functions shared between the convenience lib and the
7365         installed lib
7366
7367         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7368         -export-symbols-regex to the GLib library
7369
7370         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7371         fix the locking in here, and add a default handler for
7372         Introspect() that just returns sub-nodes.
7373
7374 2003-09-14  Havoc Pennington  <hp@pobox.com>
7375
7376         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7377         rather than gfoo consistent
7378
7379         * glib/dbus-gproxy.h: delete for now, move contents to
7380         dbus-glib.h, because the include files don't work right since we
7381         aren't in the dbus/ subdir.
7382         
7383         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7384         (dbus_gproxy_end_call): finish
7385         (dbus_gproxy_begin_call): finish
7386
7387         * glib/dbus-gmain.c (dbus_set_g_error): new
7388
7389         * glib/dbus-gobject.c (handle_introspect): include information
7390         about child nodes in the introspection
7391
7392         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7393         function to help in implementation of introspection
7394
7395         * dbus/dbus-object-tree.c
7396         (_dbus_object_tree_list_registered_and_unlock): new function
7397
7398 2003-09-12  Havoc Pennington  <hp@pobox.com>
7399
7400         * glib/dbus-gidl.h: add common base class for all the foo_info
7401         types
7402
7403         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7404         similar to kdcop
7405
7406         * test/Makefile.am: try test srcdir -ef . in addition to test
7407         srcdir = ., one of them should work (yeah lame)
7408         
7409         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7410         library
7411         
7412         * glib/dbus-gparser.h: make description_load routines return
7413         NodeInfo* not Parser*
7414
7415         * Makefile.am (SUBDIRS): build test dir after all library dirs
7416
7417         * configure.in: add GTK+ detection
7418
7419 2003-09-07  Havoc Pennington  <hp@pobox.com>
7420
7421         * Make Doxygen contented.
7422
7423 2003-09-07  Havoc Pennington  <hp@pobox.com>
7424
7425         * doc/dbus-specification.sgml: more updates
7426
7427 2003-09-06  Havoc Pennington  <hp@pobox.com>
7428
7429         * doc/dbus-specification.sgml: partial updates
7430
7431         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7432         zillionth time; hopefully I edited the right file this time.
7433
7434         * bus/config-parser.c (append_rule_from_element): support
7435         send_type, send_path, receive_type, receive_path
7436
7437         * bus/policy.c: add message type and path to the list of things
7438         that can be "firewalled"
7439
7440 2003-09-06  Havoc Pennington  <hp@pobox.com>
7441
7442         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7443         (dbus_connection_register_object_path): make this not handle
7444         messages to paths below the given path
7445
7446 2003-09-03  Havoc Pennington  <hp@pobox.com>
7447
7448         * test/glib/Makefile.am: add this with random glib-linked test
7449         programs
7450
7451         * glib/Makefile.am: remove the random test programs from here,
7452         leave only the unit tests
7453
7454         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7455         uscore/javacaps conversion, and fix     
7456         (get_object_property, set_object_property): change to .NET
7457         convention for mapping props to methods, set_FooBar/get_FooBar, 
7458         since one language has such a convention we may as well copy it. 
7459         Plus real methods in either getFooBar or get_foo_bar style won't 
7460         collide with this convention.
7461
7462 2003-09-01  Havoc Pennington  <hp@pobox.com>
7463
7464         * glib/dbus-gparser.c: implement
7465
7466         * glib/dbus-gobject.c: start implementing skeletons support
7467
7468         * configure.in: when disabling checks/assert, also define
7469         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7470
7471 2003-09-01  Havoc Pennington  <hp@pobox.com>
7472
7473         * glib/Makefile.am: rearrange a bunch of files and get "make
7474         check" framework set up
7475
7476 2003-08-31  Havoc Pennington  <hp@pobox.com>
7477
7478         * fix build with --disable-tests
7479
7480 2003-08-30  Havoc Pennington  <hp@pobox.com>
7481
7482         * dbus/dbus-connection.c: purge DBusMessageHandler
7483
7484         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7485         use callbacks everywhere
7486
7487 2003-08-30  Havoc Pennington  <hp@pobox.com>
7488
7489         * test/data/valid-config-files/system.d/test.conf: change to 
7490         root for the user so warnings don't get printed
7491
7492         * dbus/dbus-message.c: add dbus_message_get_path,
7493         dbus_message_set_path
7494         
7495         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7496         dispatching to a path
7497
7498         * dbus/dbus-string.c (_dbus_string_validate_path): add
7499
7500         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7501         (_dbus_marshal_object_path): implement
7502
7503         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7504         to contain the path to the target object
7505         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7506         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7507
7508 2003-08-30  Havoc Pennington  <hp@pobox.com>
7509
7510         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7511
7512 2003-08-29  Havoc Pennington  <hp@pobox.com>
7513
7514         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7515         registered
7516         (struct DBusObjectSubtree): shrink this
7517         a lot, since we may have a lot of them
7518         (_dbus_object_tree_free_all_unlocked): implement
7519         (_dbus_object_tree_dispatch_and_unlock): implement
7520
7521 2003-08-29  Havoc Pennington  <hp@pobox.com>
7522
7523         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7524
7525 2003-08-28  Havoc Pennington  <hp@pobox.com>
7526
7527         purge DBusObjectID
7528         
7529         * dbus/dbus-connection.c: port to no ObjectID, create a
7530         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7531
7532         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7533         everything except UnregisterFunction and MessageFunction
7534         
7535         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7536         add DBUS_TYPE_OBJECT_PATH
7537         
7538         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7539         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7540         path-based object IDs
7541
7542 2003-08-25  Havoc Pennington  <hp@pobox.com>
7543
7544         Just noticed that dbus_message_test is hosed, I wonder when I
7545         broke that. I thought make check was passing earlier...
7546         
7547         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7548         container tree, will replace most of dbus-object-registry
7549
7550         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7551         screwup
7552
7553 2003-08-19  Havoc Pennington  <hp@pobox.com>
7554
7555         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7556         (dbus_message_is_error): fix this function
7557
7558         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7559         match
7560
7561         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7562         reflect clarified man page
7563         (bus_client_policy_check_can_send): ditto
7564         
7565         * bus/session.conf.in: fixup
7566
7567         * bus/system.conf.in: fixup
7568
7569 2003-08-18  Havoc Pennington  <hp@redhat.com>
7570
7571         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7572
7573         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7574         dumb bug created earlier (wrong order of args to
7575         decode_header_data())
7576         
7577         * tools/dbus-send.c: port
7578
7579         * tools/dbus-print-message.c (print_message): port
7580
7581         * test/data/*messages: port all messages over
7582         
7583         * dbus/dbus-message-builder.c: support including 
7584         message type
7585         
7586         * bus/driver.c: port over
7587         
7588         * bus/dispatch.c: port over to new stuff
7589
7590         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7591         rename disconnect signal to "Disconnected"
7592
7593 2003-08-17  Havoc Pennington  <hp@pobox.com>
7594
7595         This doesn't compile yet, but syncing up so I can hack on it from
7596         work. What are branches for if not broken code? ;-)
7597         
7598         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7599         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7600         DBUS_HEADER_FIELD_ERROR_NAME
7601         
7602         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7603         for the interface+member pairs
7604         (string_hash): change to use g_str_hash algorithm
7605         (find_direct_function, find_string_function): refactor these to
7606         share most code.
7607         
7608         * dbus/dbus-message.c: port all of this over to support 
7609         interface/member fields instead of name field
7610
7611         * dbus/dbus-object-registry.c: port over
7612         
7613         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7614         from _dbus_string_validate_name
7615
7616         * bus/dbus-daemon-1.1: change file format for the 
7617         <deny>/<allow> stuff to match new message naming scheme
7618
7619         * bus/policy.c: port over
7620
7621         * bus/config-parser.c: parse new format
7622         
7623 2003-08-16  Havoc Pennington  <hp@pobox.com>
7624
7625         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7626         broken assertion
7627
7628         * glib/dbus-gproxy.c: some hacking
7629
7630 2003-08-15  Havoc Pennington  <hp@redhat.com>
7631
7632         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7633
7634         * dbus/dbus-connection.c
7635         (dbus_connection_send_with_reply_and_block): factor out internals;
7636         change to convert any error replies to DBusError instead of 
7637         returning them as a message
7638
7639 2003-08-15  Havoc Pennington  <hp@pobox.com>
7640
7641         * dbus/dbus-connection.c, 
7642         dbus/dbus-pending-call.c: Finish the pending call stuff
7643
7644 2003-08-14  Havoc Pennington  <hp@redhat.com>
7645
7646         * dbus/dbus-pending-call.c: start on new object that will replace
7647         DBusMessageHandler and ReplyHandlerData for tracking outstanding
7648         replies
7649
7650         * dbus/dbus-gproxy.c: start on proxy object used to communicate
7651         with remote interfaces
7652
7653         * dbus/dbus-gidl.c: do the boring boilerplate in here
7654         
7655 2003-08-12  Havoc Pennington  <hp@pobox.com>
7656
7657         * bus/dispatch.c (bus_dispatch): make this return proper 
7658         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7659
7660         * dbus/dbus-errors.c (dbus_set_error): use
7661         _dbus_string_append_printf_valist
7662
7663         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7664         (_dbus_string_append_printf): new
7665
7666         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7667         UNKNOWN_METHOD
7668
7669         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7670         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7671         message is unhandled.
7672
7673 2003-08-11  Havoc Pennington  <hp@pobox.com>
7674
7675         * bus/test.c (client_disconnect_handler): change to return
7676         HANDLED (would have been REMOVE_MESSAGE)
7677
7678         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7679         HANDLED/NOT_YET_HANDLED instead of
7680         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
7681         should be used.
7682
7683 2003-08-10  Havoc Pennington  <hp@pobox.com>
7684
7685         * tools/dbus-send.c (main): add --type argument, for now
7686         supporting only method_call and signal types.
7687
7688         * tools/dbus-print-message.c: print message type
7689
7690         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7691         init connection->objects
7692
7693         * doc/dbus-specification.sgml: fix sgml
7694
7695         * bus/*.c: port over to object-instance API changes
7696
7697         * test/test-service.c: ditto
7698         
7699         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7700         name, we will have to fix up the rest of the code to also handle
7701         this
7702         (dbus_message_new): generic message-creation call
7703         (set_string_field): allow appending name field
7704
7705 2003-08-06  Havoc Pennington  <hp@pobox.com>
7706
7707         * dbus/dbus-object-registry.c: implement signal connection 
7708         and dispatch
7709
7710         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7711
7712         * dbus/dbus-internals.c (_dbus_memdup): new function
7713
7714 2003-08-02  Havoc Pennington  <hp@pobox.com>
7715
7716         * dbus/dbus-message.c (dbus_message_get_no_reply)
7717         (dbus_message_set_no_reply): add these and remove
7718         set_is_error/get_is_error
7719
7720         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
7721         remove the ERROR flag, since there's now an ERROR type
7722
7723 2003-08-01  Havoc Pennington  <hp@pobox.com>
7724
7725         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7726         implement
7727
7728         * dbus/dbus-message.c (dbus_message_get_type): new function
7729
7730         * doc/dbus-specification.sgml: add "type" byte to messages
7731
7732 2003-08-01  Havoc Pennington  <hp@pobox.com>
7733
7734         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7735         a message type enum to distinguish kinds of message
7736         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
7737         that need not be replied to
7738
7739 2003-08-01  Havoc Pennington  <hp@pobox.com>
7740
7741         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7742         (unpack_8_octets): fix no-64-bit-int bug
7743
7744         * dbus/dbus-object-registry.c (validate_id): validate the 
7745         connection ID bits, not just the instance ID.
7746
7747         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7748         the connection-global 33 bits of the object ID
7749
7750         * dbus/dbus-object-registry.c (info_from_entry): fill in 
7751         object ID in the new way
7752
7753         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
7754         define server/client/instance bits.
7755
7756 2003-07-30  Havoc Pennington  <hp@pobox.com>
7757
7758         * dbus/dbus-connection.c (dbus_connection_register_object): fix
7759         build
7760
7761 2003-07-13  Havoc Pennington  <hp@pobox.com>
7762
7763         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7764         fields to DBusObjectVTable and DBusObjectInfo
7765
7766 2003-07-12  Havoc Pennington  <hp@pobox.com>
7767
7768         * dbus/dbus-object-registry.c: implement unit test,
7769         fix bugs discovered in process
7770
7771         * dbus/dbus-connection.c: remove handler_table and
7772         register_handler(), add DBusObjectRegistry usage
7773
7774         * dbus/dbus-objectid.c (dbus_object_id_is_null)
7775         (dbus_object_id_set_null): new functions
7776
7777 2003-07-08  Havoc Pennington  <hp@pobox.com>
7778
7779         * dbus/dbus-object.c: implement some of this
7780
7781         * dbus/dbus-object-registry.c
7782         (_dbus_object_registry_add_and_unlock): fill in the object_id out
7783         param
7784         (_dbus_object_registry_new): handle OOM
7785
7786 2003-07-08  Havoc Pennington  <hp@pobox.com>
7787
7788         * dbus/dbus-object.h: sketch out an API for registering objects
7789         with a connection, that allows us to use as little as 24 bytes
7790         per object and lets application code represent an object in 
7791         any conceivable way.
7792
7793         * dbus/dbus-object-registry.c: implement the hard bits of the
7794         DBusConnection aspect of object API. Not yet wired up.
7795         
7796 2003-07-06  Havoc Pennington  <hp@pobox.com>
7797
7798         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7799         (_dbus_marshal_object_id): new
7800         (_dbus_demarshal_object_id): new
7801         (_dbus_marshal_get_arg_end_pos): support object ID type, and
7802         consolidate identical switch cases. Don't conditionalize handling
7803         of DBUS_TYPE_UINT64, need to handle the type always.
7804         (_dbus_marshal_validate_arg): consolidate identical cases, and
7805         handle DBUS_TYPE_OBJECT_ID
7806
7807         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7808
7809         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7810
7811 2003-09-28  Havoc Pennington  <hp@pobox.com>
7812
7813         * real 0.13 release
7814
7815 2003-09-28  Havoc Pennington  <hp@pobox.com>
7816
7817         * doc/Makefile.am (dbus-specification.html): testing a funky hack
7818         to work with Debian db2html
7819
7820 2003-09-28  Havoc Pennington  <hp@pobox.com>
7821
7822         * configure.in: 0.13
7823
7824         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7825         stylesheet-images for benefit of Debian
7826         
7827         Change back to using filesystem-linked sockets for the system
7828         bus, so only root can create the default system bus address.
7829         
7830         * bus/system.conf.in: change to use
7831         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7832
7833         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7834         from here.
7835
7836         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7837         here, and AC_DEFINE DBUS_SYSTEM_PATH
7838
7839 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7840
7841         * doc/TODO:
7842         * doc/busconfig.dtd:
7843         Add busconfig DTD.
7844         
7845 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7846
7847         * doc/dbus-specification.sgml:
7848         Add activation reply values.
7849         
7850 2003-08-05  Havoc Pennington  <hp@redhat.com>
7851
7852         * configure.in: 0.12
7853
7854 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
7855
7856         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7857         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7858         (add_watch), (remove_watch), (create_source):
7859         Refcount fds, fixes some reentrancy issues.
7860         
7861 2003-07-30  Havoc Pennington  <hp@redhat.com>
7862
7863         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7864         bus address to be abstract if we have abstract sockets
7865
7866         * NEWS: update
7867
7868 2003-07-28  Havoc Pennington  <hp@redhat.com>
7869
7870         * bus/messagebus.in: fix to avoid processname/servicename 
7871         confusion, from Michael Kearey
7872         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7873         
7874 2003-07-23  Havoc Pennington  <hp@pobox.com>
7875
7876         * dbus/dbus-message.c (dbus_message_iter_get_named): 
7877         fix from Andy Hanton to remove broken "+1"
7878
7879 2003-07-16  Havoc Pennington  <hp@pobox.com>
7880
7881         * tools/dbus-launch.c (babysit): close stdout/stderr in the
7882         babysitter process, as suggested by Thomas Leonard, so 
7883         an "eval `dbus-launch --exit-with-session`" will actually 
7884         return
7885
7886 2003-07-16  Havoc Pennington  <hp@pobox.com>
7887
7888         * configure.in: print out EXPANDED_* variables in the summary at
7889         the end; clean up the code that computes EXPANDED_ variables and
7890         get the ones using exec_prefix right. Should make things work
7891         when you build without --prefix
7892
7893 2003-06-29  Havoc Pennington  <hp@pobox.com>
7894
7895         * mono/Test.cs (class Test): fire up a main loop and run it
7896
7897         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
7898         done once, the app has to do it
7899
7900 2003-06-26  Havoc Pennington  <hp@pobox.com>
7901
7902         * mono/Connection.cs: set up connection with the glib main loop
7903
7904 2003-07-01  Havoc Pennington  <hp@redhat.com>
7905
7906         * doc/dbus-specification.sgml: clarify the format of a type code,
7907         change suggested by Jim Blandy
7908
7909 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
7910
7911         * doc/Makefile.am:
7912         * tools/Makefile.am: Don't assume srcdir == builddir.
7913
7914         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
7915         the allocated block.
7916         (_dbus_memory_test): New function.
7917         * dbus/dbus-test.h: Add _dbus_memory_test ().
7918         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
7919
7920         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
7921         of %c%c%c%c.
7922         (dbus_message_new): Remove obsolete @todo.
7923
7924         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
7925         (_dbus_marshal_set_uint64): Fix comment.
7926
7927         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
7928         hardcode FIELD_REPLY_SERIAL.
7929
7930         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
7931         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
7932
7933         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
7934         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
7935
7936 2003-06-24  Havoc Pennington  <hp@pobox.com>
7937
7938         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
7939
7940 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
7941
7942         * configure.in:
7943         * gcj/.cvsignore:
7944         * gcj/Hello.java:
7945         * gcj/Makefile.am:
7946         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
7947         * gcj/org/.cvsignore:
7948         * gcj/org/Makefile.am:
7949         * gcj/org/freedesktop/.cvsignore:
7950         * gcj/org/freedesktop/Makefile.am:
7951         * gcj/org/freedesktop/dbus/.cvsignore:
7952         * gcj/org/freedesktop/dbus/Makefile.am:
7953         * gcj/org/freedesktop/dbus/Message.java: (Message),
7954         (Message.Message):
7955         * gcj/org/freedesktop/dbus/natMessage.cc:
7956         Fix the build system.
7957
7958 2003-06-22  Havoc Pennington  <hp@pobox.com>
7959
7960         * mono/Connection.cs: add more bindings
7961
7962         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
7963         more than once.
7964
7965 2003-06-22  Havoc Pennington  <hp@pobox.com>
7966
7967         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
7968         Start wrapping more stuff.
7969
7970 2003-06-22  Havoc Pennington  <hp@pobox.com>
7971
7972         * mono/Message.cs: implement Message.Wrap() that ensures we only
7973         have a single C# wrapper per DBusMessage, assuming it works which
7974         it probably doesn't.
7975
7976         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
7977         (dbus_message_free_data_slot): new
7978         (dbus_message_set_data): new
7979         (dbus_message_get_data): new
7980
7981 2003-06-22  Havoc Pennington  <hp@pobox.com>
7982
7983         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
7984         (_dbus_data_slot_allocator_alloc): rework these to keep a
7985         reference count on each slot and automatically manage a global
7986         slot ID variable passed in by address
7987
7988         * bus/bus.c: convert to new dataslot API
7989
7990         * dbus/dbus-bus.c: convert to new dataslot API
7991
7992         * dbus/dbus-connection.c: convert to new dataslot API
7993
7994         * dbus/dbus-server.c: convert to new dataslot API
7995
7996         * glib/dbus-gmain.c: ditto
7997
7998         * bus/test.c: ditto
7999
8000         * bus/connection.c: ditto
8001
8002 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8003
8004         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8005         after the gcj checks so that the correct configuration tags
8006         will be added to libtool.
8007
8008         * dbus-glib-1.pc.in: No need to specify any includes since
8009         dbus-1.pc.in has those.
8010
8011 2003-06-22  Havoc Pennington  <hp@pobox.com>
8012
8013         * mono/*, gcj/*, configure.in, Makefile.am:
8014         Check in makefiles and subdirs for mono and gcj bindings.
8015         Neither binding actually exists, just trying to get through
8016         all the build and other boring bits.
8017
8018 2003-06-21  Philip Blundell  <philb@gnu.org>
8019
8020         * tools/dbus-monitor.1: Updated.
8021
8022         * tools/dbus-send.1: Likewise.
8023
8024 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8025
8026         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8027         for hangup and error after checking read so we won't discard
8028         pending data if both hangup and read are set.
8029
8030 2003-06-19  Philip Blundell  <philb@gnu.org>
8031
8032         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8033
8034         * tools/dbus-send.c: Accept both --system and --session.
8035
8036         * tools/dbus-monitor.c: Same here.
8037
8038 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8039
8040         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8041         from C++ (Patch by Miloslav Trmac).
8042
8043 2003-06-15  Joe Shaw  <joe@assbarn.com>
8044
8045         * configure.in: Check for socklen_t.
8046
8047         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8048
8049         * test/test-segfault.c: Add #include <sys/time.h>
8050
8051         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8052         dbus-launch needs it.
8053
8054 2003-06-09  Havoc Pennington  <hp@redhat.com>
8055
8056         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8057         SUN_LEN, it breaks abstract socket usage
8058
8059         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8060         starts of lines.
8061
8062 2003-06-04  Havoc Pennington  <hp@pobox.com>
8063
8064         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8065         using unix:abstract=/foo, and when listening in a tmpdir
8066         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8067
8068         * dbus/dbus-transport.c (_dbus_transport_open): support
8069         unix:abstract=/foo
8070
8071         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8072         support abstract sockets
8073
8074         * dbus/dbus-transport-unix.c
8075         (_dbus_transport_new_for_domain_socket): support abstract sockets
8076
8077         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8078         toggle as an argument, implement abstract namespace support
8079         (_dbus_listen_unix_socket): ditto
8080
8081         * configure.in: add --enable-abstract-sockets and implement
8082         a configure check for autodetection of the right value.
8083
8084 2003-06-01  Havoc Pennington  <hp@pobox.com>
8085
8086         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8087         in /tmp (though on Linux this will end up being useless,
8088         when we add abstract namespace support)
8089
8090         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8091         subst'ing it
8092
8093 2003-05-28  Colin Walters  <walters@verbum.org>
8094
8095         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8096
8097 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8098
8099         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8100
8101 2003-05-17  Colin Walters  <walters@gnu.org>
8102
8103         * tools/dbus-send.c: Don't exit with an error code if --help was
8104         passed.  Default to using the session bus instead of the system
8105         one.
8106
8107         * tools/dbus-launch.c: Ditto.
8108
8109         * tools/dbus-monitor.c: Ditto.
8110
8111         * tools/dbus-send.1: Update with new arguments.
8112
8113         * tools/dbus-launch.c: Emit code to export variables.  New
8114         arguments -s and -c to specify shell syntax, and a bit of code to
8115         autodetect syntax.  Also, allow specifying a program to run.
8116
8117         * tools/dbus-launch.1: Update with new arguments.
8118
8119         * tools/dbus-send.1: Ditto.
8120
8121         * tools/dbus-monitor.1: Ditto.
8122
8123 2003-05-17  Havoc Pennington  <hp@pobox.com>
8124
8125         * bus/config-parser.c (merge_included): merge in policies from
8126         child configuration file.
8127
8128         * bus/policy.c (bus_policy_merge): function to merge two policies
8129         together
8130
8131 2003-05-16  Havoc Pennington  <hp@redhat.com>
8132
8133         * dbus/dbus-connection.c: disable verbose lock spew
8134
8135         * tools/dbus-send.c: add --print-reply command line option
8136
8137         * tools/dbus-print-message.h (print_message): new util function
8138         shared by dbus-send and dbus-monitor
8139
8140         * tools/dbus-monitor.c (handler_func): exit on disconnect
8141
8142         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8143         disconnected, don't try to use the read_watch
8144
8145         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8146         so we can find this bug more easily
8147
8148 2003-05-16  Havoc Pennington  <hp@redhat.com>
8149
8150         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8151         NULL as DBusHashTable is annoyingly likely to do.
8152
8153 2003-05-16  Colin Walters  <walters@verbum.org>
8154
8155         * tools/dbus-monitor.c: Add --session argument and usage()
8156         function.
8157
8158         * tools/dbus-monitor.1: Update with new --session arg.
8159
8160         * bus/Makefile.am (install-data-hook): Create
8161         $(libdir)/dbus-1.0/services so that the session bus is happy.
8162
8163 2003-05-15  Havoc Pennington  <hp@redhat.com>
8164
8165         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8166         on non-x86. ifdef's are evil.
8167
8168 2003-05-15  Havoc Pennington  <hp@redhat.com>
8169
8170         * configure.in: 0.11
8171
8172         * NEWS: update
8173
8174         * bus/Makefile.am (initddir): apparently we are supposed to put
8175         init scripts in /etc/rc.d/init.d not /etc/init.d
8176
8177         * bus/Makefile.am: remove the "you must --enable-tests to make
8178         check" as it broke distcheck
8179
8180         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8181
8182 2003-05-13  James Willcox  <jwillcox@gnome.org>
8183
8184         * configure.in:
8185         * bus/activation.c: (bus_activation_service_created),
8186         (bus_activation_activate_service):
8187         * bus/driver.c: (bus_driver_send_service_deleted),
8188         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8189         (bus_driver_send_service_acquired),
8190         (bus_driver_send_welcome_message),
8191         (bus_driver_handle_list_services):
8192         * bus/session.conf.in:
8193         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8194         (dbus_bus_service_exists), (dbus_bus_activate_service):
8195         * dbus/dbus-bus.h:
8196
8197         Add some convenience API which lets you activate a service, and did a
8198         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8199         and dbus_message_get_args()
8200
8201 2003-05-11  Havoc Pennington  <hp@pobox.com>
8202
8203         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8204         calling _dbus_marshal_validate_arg() for every byte in a byte
8205         array, etc.
8206
8207         * dbus/dbus-message-handler.c: use atomic reference counting to
8208         reduce number of locks slightly; the global lock in here sucks
8209
8210         * dbus/dbus-connection.c
8211         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8212         update_dispatch_status that can be called with lock held; then use
8213         in a couple places to reduce locking/unlocking
8214         (dbus_connection_send): hold the lock over the whole function
8215         instead of acquiring it twice.
8216
8217         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8218
8219         * bus/connection.c (bus_connections_setup_connection): fix access
8220         to already-freed memory.
8221
8222         * dbus/dbus-connection.c: keep a little cache of linked list
8223         nodes, to avoid using the global linked list alloc lock in the
8224         normal send-message case. Instead we just use the connection lock
8225         that we already have to take.
8226
8227         * dbus/dbus-list.c (_dbus_list_find_last): new function
8228
8229         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8230         change to use a struct for the atomic type; fix docs,
8231         they return value before increment, not after increment.
8232
8233         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8234         (_dbus_string_append_8_aligned): new functions to try to
8235         microoptimize this operation.
8236         (reallocate_for_length): break this out of set_length(), to
8237         improve profile info, and also so we can consider inlining the
8238         set_length() part.
8239
8240         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8241         strings with some preallocation, cuts down on our calls to realloc
8242         a fair bit. Though if we can get the "move entire string to empty
8243         string" optimization below to kick in here, it would be better.
8244
8245         * dbus/dbus-string.c (_dbus_string_move): just call
8246         _dbus_string_move_len
8247         (_dbus_string_move_len): add a special case for moving
8248         an entire string into an empty string; we can just
8249         swap the string data instead of doing any reallocs.
8250         (_dbus_string_init_preallocated): new function
8251
8252 2003-05-11  Havoc Pennington  <hp@pobox.com>
8253
8254         Write a "test-profile" that does echo client-server with threads;
8255         profile reveals lock contention, memcpy/realloc of buffers, and
8256         UTF-8 validation as hot spots. 20% of lock contention eliminated
8257         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8258         contention is global mempool locks for GList and DBusList.
8259
8260         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8261         x86 implementation
8262
8263         * dbus/dbus-connection.c (struct DBusConnection): use
8264         dbus_atomic_t for the reference count
8265
8266         * dbus/dbus-message.c (struct DBusMessage): declare
8267         dbus_atomic_t values as volatile
8268
8269         * configure.in: code to detect ability to use atomic integer
8270         operations in assembly, from GLib patch
8271
8272         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8273         time, tired of it being wrong in threads and forked processes
8274
8275         * glib/test-profile.c: a little program to bounce messages back
8276         and forth between threads and eat CPU
8277
8278         * dbus/dbus-connection.c: add debug spew macros for debugging
8279         thread locks; include config.h at top; fix deadlock in
8280         dbus_connection_flush()
8281
8282 2003-05-08  Havoc Pennington  <hp@pobox.com>
8283
8284         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8285         data from getting written, and there wasn't a good reason to
8286         use _exit really.
8287
8288         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8289         dbus_verbose lines in test coverage
8290         (main): add list of functions sorted by # of untested blocks
8291         to the coverage report
8292
8293         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8294
8295         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8296
8297         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8298         extend test coverage
8299
8300         * test/data/auth/cancel.auth-script: test canceling an
8301         authentication
8302
8303         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8304         aren't used. in CVS history if we end up needing them.
8305
8306 2003-05-04  Havoc Pennington  <hp@pobox.com>
8307
8308         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8309         unit test
8310
8311         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8312         function, which assumed length was in # of strings, not bytes
8313
8314         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8315         missing coverage
8316
8317         * dbus/dbus-connection.c
8318         (_dbus_connection_queue_received_message): disable function for
8319         now, we are only using it in test mode
8320
8321         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8322         remove a mistaken FIXME
8323
8324 2003-05-04  Havoc Pennington  <hp@pobox.com>
8325
8326         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8327         unlock mutex on successful return, patch from Anders Gustafsson
8328
8329 2003-05-04  Havoc Pennington  <hp@pobox.com>
8330
8331         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8332         Anders Gustafsson
8333
8334 2003-05-04  Havoc Pennington  <hp@pobox.com>
8335
8336         * tools/dbus-launch.c: implement
8337
8338         * bus/main.c (main), bus/bus.c (bus_context_new):
8339         implement --print-pid and --fork
8340
8341 2003-05-03  Havoc Pennington  <hp@redhat.com>
8342
8343         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8344         the address had no value, and add to test suite. Fix and
8345         regression test from Miloslav Trmac
8346
8347 2003-05-03  Havoc Pennington  <hp@pobox.com>
8348
8349         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8350         watch is invalid when handled
8351
8352         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8353         dbus-launch utility to launch the bus from a shell script.  Didn't
8354         actually implement dbus-launch yet, it's just a placeholder still.
8355
8356 2003-05-03  Havoc Pennington  <hp@pobox.com>
8357
8358         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8359         daemon; also documents daemon config file, so replaces
8360         doc/config-file.txt. Corrected some stuff from config-file.txt in
8361         the process of moving it.
8362
8363 2003-05-03  Havoc Pennington  <hp@pobox.com>
8364
8365         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8366         add some man pages
8367
8368 2003-05-03  Colin Walters  <walters@verbum.org>
8369
8370         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8371         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8372
8373         * Makefile.am: Update to use new .pc versioning scheme.
8374
8375 2003-05-02  Havoc Pennington  <hp@redhat.com>
8376
8377         * bus/system.conf.in: allow send/receive to/from message bus
8378         service
8379
8380 2003-04-30  Havoc Pennington  <hp@redhat.com>
8381
8382         * configure.in: print a note when building with unit tests and
8383         without assertions
8384
8385 2003-04-30  Havoc Pennington  <hp@redhat.com>
8386
8387         * Makefile.am: add a check-local that complains if you didn't
8388         configure with --enable-tests
8389
8390 2003-04-29  Havoc Pennington  <hp@redhat.com>
8391
8392         * glib/dbus-gmain.c: docs cleanups
8393
8394         * dbus/dbus-types.h: add docs on int64 types
8395
8396         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8397         public API docs section
8398
8399 2003-04-29  Havoc Pennington  <hp@redhat.com>
8400
8401         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8402         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8403         parallel install API version, not with the D-BUS package version.
8404
8405         * HACKING: move some of README over here
8406
8407         * README: updates, and document API/ABI policy
8408
8409         * configure.in: reindentation
8410
8411 2003-04-29  Havoc Pennington  <hp@redhat.com>
8412
8413         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8414         to use this library" to be sure people have the right
8415         expectations.
8416
8417 2003-04-28  Havoc Pennington  <hp@redhat.com>
8418
8419         * configure.in: add --enable-docs which by default is auto yes if
8420         doxygen and db2html found, no otherwise; but can be forced on/off
8421
8422         * doc/Makefile.am: conditionalize whether to build docs on
8423         --enable-docs
8424
8425 2003-04-28  Havoc Pennington  <hp@redhat.com>
8426
8427         * configure.in: 0.10
8428
8429         * NEWS: update
8430
8431         * bus/system.conf.in: add <includedir>system.d</includedir>
8432
8433         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8434         username was provided but not uid
8435
8436         * bus/config-parser.c (struct BusConfigParser): keep track of
8437         whether the parser is toplevel or was included; change some
8438         of the error handling if it's included.
8439
8440 2003-04-27  Havoc Pennington  <hp@pobox.com>
8441
8442         Unbreak my code...
8443
8444         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8445         report correct status if we finish processing authentication
8446         inside this function.
8447
8448         * bus/activation.c (try_send_activation_failure): use
8449         bus_transaction_send_error_reply
8450
8451         * bus/connection.c (bus_connection_get_groups): return an error
8452         explaining the problem
8453
8454         * bus/bus.c (bus_context_check_security_policy): implement
8455         restriction here that inactive connections can only send the
8456         hello message. Also, allow bus driver to send anything to
8457         any recipient.
8458
8459         * bus/connection.c (bus_connection_complete): create the
8460         BusClientPolicy here instead of on-demand.
8461         (bus_connection_get_policy): don't return an error
8462
8463         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8464         sender field in message being replied to
8465
8466         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8467         causing it to return FALSE always
8468
8469         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8470         we checked sender rather than destination
8471
8472 2003-04-25  Havoc Pennington  <hp@redhat.com>
8473
8474         test suite is slightly hosed at the moment, will fix soon
8475
8476         * bus/connection.c (bus_connections_expire_incomplete): fix to
8477         properly disable the timeout when required
8478         (bus_connection_set_name): check whether we can remove incomplete
8479         connections timeout after we complete each connection.
8480
8481         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8482         probably still broken.
8483
8484         * bus/services.c (bus_registry_acquire_service): implement max
8485         number of services owned, and honor allow/deny rules on which
8486         services a connection can own.
8487
8488         * bus/connection.c (bus_connection_get_policy): report errors here
8489
8490         * bus/activation.c: implement limit on number of pending
8491         activations
8492
8493 2003-04-25  Havoc Pennington  <hp@redhat.com>
8494
8495         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8496         where we used >= 0 instead of != DBUS_UID_UNSET.
8497
8498 2003-04-25  Havoc Pennington  <hp@redhat.com>
8499
8500         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8501         were toggled without add/remove, fix from Anders Gustafsson
8502
8503 2003-04-24  Havoc Pennington  <hp@redhat.com>
8504
8505         * test/data/valid-config-files/basic.conf: add <limit> tags to
8506         this test
8507
8508         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8509         <limit> tag in configuration file.
8510
8511 2003-04-24  Havoc Pennington  <hp@redhat.com>
8512
8513         * bus/dispatch.c: somehow missed some name_is
8514
8515         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8516         (_dbus_timeout_set_interval): new
8517
8518         * bus/connection.c (bus_connections_setup_connection): record time
8519         when each connection is first set up, and expire them after the
8520         auth timeout passes.
8521
8522 2003-04-24  Havoc Pennington  <hp@redhat.com>
8523
8524         * dbus/dbus-message.c (dbus_message_name_is): rename
8525         (dbus_message_service_is): rename
8526         (dbus_message_sender_is): rename
8527         (dbus_message_get_service): rename
8528
8529 2003-04-24  Havoc Pennington  <hp@redhat.com>
8530
8531         * configure.in: add --enable-checks
8532
8533         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8534
8535         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8536         to use thread locks.
8537         (_dbus_connection_handler_destroyed_locked): move some private
8538         functions into proper docs group
8539
8540         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8541         _dbus_return_val_if_fail
8542
8543         Throughout: use dbus_return_if_fail
8544
8545 2003-04-23  James Willcox  <jwillcox@gnome.org>
8546
8547         * glib/dbus-glib.h:
8548         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8549         (dbus_connection_setup_with_g_main),
8550         (dbus_server_setup_with_g_main):
8551         * glib/test-dbus-glib.c: (main):
8552         * glib/test-thread-client.c: (main):
8553         * glib/test-thread-server.c: (new_connection_callback), (main):
8554         * tools/dbus-monitor.c: (main):
8555
8556         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8557         and dbus_server_setup_with_g_main().
8558
8559 2003-04-20  Havoc Pennington  <hp@pobox.com>
8560
8561         * doc/dbus-specification.sgml: document the restrictions on
8562         message and service names
8563
8564 2003-04-22  Havoc Pennington  <hp@redhat.com>
8565
8566         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8567         support, and do some code cleanups to share more code and
8568         speed up array marshal/demarshal.
8569
8570         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8571
8572         * configure.in: generate dbus-arch-deps.h
8573
8574         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8575         64-bit typecodes
8576
8577 2003-04-22  Havoc Pennington  <hp@redhat.com>
8578
8579         * test/data/valid-messages/opposite-endian.message: fix test
8580         to use proper type for rply field
8581
8582         * test/data/invalid-messages: add tests for below validation
8583
8584         * dbus/dbus-message.c (decode_header_data): validate field types,
8585         and validate that named fields are valid names
8586         (decode_name_field): consider messages in the
8587         org.freedesktop.Local. namespace to be invalid.
8588
8589         * dbus/dbus-string.c (_dbus_string_validate_name): new
8590
8591 2003-04-19  Havoc Pennington  <hp@pobox.com>
8592
8593         * bus/driver.c (bus_driver_handle_hello): check limits and
8594         return an error if they are exceeded.
8595
8596         * bus/connection.c: maintain separate lists of active and inactive
8597         connections, and a count of each. Maintain count of completed
8598         connections per user. Implement code to check connection limits.
8599
8600         * dbus/dbus-list.c (_dbus_list_unlink): export
8601
8602         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8603         number of bytes in the message queue for a connection
8604
8605 2003-04-18  Havoc Pennington  <hp@pobox.com>
8606
8607         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8608
8609         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8610         memleaks
8611
8612         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8613         on realloc be sure to update the pointer in the keyring
8614
8615         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8616         offset to avoid writing to unallocated memory
8617
8618         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8619         try the next mechanism, so we properly handle OOM
8620
8621         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8622         on OOM.
8623         (_dbus_keyring_new): fix OOM bug
8624         (_dbus_keyring_new_homedir): always set error; impose a maximum
8625         number of keys we'll load from the file, mostly to speed up the
8626         test suite and make its OOM checks more useful, but also for
8627         general sanity.
8628
8629         * dbus/dbus-auth.c (process_error_server): reject authentication
8630         if we get an error from the client
8631         (process_cancel): on cancel, send REJECTED, per the spec
8632         (process_error_client): send CANCEL if we get an error from the
8633         server.
8634
8635 2003-04-18  Havoc Pennington  <hp@pobox.com>
8636
8637         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8638         debug spew
8639
8640         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8641         handling problem
8642
8643         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8644         about DBUS_TEST_HOMEDIR once
8645
8646         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8647         the environment
8648
8649         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8650         config file so we test the right thing
8651
8652         Throughout: assorted docs improvements
8653
8654 2003-04-18  Havoc Pennington  <hp@pobox.com>
8655
8656         * glib/dbus-gmain.c: adapt to watch changes
8657
8658         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8659
8660         * dbus/dbus-server.h: remove dbus_server_handle_watch
8661
8662         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8663
8664         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8665         like DBusTimeout, so we don't need dbus_connection_handle_watch
8666         etc.
8667
8668 2003-04-17  Havoc Pennington  <hp@redhat.com>
8669
8670         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8671         database usage so it all goes via the DBusUserDatabase cache.
8672
8673 2003-04-17  Havoc Pennington  <hp@redhat.com>
8674
8675         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8676         there was an OOM watch we skipped, we always return TRUE so we
8677         iterate again to have a look at it again. Fixes test suite hang.
8678         Code rearrangement also lets us lose some memset and only iterate
8679         over callbacks once.
8680
8681         * bus/driver.c (bus_driver_handle_message): sense of test for
8682         reply was backward
8683
8684 2003-04-16  Havoc Pennington  <hp@pobox.com>
8685
8686         * doc/dbus-specification.sgml: make spec say serials are unsigned
8687
8688         * dbus/dbus-message.h: change message serials to unsigned
8689
8690         * dbus/dbus-connection.c: adapt to message serials being unsigned
8691
8692 2003-04-15  Havoc Pennington  <hp@pobox.com>
8693
8694         * bus/bus.c: create and keep around a shared DBusUserDatabase
8695         object.
8696
8697         * bus/connection.c (bus_connection_get_groups): don't cache
8698         groups for user in the connection object, since user database
8699         object now does that.
8700
8701 2003-04-16  Havoc Pennington  <hp@redhat.com>
8702
8703         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8704         list of size counters
8705         (_dbus_message_loader_putback_message_link): put back a popped link
8706
8707         * dbus/dbus-connection.c
8708         (dbus_connection_set_max_live_messages_size): rename
8709         max_received_size
8710         (dbus_connection_get_outgoing_size): get size of outgoing
8711         queue
8712         (_dbus_connection_set_connection_counter): remove this cruft
8713
8714 2003-04-14  Havoc Pennington  <hp@redhat.com>
8715
8716         * dbus/dbus-userdb.c: user database abstraction, mostly to get
8717         caching, but at some point we might want to be able to use a
8718         different database.
8719
8720         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8721         SHA1 conf file to test the sha1 auth mechanism, since the regular
8722         test always uses EXTERNAL when available.
8723
8724         * configure.in,
8725         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8726         add conf file that requires use of sha1 auth
8727
8728 2003-04-13  Havoc Pennington  <hp@pobox.com>
8729
8730         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8731         from Philip Blundell to send messages and monitor them.
8732
8733 2003-04-13  Havoc Pennington  <hp@pobox.com>
8734
8735         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8736         callbacks
8737
8738         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8739         users
8740
8741         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8742         fix to only recover unused bytes if we're already authenticated
8743         (_dbus_transport_get_is_authenticated): fix to still mark us
8744         authenticated if there are unused bytes.
8745
8746         * bus/dispatch.c: implement security policy checking
8747
8748         * bus/connection.c (bus_transaction_send_from_driver): new
8749
8750         * bus/bus.c (bus_context_check_security_policy): new
8751
8752         * bus/dispatch.c (send_service_nonexistent_error): delete this,
8753         now we just set the DBusError and it gets converted to an error
8754         reply.
8755
8756         * bus/connection.c (allow_user_function): enable code using actual
8757         data from the config file
8758
8759         * bus/policy.c (list_allows_user): handle wildcard rules for
8760         user/group connection perms
8761
8762 2003-04-13  Havoc Pennington  <hp@pobox.com>
8763
8764         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8765
8766         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8767
8768         * bus/policy.c (bus_policy_append_mandatory_rule)
8769         (bus_policy_append_default_rule, bus_policy_append_user_rule)
8770         (bus_policy_append_group_rule): new functions
8771
8772 2003-04-12  Havoc Pennington  <hp@pobox.com>
8773
8774         * bus/config-parser.c (bus_config_parser_new): fix a memleak
8775
8776         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8777         the pid/gid/uid, just for paranoia.
8778
8779         * test/break-loader.c (randomly_do_n_things): find a byte
8780         containing a type code, and randomly change it to a different
8781         type code.
8782
8783 2003-04-12  Havoc Pennington  <hp@pobox.com>
8784
8785         * bus/policy.h: change BusPolicy to be the thing from the config
8786         file, and rename old BusPolicy to BusClientPolicy
8787
8788         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8789         match change in how policy works
8790
8791         * dbus/dbus-internals.h: mark assert_not_reached as
8792         __attribute((noreturn))__
8793
8794 2003-04-11  Havoc Pennington  <hp@redhat.com>
8795
8796         * doc/dbus-specification.sgml: fix a spot with the wrong name for
8797         the broadcast service. Use boolean return for ServiceExists.
8798
8799 2003-04-11  Havoc Pennington  <hp@redhat.com>
8800
8801         * configure.in: add another directory to look for qt in.
8802
8803 2003-04-11  Havoc Pennington  <hp@redhat.com>
8804
8805         * AUTHORS: add Colin Walters
8806
8807 2003-04-11  Havoc Pennington  <hp@redhat.com>
8808
8809         * NEWS: update
8810
8811         * configure.in: 0.9
8812
8813 2003-04-11  Havoc Pennington  <hp@redhat.com>
8814
8815         * bus/messagebus.in: remove pid file when stopping the
8816         message bus, since the bus won't have privileges to remove it
8817         itself.
8818
8819 2003-04-11  Havoc Pennington  <hp@redhat.com>
8820
8821         * bus/bus.c (bus_context_new): move credentials change after
8822         creating pidfile
8823
8824 2003-04-11  Havoc Pennington  <hp@pobox.com>
8825
8826         * test/decode-gcov.c: add "below average functions" to the
8827         coverage report, and change how some of the code works.
8828
8829         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8830         not in the coverage stats.
8831
8832         * test/test-service.c (main): use _dbus_verbose not fprintf in a
8833         couple places so running the test suite doesn't result in megaspam.
8834
8835 2003-04-11  Havoc Pennington  <hp@pobox.com>
8836
8837         * bus/dispatch.c (check_existent_service_activation): accept a no
8838         memory error in a place we didn't before
8839
8840         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8841         in case the first one failed," since the test suite is less
8842         broken now.
8843
8844 2003-04-10  Havoc Pennington  <hp@pobox.com>
8845
8846         * bus/dispatch.c (check_segfault_service_activation): add test
8847         for launching an executable that just crashes.
8848
8849         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8850         don't leave a million cores. We'll see how portable this is.
8851
8852 2003-04-10  Havoc Pennington  <hp@pobox.com>
8853
8854         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8855         the possible parent failures before we fork, so that we don't
8856         fail to create a babysitter after creating the child.
8857
8858         * bus/activation.c (bus_activation_activate_service): kill child
8859         if we don't successfully complete the activation.
8860
8861 2003-04-10  Havoc Pennington  <hp@redhat.com>
8862
8863         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8864         the connection if it's disconnected
8865
8866         * bus/activation.c (bus_activation_service_created): use new
8867         transaction features to roll back removal of pending activation if
8868         we don't successfully create the service after all. Don't remove
8869         pending activation if the function fails.
8870
8871         * dbus/dbus-list.c (_dbus_list_insert_before_link)
8872         (_dbus_list_insert_after_link): new code to facilitate
8873         services.c fixes
8874
8875         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8876         new functionality, so we can preallocate the ability to insert
8877         into a hash table.
8878
8879         * bus/connection.c (bus_transaction_add_cancel_hook): new function
8880         allowing us to put custom hooks in a transaction to be used for
8881         cancelling said transaction
8882
8883         * doc/dbus-specification.sgml: add some discussion of secondary
8884         service owners, and disallow zero-length service names
8885
8886         * bus/services.c (bus_registry_acquire_service): new function,
8887         splits out part of bus_driver_handle_acquire_service() and fixes
8888         a bug where we didn't remove the service doing the acquiring
8889         from the secondary queue if we failed to remove the current owner
8890         from the front of the queue.
8891
8892 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8893
8894         * doc/dbus-specification.sgml:
8895         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
8896
8897 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8898
8899         * bus/.cvsignore:
8900         * glib/.cvsignore:
8901         * test/.cvsignore:
8902         Added files to cvsignore
8903
8904         * dbus/dbus-message.h:
8905         * dbus/dbus-message.c: (dbus_message_iter_get_named):
8906         Make get_named() take two out argument and return a boolean.
8907         (dbus_message_iter_get_args_valist):
8908         Update usage of get_named().
8909         (dbus_message_iter_append_byte):
8910         Fix typo
8911         (dbus_message_iter_append_named)
8912         Fix typo
8913         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
8914         More tests.
8915
8916 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8917
8918         * dbus/dbus-marshal.[ch]:
8919         Add array_type_pos argument to _dbus_marshal_validate_arg.
8920         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
8921
8922         * dbus/dbus-message.[ch]:
8923         Multi-dimensional arrays have full type specification in the
8924         outermost array. Iter code re-arranged to handle this.
8925         Added some more iter tests.
8926
8927         * doc/dbus-specification.sgml:
8928         Add me to authors.
8929         Remove old FIXME.
8930         Update new array encoding description.
8931         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
8932
8933         * test/data/invalid-messages/array-with-mixed-types.message:
8934         * test/data/valid-messages/array-of-array-of-uint32.message:
8935         Change to the new array format.
8936
8937         * test/data/invalid-messages/too-short-dict.message:
8938         Fix bug in test.
8939
8940         * test/data/valid-messages/recursive-types.message:
8941         Fix up and extend test.
8942
8943 2003-04-10  Havoc Pennington  <hp@pobox.com>
8944
8945         * bus/dispatch.c: lots of fixes
8946
8947         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
8948         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
8949         that was crack, broke the test service.
8950
8951         * dbus/dbus-transport.c (_dbus_transport_open): fix error
8952         handling to avoid piling up errors if we get a failure on the
8953         first address.
8954
8955         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
8956         pid in assertion failures.
8957
8958         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
8959         to some fixed size of file descriptor array. Don't return TRUE
8960         anytime a timeout exists, that led to lots of busy loop silliness
8961         in the tests.
8962
8963 2003-04-09  Havoc Pennington  <hp@redhat.com>
8964
8965         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
8966         I'd checked this in earlier but hadn't.
8967
8968 2003-04-09  Havoc Pennington  <hp@redhat.com>
8969
8970         * bus/dispatch.c (bus_dispatch_test): get a bit further through
8971         the activation test (man this is getting old!)
8972
8973 2003-04-09  Havoc Pennington  <hp@redhat.com>
8974
8975         * test/test-utils.c: use dispatch status function to fix this up
8976
8977         * bus/connection.c (connection_watch_callback): don't dispatch
8978         from here
8979         (connection_timeout_callback): don't dispatch from here
8980         (bus_connections_setup_connection): set the dispatch status function
8981         (bus_connection_disconnected): unset it
8982
8983         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
8984         used to add a connection to be dispatched
8985         (_dbus_loop_iterate): do the dispatching at the end of each
8986         iteration
8987
8988         * dbus/dbus-connection.c
8989         (dbus_connection_set_dispatch_status_function): new function
8990         allowing us to fix up main loop usage
8991         (_dbus_connection_last_unref): free all the various function
8992         user data
8993         (dbus_connection_dispatch): call the DispatchStatusFunction
8994         whenever this function returns
8995         (dbus_connection_handle_watch): call DispatchStatusFunction
8996         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
8997         (reply_handler_timeout): call DispatchStatusFunction
8998         (dbus_connection_flush): call DispatchStatusFunction
8999
9000 2003-04-09  Havoc Pennington  <hp@redhat.com>
9001
9002         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9003         a memory leak
9004
9005         * bus/dispatch.c (check_service_activated): fix bug in test
9006
9007         * dbus/dbus-mainloop.c (check_timeout): fix this up
9008
9009         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9010         verbose output so we can sort out output from different processes,
9011         e.g. in the activation case.
9012
9013 2003-04-08  Colin Walters  <walters@gnu.org>
9014
9015         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9016         the pid file.
9017         (bus_context_new): Set it.
9018         (bus_context_unref): Use it to delete the pid file.
9019
9020 2003-04-08  Havoc Pennington  <hp@redhat.com>
9021
9022         * test/data/invalid-messages/array-with-mixed-types.message:
9023         regression test that fails for the moment
9024
9025         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9026         tests for convenience
9027
9028         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9029         array of nil, it broke things.
9030
9031         * test/data/invalid-messages/array-of-nil.message: regression test
9032
9033         * test/data/valid-messages/array-of-array-of-uint32.message:
9034         happened to write this so added it to suite
9035
9036 2003-04-08  Havoc Pennington  <hp@redhat.com>
9037
9038         * bus/driver.c (bus_driver_handle_acquire_service): init
9039         retval/reply before checking name
9040
9041         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9042         recursion depth argument
9043
9044         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9045         in the public struct for future extension
9046
9047         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9048         typo
9049
9050         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9051         message
9052
9053         * doc/dbus-specification.sgml: fix typo
9054
9055 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9056
9057         Implemented recursive types, named types and new-style iters
9058
9059         * bus/driver.c:
9060         * glib/test-thread-client.c: (thread_func):
9061         * glib/test-thread-server.c: (handle_test_message):
9062         * test/test-service.c: (handle_echo):
9063         Update to new api
9064
9065         * dbus/Makefile.am:
9066         * dbus/dbus-dict.c:
9067         * dbus/dbus-dict.h:
9068         * dbus/dbus.h
9069         Remove DBusDict
9070
9071         * dbus/dbus-internals.c: (_dbus_type_to_string):
9072         Update for new types.
9073
9074         * dbus/dbus-marshal.[ch]:
9075         Implement recursive types and the new marshalling format.
9076         Remove hardcoded dict marshalling.
9077         Marshal named types.
9078
9079         * dbus/dbus-message-builder.c:
9080         Add BYTE_ARRAY.
9081         Remove references to old types
9082
9083         * dbus/dbus-message.[ch]:
9084         New non-refcounted iter API that supports recursive iters.
9085         Use iters for appending, including support for recursive
9086         iters.
9087         Add byte and named type support.
9088         Update everything to new marshalling formats.
9089         Add tests for new API.
9090
9091         * dbus/dbus-protocol.h:
9092         Remove old array types.
9093         Add types: BYTE, ARRAY, DICT, NAMED
9094
9095         * dbus/dbus-string.c:
9096         * dbus/dbus-sysdeps.c:
9097         Make parse_double locale safe.
9098
9099         * dbus/dbus-test-main.c:
9100         Call setlocale.
9101
9102         * dbus/dbus-test.c:
9103         Kill dict test
9104
9105         * doc/dbus-specification.sgml:
9106         Update spec
9107
9108         * test/data/incomplete-messages/missing-body.message:
9109         * test/data/invalid-messages/bad-boolean.message:
9110         * test/data/invalid-messages/bad-boolean-array.message:
9111         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9112         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9113         * test/data/invalid-messages/too-short-dict.message:
9114         * test/data/valid-messages/dict-simple.message:
9115         * test/data/valid-messages/dict.message:
9116         * test/data/valid-messages/emptiness.message:
9117         * test/data/valid-messages/lots-of-arguments.message:
9118         * test/data/valid-messages/no-padding.message:
9119         * test/data/valid-messages/recursive-types.message:
9120         Add missing NAME fields
9121         Fix up dicts & arrays
9122
9123         * test/data/invalid-messages/dict-with-nil-value.message:
9124         Removed, this is not invalid anymore.
9125
9126         * test/data/valid-messages/recursive-types.message:
9127         Add new test for deeply recursive types.
9128
9129 2003-04-07  Havoc Pennington  <hp@pobox.com>
9130
9131         * bus/driver.c (bus_driver_handle_acquire_service): return an
9132         error if you try to acquire a service that starts with ':'
9133
9134 2003-04-07  Havoc Pennington  <hp@redhat.com>
9135
9136         * doc/dbus-specification.sgml: require that base service names
9137         start with ':' and that the base service is created/deleted
9138         as first and last things a connection does on the bus
9139
9140         * bus/dispatch.c (check_existent_service_activation): lots more
9141         work on the activation test; it doesn't fully pass yet...
9142
9143         * test/test-service.c (main): fix so we don't memleak the
9144         connection to the message bus
9145         (filter_func): accept a message asking us to exit
9146
9147 2003-04-06  Havoc Pennington  <hp@pobox.com>
9148
9149         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9150         from Colin Walters
9151
9152         * configure.in: fixes to Qt detection from Colin Walters
9153
9154         * doc/Makefile.am: Only remove generated docbook dirs if they
9155         exist, from Colin Walters
9156
9157         * dbus/dbus-bus.c: change how we set well-known connections to
9158         NULL, so that it works if a single connection is stored in
9159         two well-known array slots.
9160
9161         * test/Makefile.am: remove a lot of stuff that isn't immediately
9162         useful, it's in CVS history if we want it.
9163
9164         * test/test-service.c: use dbus-mainloop instead of that
9165         watch.[hc] crack
9166
9167 2003-04-06  Havoc Pennington  <hp@pobox.com>
9168
9169         * dbus/Makefile.am: split lists of sources into stuff that goes in
9170         the library, util functions that go in the lib and are also used
9171         elsewhere, and util functions that are used in tests/daemon but
9172         don't go in the lib.
9173
9174         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9175         here so it can be used in test binaries also
9176
9177 2003-04-06  Havoc Pennington  <hp@pobox.com>
9178
9179         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9180         here in the parent process, so we can return an error if it
9181         fails. Also, move some of the code into the child so the parent
9182         is less hosed if we fail midway through.
9183
9184         * bus/bus.c (bus_context_new): move pidfile detection further up
9185         in the function, before we start overwriting sockets and such.
9186
9187         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9188
9189         * configure.in: add --with-system-pid-file and --with-system-socket
9190
9191 2003-04-06  Colin Walters  <walters@verbum.org>
9192
9193         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9194
9195         * bus/system.conf.in: Declare a pidfile.
9196
9197         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9198         create one (if appropriate).
9199
9200         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9201         (struct BusConfigParser) [pidfile]: New.
9202         (element_type_to_name, merge_included, start_busconfig_child)
9203         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9204         (bus_config_parser_unref): Free it.
9205         (bus_config_parser_get_pidfile): New function.
9206
9207         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9208
9209         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9210
9211         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9212
9213         * dbus/dbus-sysdeps.h: Prototype it.
9214
9215 2003-04-06  Havoc Pennington  <hp@pobox.com>
9216
9217         * bus/bus.c (bus_context_new): print the address in here, rather
9218         than in main(), because we need to do it before forking the daemon
9219
9220         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9221         on the service nonexistent error
9222
9223         * bus/driver.c (bus_driver_handle_acquire_service): set the
9224         sender on the AcquireService reply
9225
9226         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9227         server also listen on a UNIX socket so services can connect to it.
9228
9229 2003-04-06  Havoc Pennington  <hp@pobox.com>
9230
9231         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9232         so it detects deadlocks and also we actually init threads when
9233         debugging.
9234
9235 2003-04-06  Havoc Pennington  <hp@pobox.com>
9236
9237         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9238         save the domain socket name, and unlink it when we disconnect the
9239         server. Means that at least when we exit normally, we won't leave
9240         a bunch of junk in /tmp
9241
9242         * dbus/dbus-transport-unix.c
9243         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9244         memory management). (I was making a real change here but then
9245         didn't)
9246
9247 2003-04-06  Havoc Pennington  <hp@pobox.com>
9248
9249         * bus/bus.c (bus_context_new): fix wrong handling of
9250         server_data_slot_unref() in the error case.
9251
9252         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9253         "(condition) != 0" to _dbus_real_assert so that
9254         "_dbus_assert (pointer)" doesn't cause a warning
9255
9256         * bus/main.c (main): accept --print-address option to print out
9257         the message bus address
9258
9259         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9260
9261         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9262         "tmpdir" option to unix: address on client side
9263
9264         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9265         to unix: address
9266
9267         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9268         we can use to create sockets in the test suite.
9269
9270         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9271         cleanly. To be used for testing.
9272
9273         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9274
9275         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9276
9277         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9278         handle trying to call this when there's no servers active
9279
9280 2003-04-05  Havoc Pennington  <hp@pobox.com>
9281
9282         * NEWS: update
9283
9284         * configure.in: 0.8
9285
9286 2003-04-05  Havoc Pennington  <hp@pobox.com>
9287
9288         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9289         crash on startup. Need to get "try starting the daemon"
9290         in the test suite I guess. ;-)
9291
9292         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9293         tracked the number of open connections; it's better done in
9294         application-specific code as you want it to span all servers etc.
9295
9296 2003-04-05  Havoc Pennington  <hp@pobox.com>
9297
9298         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9299         patch from Colin Walters
9300
9301 2003-04-05  Havoc Pennington  <hp@pobox.com>
9302
9303         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9304         reality; in fact multiple mechanisms are allowed.
9305
9306         * dbus/dbus-internals.c (_dbus_real_assert)
9307         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9308         _dbus_assert_not_reached() into functions, so that they don't show
9309         up in basic block counts for test coverage, and don't use up as
9310         much disk space. Does mean slower execution speed though, so
9311         assumes --disable-asserts is the normal production case.
9312
9313 2003-04-05  Havoc Pennington  <hp@pobox.com>
9314
9315         * test/Makefile.am (dist-hook): also dist *.in files
9316
9317         * NEWS: update
9318
9319         * configure.in: 0.7
9320
9321 2003-04-05  Havoc Pennington  <hp@pobox.com>
9322
9323         * dbus/dbus-string.c: docs warning
9324
9325         * dbus/dbus-spawn.c: missing docs
9326
9327         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9328
9329 2003-04-05  Havoc Pennington  <hp@pobox.com>
9330
9331         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9332         magic from GLib
9333
9334         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9335         to -1 once we've reaped the babysitter
9336         (_dbus_babysitter_handle_watch): do as much work as we can, not
9337         just one go of it
9338
9339         * bus/activation.c: add code using DBusBabysitter so that we
9340         handle it when a service fails to start up properly.
9341         (bus_activation_service_created): don't remove the activation
9342         entries as we go, just let them get removed when we free the pending
9343         activation. Unref reply messages after sending them.
9344
9345 2003-04-05  Havoc Pennington  <hp@pobox.com>
9346
9347         * test/decode-gcov.c (main): print per-directory stats in the report
9348
9349         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9350
9351 2003-04-05  Havoc Pennington  <hp@pobox.com>
9352
9353         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9354
9355         * test/decode-gcov.c: hack up a little program to suck data
9356         out of gcov files. Yes this is sort of silly.
9357
9358         * configure.in: define something in config.h and do an
9359         AM_CONDITIONAL when gcov is enabled
9360
9361 2003-04-04  Havoc Pennington  <hp@redhat.com>
9362
9363         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9364         return a "babysitter" object that is used to monitor the status of
9365         the spawned process and reap it when required.
9366
9367         * test/test-segfault.c, test/test-exit.c,
9368         test/test-sleep-forever.c: binaries that do various lame things,
9369         used in the test suite.
9370
9371         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9372
9373 2003-04-03  Havoc Pennington  <hp@pobox.com>
9374
9375         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9376         in preparation for modifying it, dbus-sysdeps is getting
9377         a bit unmanageable.
9378
9379 2003-04-03  Havoc Pennington  <hp@redhat.com>
9380
9381         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9382         have multiple ones
9383
9384         * bus/*.[hc]: adapt to mainloop change
9385
9386 2003-04-03  Havoc Pennington  <hp@redhat.com>
9387
9388         * bus/activation.c (load_directory): fix up memleaks
9389         (bus_activation_entry_free): free the entry
9390
9391         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9392         we get one from the message bus; fix memleaks.
9393
9394         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9395
9396 2003-04-03  Havoc Pennington  <hp@pobox.com>
9397
9398         * bus/config-parser.c (bus_config_parser_unref): free
9399         list of mechanisms, bug discovered by test suite enhancements
9400         (putting system.conf and session.conf into suite)
9401
9402         * test/Makefile.am, test/test-service.c: add placeholder for a
9403         test service that we'll activate as part of test suite. Doesn't
9404         do anything yet.
9405
9406         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9407         setting NULL value, and use system malloc not dbus_malloc()
9408         when we have unavoidable memleakage.
9409
9410         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9411         didn't work, and support DBUS_BUS_ACTIVATION.
9412
9413         * bus/activation.c (child_setup): pass our well-known bus type to
9414         the child
9415
9416         * bus/config-parser.c: support <type> to specify well-known type
9417
9418         * doc/dbus-specification.sgml: document the env variables to
9419         locate well-known buses and find service activator
9420
9421 2003-04-02  Havoc Pennington  <hp@redhat.com>
9422
9423         * test/Makefile.am (all-local): add a rule to copy tests to
9424         builddir, so we can have generated tests. Use this to remove the
9425         silly hack for testing system.conf and session.conf. Will use this
9426         shortly to generate .service files pointing to test binaries.
9427
9428 2003-04-02  Havoc Pennington  <hp@redhat.com>
9429
9430         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9431         current alloc and needed new length, not max of the doubled
9432         allocation and needed new length. Also, when building tests,
9433         don't do the double-allocation stuff, just realloc every time.
9434
9435 2003-04-02  Havoc Pennington  <hp@redhat.com>
9436
9437         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9438         in error messages
9439         (_dbus_string_get_dirname): new
9440         (_dbus_sysdeps_test): new
9441         (_dbus_directory_open): include dirnames in error messages
9442
9443         * bus/config-parser.c: interpret <include> and <includedir> and
9444         <servicedir> relative to config file location if the given
9445         filename is not absolute.
9446
9447         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9448
9449 2003-04-02  Havoc Pennington  <hp@redhat.com>
9450
9451         * bus/connection.c (bus_transaction_send_error_reply): set sender
9452         service for the error, and unref the reply on success
9453
9454         * bus/activation.c: convert to use BusTransaction so OOM can be
9455         handled correctly
9456         (bus_activation_service_created): set sender of the message
9457
9458 2003-04-01  Havoc Pennington  <hp@redhat.com>
9459
9460         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9461         <includedir> (at least mostly)
9462
9463         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9464         first, then the user ID
9465
9466 2003-04-01  Havoc Pennington  <hp@pobox.com>
9467
9468         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9469         function
9470
9471         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9472
9473         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9474
9475         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9476         socket 0777, and unlink any existing socket.
9477
9478         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9479         the configuration file so specifies; set up auth mechanism
9480         restrictions
9481
9482         * bus/config-parser.c (bus_config_parser_content): add support
9483         for <fork> option and fill in code for <auth>
9484
9485         * bus/system.conf.in: add <fork/> to default configuration,
9486         and limit auth mechanisms to EXTERNAL
9487
9488         * doc/config-file.txt (Elements): add <fork>
9489
9490         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9491         (_dbus_change_identity): new function
9492
9493 2003-03-31  Havoc Pennington  <hp@redhat.com>
9494
9495         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9496         (_dbus_listen_unix_socket): fix off-by-one error in null
9497         termination spotted by Nalin
9498
9499 2003-03-31  Havoc Pennington  <hp@redhat.com>
9500
9501         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9502         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9503         having a real home directory available.
9504
9505 2003-03-31  Havoc Pennington  <hp@redhat.com>
9506
9507         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9508
9509         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9510
9511         * configure.in: add support for specifying a style of init script
9512         to install
9513
9514 2003-03-31  Havoc Pennington  <hp@redhat.com>
9515
9516         Fix some annoying DBusString API and fix all affected code.
9517
9518         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9519         max_length argument
9520         (_dbus_string_get_data): change to return string instead of using
9521         an out param
9522         (_dbus_string_get_const_data): ditto
9523         (_dbus_string_get_data_len): ditto
9524         (_dbus_string_get_const_data_len): ditto
9525
9526 2003-03-31  Havoc Pennington  <hp@redhat.com>
9527
9528         * bus/main.c (main): fix up the command line arguments to be nicer
9529
9530 2003-03-31  Havoc Pennington  <hp@redhat.com>
9531
9532         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9533         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9534         final location that lands in the config file
9535
9536         * bus/config-loader-expat.c (bus_config_load): fix type of
9537         XML_Parser variable
9538
9539         * doc/TODO: remove TODO item for dbus_bus_get()
9540
9541         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9542
9543 2003-03-31  Havoc Pennington  <hp@pobox.com>
9544
9545         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9546         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9547         argument since they are always client side
9548
9549         * dbus/dbus-server.c (dbus_server_get_address): new function
9550
9551         * bus/main.c (main): take the configuration file as an argument.
9552
9553         * test/data/valid-config-files/debug-allow-all.conf: new file to
9554         use with dispatch.c tests for example
9555
9556         * bus/test-main.c (main): require test data dir
9557
9558         * bus/bus.c (bus_context_new): change this to take a
9559         configuration file name as argument
9560
9561         * doc/config-file.txt (Elements): add <servicedir>
9562
9563         * bus/system.conf, bus/session.conf: new files
9564
9565         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9566         well-known socket if none set
9567
9568         * configure.in: create system.conf and session.conf
9569
9570 2003-03-30  Havoc Pennington  <hp@pobox.com>
9571
9572         * bus/config-parser.c: hacking
9573
9574         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9575         to shut down, since it could cause weirdness with the DBusList
9576         lock
9577
9578         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9579         link-oriented stack routines
9580         (alloc_link): free the mempool if the first alloc from it fails
9581
9582         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9583
9584         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9585         from GLib
9586         (_dbus_string_skip_white): new
9587
9588         * doc/config-file.txt (Elements): add <includedir>
9589
9590 2003-03-28  Havoc Pennington  <hp@pobox.com>
9591
9592         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9593         (_dbus_string_copy_data): new functions
9594
9595 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9596
9597         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9598         * dbus/dbus-bus.h:
9599         Add dbus_bus_get.
9600
9601         * dbus/dbus-memory.c:
9602         Fix a doc comment.
9603
9604 2003-03-28  Havoc Pennington  <hp@pobox.com>
9605
9606         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9607         I think it may have just been superstition. Not sure.
9608
9609         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9610         failures that were not being handled.
9611
9612         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9613
9614         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9615         row that will fail on out-of-memory.
9616
9617         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9618         function for testing out-of-memory handling.
9619
9620         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9621         allocation functions, they do map exactly to the expat ones.
9622
9623 2003-03-27  Havoc Pennington  <hp@redhat.com>
9624
9625         * bus/config-loader-libxml.c (bus_config_load): add another error
9626         check
9627
9628 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9629
9630         * doc/TODO:
9631         Add note about automatic service activation.
9632
9633         * doc/dbus-specification.sgml:
9634         Rename the specification and clarify a few things.
9635
9636 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9637
9638         * Doxyfile.in:
9639         * dbus/dbus-address.c:
9640         * dbus/dbus-dict.c:
9641         * dbus/dbus-marshal.c:
9642         * dbus/dbus-server-debug-pipe.c:
9643         * dbus/dbus-transport-unix.c:
9644         Fix documentation warnings.
9645
9646 2003-03-26  Havoc Pennington  <hp@pobox.com>
9647
9648         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9649         after every test so it's quick and easy to see which leaked, and
9650         so we test multiple dbus_shutdown() calls
9651
9652         * configure.in: change configure.in XML stuff to also support
9653         expat
9654
9655         * config-loader-libxml.c: some hacking
9656
9657         * config-loader-expat.c: some hacking
9658
9659         * config-parser.c: some hacking, plus tests
9660
9661 2003-03-25  Havoc Pennington  <hp@redhat.com>
9662
9663         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9664
9665         * configure.in: add --with-xml option to specify XML library,
9666         right now only libxml is supported.
9667
9668         * bus/config-loader-libxml.c, config-parser.c: sync some minor
9669         nonworking code between home and work, still just stubs
9670
9671 2003-03-24  Havoc Pennington  <hp@redhat.com>
9672
9673         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9674         file
9675
9676         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9677         NULL argument for "message" if the error is a well-known one,
9678         fill in a generic message in this case.
9679
9680         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9681         favor of DBusError
9682
9683         * bus/test.c (bus_test_flush_bus): add
9684
9685         * bus/policy.c (bus_policy_test): test code stub
9686
9687 2003-03-24  Havoc Pennington  <hp@pobox.com>
9688
9689         * bus/connection.c (bus_connections_setup_connection): set up
9690         the "can this user connect" function, but it always returns
9691         TRUE until we have a config file parser so we can have a config
9692         file that allows connections.
9693
9694 2003-03-23  Havoc Pennington  <hp@pobox.com>
9695
9696         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9697         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9698         the mutex, so we can check for proper memory management
9699         and OOM handling.
9700
9701         * dbus/dbus-dataslot.c: remove the mutex from
9702         DBusDataSlotAllocator and lock it manually when using it,
9703         to simplify fitting it into the global slots framework.
9704
9705         * dbus/dbus-threads.c (init_static_locks): rework how we're
9706         handling global locks so they are easily shut down.
9707
9708         * bus/policy.c (bus_policy_append_rule): fix
9709
9710         * bus/test-main.c (main): check for memleaks
9711
9712         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9713         test suite check for memleaks
9714
9715         * dbus/dbus-memory.c: add support in test mode for tracking
9716         number of outstanding blocks
9717
9718 2003-03-23  Havoc Pennington  <hp@pobox.com>
9719
9720         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9721         policies code
9722
9723         * dbus/dbus-hash.h: add ULONG hash keys
9724
9725         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9726         (_dbus_get_group_id): new function
9727
9728 2003-03-20  Havoc Pennington  <hp@redhat.com>
9729
9730         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9731         new function
9732         (dbus_connection_get_unix_user): new function
9733
9734 2003-03-20  Havoc Pennington  <hp@pobox.com>
9735
9736         * bus/connection.c (bus_connection_send_oom_error): assert that
9737         message has a sender
9738         (connection_execute_transaction): ditto
9739         (bus_connection_preallocate_oom_error): fix to set the sender, and
9740         set recipient to the destination service, not the bus driver
9741
9742         * bus/policy.c: hacking
9743
9744         * dbus/dbus-message.c (dbus_message_service_is): new function
9745         (dbus_message_sender_is): new
9746
9747 2003-03-19  Havoc Pennington  <hp@redhat.com>
9748
9749         * bus/policy.c: start sketching code for policy restrictions on
9750         what connections can do.
9751
9752 2003-03-18  Havoc Pennington  <hp@redhat.com>
9753
9754         * doc/TODO: some notes on high-level todo items. Little nitpick
9755         stuff is all in @todo, so no need to add it here.
9756
9757         * doc/config-file.txt: some notes on how config file might look
9758
9759 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
9760
9761         * configure.in: 0.6
9762
9763         * NEWS: Update.
9764
9765 2003-03-17  Havoc Pennington  <hp@redhat.com>
9766
9767         * dbus/dbus-internals.h: add gcc attributes so that
9768         our printf-style functions warn on bad arguments to
9769         format
9770
9771         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9772         format bug
9773
9774         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9775         printf format bug
9776
9777 2003-03-17  Havoc Pennington  <hp@redhat.com>
9778
9779         * bus/test-main.c (main): make it print something as it runs
9780         so make check doesn't look stuck
9781
9782         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9783         from CVS, now obsolete
9784
9785 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9786
9787         * bus/dispatch.c: (bus_dispatch):
9788         Refetch the service name since it may have been reallocated
9789         when dbus_message_set_sender was called.
9790
9791         * dbus/dbus-sysdeps.c: (_dbus_accept):
9792         Add address and address length variables and use them to stop
9793         valgrind from complaining.
9794
9795 2003-03-17  Havoc Pennington  <hp@pobox.com>
9796
9797         All tests pass, no memleaks, no valgrind complaints.
9798
9799         * bus/test.c: refcount handler_slot
9800
9801         * bus/connection.c (bus_connections_new): refcount
9802         connection_data_slot
9803
9804         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9805         bytes so that auth scripts pass.
9806
9807         * bus/dispatch.c: init message_handler_slot so it gets allocated
9808         properly
9809
9810         * bus/dispatch.c (message_handler_slot_ref): fix memleak
9811
9812         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9813         dealloc server_pipe_hash when no longer used for benefit of
9814         leak checking
9815
9816         * dbus/dbus-auth.c (process_command): memleak fix
9817
9818         * bus/dispatch.c (check_hello_message): memleak fix
9819
9820 2003-03-16  Havoc Pennington  <hp@pobox.com>
9821
9822         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9823
9824 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9825
9826         * bus/activation.c (bus_activation_activate_service): Append
9827         the pending activation entry to the list of pending activations.
9828
9829 2003-03-16  Havoc Pennington  <hp@pobox.com>
9830
9831         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9832         connections
9833
9834         * dbus/dbus-address.c (create_entry): fix OOM handling when
9835         failing to alloc entry->method
9836
9837 2003-03-16  Havoc Pennington  <hp@pobox.com>
9838
9839         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9840         the watch
9841
9842         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9843         add some missing dbus_set_result
9844
9845         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9846         alloc the DBusMessageHandler
9847
9848         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9849         the transport here, since we call this from the finalizer; it
9850         resulted in a double-finalize.
9851
9852         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9853         where we tried to use transport->connection that was NULL,
9854         happened when transport was disconnected early on due to OOM
9855
9856         * bus/*.c: adapt to handle OOM for watches/timeouts
9857
9858         * dbus/dbus-transport-unix.c: port to handle OOM during
9859         watch handling
9860
9861         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9862         reference to unused bytes instead of a copy
9863
9864         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9865         out of memory
9866
9867         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9868         FALSE on OOM
9869
9870         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9871         of memory
9872
9873 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9874
9875         * doc/dbus-specification.sgml:
9876         Document reply message for ActivateService.
9877
9878 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9879
9880         * bus/activation.c: (bus_pending_activation_entry_free),
9881         (bus_pending_activation_free), (bus_activation_new),
9882         (bus_activation_unref), (bus_activation_service_created),
9883         (bus_activation_activate_service):
9884         * bus/activation.h:
9885         * bus/bus.c: (bus_context_new):
9886         * bus/desktop-file.c: (new_section):
9887         * bus/driver.c: (bus_driver_send_service_deleted),
9888         (bus_driver_handle_activate_service):
9889         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9890         * bus/services.h:
9891         * dbus/dbus-connection.c:
9892         (dbus_connection_send_with_reply_and_block):
9893         * dbus/dbus-message.c: (dbus_message_append_args_valist):
9894         * dbus/dbus-protocol.h:
9895         Make activation work better. Now pending activations will be queued
9896         and the daemon won't try to activate services that are already registered.
9897
9898 2003-03-16  Havoc Pennington  <hp@pobox.com>
9899
9900         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
9901         connection data
9902
9903         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
9904         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
9905
9906 2003-03-16  Havoc Pennington  <hp@pobox.com>
9907
9908         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
9909         this. always run the test suite before commit...
9910
9911         * bus/*: adapt to DBusConnection API changes
9912
9913         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
9914         requires renaming stuff to avoid dbus_connection_dispatch name
9915         conflict.
9916
9917         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
9918         function
9919
9920         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9921         separate from _dbus_message_loader_return_buffer()
9922
9923         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
9924         this, because it's now always broken to use; the number of
9925         messages in queue vs. the number still buffered by the message
9926         loader is undefined/meaningless. Should use
9927         dbus_connection_get_dispatch_state().
9928         (dbus_connection_dispatch): rename from
9929         dbus_connection_dispatch_message
9930
9931 2003-03-16  Havoc Pennington  <hp@pobox.com>
9932
9933         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
9934         implementation
9935
9936 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9937
9938         * dbus/dbus-connection.c:
9939         (dbus_connection_send_with_reply_and_block):
9940         Decrease connection->n_incoming when removing an entry
9941         from the list.
9942         * dbus/dbus-dict.c: (dbus_dict_entry_free),
9943         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9944         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9945         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
9946         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
9947         (dbus_dict_get_byte_array):
9948         Handle NULL arrays and strings. Also add support for byte arrays.
9949
9950         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
9951         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
9952         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
9953         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
9954         (_dbus_demarshal_dict), (demarshal_and_validate_len),
9955         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
9956         * dbus/dbus-marshal.h:
9957         Add support for marshalling and demarshalling empty arrays and strings.
9958
9959         * dbus/dbus-message.c: (dbus_message_append_args_valist),
9960         (dbus_message_append_string_array),
9961         (dbus_message_iter_get_boolean),
9962         (dbus_message_iter_get_boolean_array),
9963         (dbus_message_iter_get_int32_array),
9964         (dbus_message_iter_get_uint32_array),
9965         (dbus_message_iter_get_double_array),
9966         (dbus_message_iter_get_byte_array),
9967         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
9968         (check_message_handling):
9969         Add support for getting empty arrays and dicts.
9970
9971         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
9972         Don't do any validation at all for now, that's better than just checking
9973         for ASCII.
9974
9975         * test/data/valid-messages/emptiness.message:
9976         New test message with lots of empty arrays.
9977
9978 2003-03-16  Havoc Pennington  <hp@pobox.com>
9979
9980         * dbus/dbus-connection.c
9981         (_dbus_connection_queue_received_message_link): new function that
9982         can't fail due to OOM
9983
9984         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
9985         new function pops a message together with a list link
9986         containing it.
9987
9988         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
9989         message queuing functions to avoid needing to alloc memory
9990
9991 2003-03-16  Havoc Pennington  <hp@pobox.com>
9992
9993         Oops - test code was only testing failure of around 30 of the
9994         mallocs in the test path, but it turns out there are 500+
9995         mallocs. I believe this was due to misguided linking setup such
9996         that there was one copy of dbus_malloc etc. in the daemon and one
9997         in the shared lib, and only daemon mallocs were tested. In any
9998         case, the test case now tests all 500+ mallocs, and doesn't pass
9999         yet, though there are lots of fixes in this patch.
10000
10001         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10002         this so that it doesn't need to allocate memory, since it
10003         has no way of indicating failure due to OOM (and would be
10004         annoying if it did).
10005
10006         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10007
10008         * bus/Makefile.am: rearrange to create two self-contained
10009         libraries, to avoid having libraries with overlapping symbols.
10010         that was resulting in weirdness, e.g. I'm pretty sure there
10011         were two copies of global static variables.
10012
10013         * dbus/dbus-internals.c: move the malloc debug stuff to
10014         dbus-memory.c
10015
10016         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10017         empty.
10018
10019         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10020
10021         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10022         on failure.
10023
10024         * bus/dispatch.c (bus_dispatch_add_connection): free
10025         message_handler_slot when no longer using it, so
10026         memory leak checkers are happy for the test suite.
10027
10028         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10029
10030         * bus/bus.c (new_connection_callback): disconnect in here if
10031         bus_connections_setup_connection fails.
10032
10033         * bus/connection.c (bus_connections_unref): fix to free the
10034         connections
10035         (bus_connections_setup_connection): if this fails, don't
10036         disconnect the connection, just be sure there are no side
10037         effects.
10038
10039         * dbus/dbus-string.c (undo_alignment): unbreak this
10040
10041         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10042         leaking
10043         (_dbus_auth_new): fix the order in which we free strings
10044         on OOM failure
10045
10046         * bus/connection.c (bus_connection_disconnected): fix to
10047         not send ServiceDeleted multiple times in case of memory
10048         allocation failure
10049
10050         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10051         get the base service name
10052         (dbus_bus_register_client): don't return base service name,
10053         instead store it on the DBusConnection and have an accessor
10054         function for it.
10055         (dbus_bus_register_client): rename dbus_bus_register()
10056
10057         * bus/dispatch.c (check_hello_message): verify that other
10058         connections on the bus also got the correct results, not
10059         just the one sending hello
10060
10061 2003-03-15  Havoc Pennington  <hp@pobox.com>
10062
10063         Make it pass the Hello handling test including all OOM codepaths.
10064         Now to do other messages...
10065
10066         * bus/services.c (bus_service_remove_owner): fix crash when
10067         removing owner from an empty list of owners
10068         (bus_registry_ensure): don't leave service in the list of
10069         a connection's owned services if we fail to put the service
10070         in the hash table.
10071
10072         * bus/connection.c (bus_connection_preallocate_oom_error): set
10073         error flag on the OOM error.
10074
10075         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10076         handle _dbus_transport_set_connection failure
10077
10078         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10079         to create watches up front and simply enable/disable them as
10080         needed.
10081         (unix_connection_set): this can now fail on OOM
10082
10083         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10084         of enabling/disabling a watch or timeout.
10085
10086         * bus/loop.c (bus_loop_iterate): don't touch disabled
10087         watches/timeouts
10088
10089         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10090
10091 2003-03-15  Havoc Pennington  <hp@pobox.com>
10092
10093         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10094         write useful test code, after all that futzing around ;-)
10095
10096         Test does not yet pass because we can't handle OOM in
10097         _dbus_transport_messages_pending (basically,
10098         dbus_connection_preallocate_send() does not prealloc the write
10099         watch). To fix this, I think we need to add new stuff to
10100         set_watch_functions, namely a SetEnabled function so we can alloc
10101         the watch earlier, then enable it later.
10102
10103         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10104         dbus-memory.c to the convenience lib
10105
10106         * bus/test.c: rename some static functions to keep them clearly
10107         distinct from stuff in connection.c. Handle client disconnection.
10108
10109 2003-03-14  Havoc Pennington  <hp@pobox.com>
10110
10111         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10112         transport, tests more of the real codepath. Set up clients
10113         with bus_setup_debug_client.
10114
10115         * bus/test.c (bus_setup_debug_client): function to set up debug
10116         "clients" on the main loop
10117
10118         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10119         support
10120
10121         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10122         server type
10123
10124         * dbus/dbus-server-debug.c: support a debug server based on pipes
10125
10126         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10127         (_dbus_close): new function
10128
10129         * configure.in: check for socketpair
10130
10131 2003-03-14  Havoc Pennington  <hp@redhat.com>
10132
10133         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10134         cheesy hack
10135
10136         * dbus/dbus-transport-debug.c: rework this a good bit to be
10137         less complicated. hopefully still works.
10138
10139         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10140         manually
10141
10142         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10143         after running it
10144
10145         * dbus/dbus-message.c (dbus_message_copy): rename from
10146         dbus_message_new_from_message, fix it up to copy
10147         all the message fields, add test case
10148
10149         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10150         not quite passing yet
10151
10152 2003-03-14  Havoc Pennington  <hp@pobox.com>
10153
10154         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10155         until no work remains" in test code. (the large diff here
10156         is just code movement, no actual changes)
10157
10158         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10159         1, no point waiting around for test code.
10160         (_dbus_server_debug_accept_transport): unref the timeout
10161         after adding it (right?)
10162
10163         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10164
10165 2003-03-13  Havoc Pennington  <hp@redhat.com>
10166
10167         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10168         out of memory
10169
10170         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10171         of memory
10172
10173         * dbus/dbus-connection.h: Make AddWatchFunction and
10174         AddTimeoutFunction return a bool so they can fail on out-of-memory
10175
10176         * bus/bus.c (bus_context_new): set up timeout handlers
10177
10178         * bus/connection.c (bus_connections_setup_connection): set up
10179         timeout handlers
10180
10181         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10182         can fail
10183
10184         * bus/bus.c (bus_context_new): adapt to changes
10185
10186         * bus/connection.c: adapt to changes
10187
10188         * test/watch.c: adapt to DBusWatch changes
10189
10190         * bus/dispatch.c (bus_dispatch_test): started adding this but
10191         didn't finish
10192
10193 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10194
10195         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10196
10197 2003-03-13  Havoc Pennington  <hp@pobox.com>
10198
10199         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10200         set up a test framework as for the library
10201
10202 2003-03-12  Havoc Pennington  <hp@pobox.com>
10203
10204         Throughout: purge global variables, introduce BusActivation,
10205         BusConnections, BusRegistry, etc. objects instead.
10206
10207         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10208         message bus object
10209
10210         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10211         going to redo this a bit differently I think
10212
10213 2003-03-12  Havoc Pennington  <hp@redhat.com>
10214
10215         Mega-patch that gets the message bus daemon initially handling
10216         out-of-memory. Work still needed. Also lots of random
10217         moving stuff to DBusError instead of ResultCode.
10218
10219         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10220
10221         * dbus/dbus-connection.c
10222         (dbus_connection_send_with_reply_and_block): use DBusError
10223
10224         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10225         DBusResultCode
10226
10227         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10228         code here, as the only failure possible is OOM.
10229
10230         * bus/connection.c (bus_connection_disconnect):
10231         rename bus_connection_disconnected as it's a notification only
10232
10233         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10234         "name" on get_args failure, should be done by get_args;
10235         don't disconnect client for bad args, just return an error.
10236         (bus_driver_handle_service_exists): ditto
10237
10238         * bus/services.c (bus_services_list): NULL-terminate returned array
10239
10240         * bus/driver.c (bus_driver_send_service_lost)
10241         (bus_driver_send_service_acquired): send messages from driver to a
10242         specific client to the client's unique name, not to the broadcast
10243         service.
10244
10245         * dbus/dbus-message.c (decode_header_data): reject messages that
10246         contain no name field
10247         (_dbus_message_get_client_serial): rename to
10248         dbus_message_get_serial and make public
10249         (_dbus_message_set_serial): rename from set_client_serial
10250         (_dbus_message_set_reply_serial): make public
10251         (_dbus_message_get_reply_serial): make public
10252
10253         * bus/connection.c (bus_connection_foreach): allow stopping
10254         iteration by returning FALSE from foreach function.
10255
10256         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10257         (dbus_connection_free_preallocated_send)
10258         (dbus_connection_preallocate_send): new API for sending a message
10259         without possibility of malloc failure.
10260         (dbus_connection_send_message): rename to just
10261         dbus_connection_send (and same for whole function family)
10262
10263         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10264
10265         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10266
10267         * bus/activation.c: handle/return errors
10268
10269         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10270
10271         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10272         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10273         (_dbus_result_from_errno): move to this file
10274
10275 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10276
10277         * dbus/dbus-marshal.c:
10278         (_dbus_marshal_set_string):
10279         Take a length argument so we can marshal the correct string
10280         length.
10281
10282         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10283         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10284         (_dbus_marshal_test):
10285         * dbus/dbus-marshal.h:
10286         Add support for marshalling and demarshalling dicts.
10287
10288         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10289         Add support for TYPE DICT.
10290
10291         * dbus/dbus-message.c: (set_string_field):
10292         Adjust header padding.
10293
10294         (dbus_message_append_args_valist), (dbus_message_append_dict),
10295         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10296         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10297         (check_message_handling), (check_have_valid_message):
10298         * dbus/dbus-message.h:
10299         Add functions for setting and getting dicts.
10300
10301         * dbus/dbus-protocol.h:
10302         Add DBUS_TYPE_DICT.
10303
10304         * dbus/dbus.h:
10305         Add dbus-dict.h
10306
10307         * doc/dbus-specification.sgml:
10308         Add information about how dicts are marshalled.
10309
10310         * test/data/invalid-messages/dict-with-nil-value.message:
10311         * test/data/invalid-messages/too-short-dict.message:
10312         * test/data/valid-messages/dict-simple.message:
10313         * test/data/valid-messages/dict.message:
10314         Add sample messages containing dicts.
10315
10316 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10317
10318         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10319
10320 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10321
10322         * dbus/Makefile.am:
10323         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10324         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10325         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10326         (dbus_dict_set_double), (dbus_dict_set_string),
10327         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10328         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10329         (dbus_dict_set_string_array), (_dbus_dict_test):
10330         * dbus/dbus-dict.h:
10331         Fix according to comments from Havoc.
10332
10333 2003-03-06  Michael Meeks  <michael@server.home>
10334
10335         * configure.in: if we don't have kde-config, disable have_qt.
10336
10337 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10338
10339         * dbus/Makefile.am:
10340         Add dbus-dict.[ch]
10341
10342         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10343         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10344         (dbus_dict_remove), (dbus_dict_get_value_type),
10345         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10346         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10347         (dbus_dict_put_double), (dbus_dict_put_string),
10348         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10349         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10350         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10351         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10352         (dbus_dict_get_double), (dbus_dict_get_string),
10353         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10354         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10355         (dbus_dict_get_string_array), (_dbus_dict_test):
10356         * dbus/dbus-dict.h:
10357         Add DBusDict implementation
10358
10359         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10360         * dbus/dbus-test.h:
10361         Add _dbus_dict_test
10362
10363 2003-03-04  Havoc Pennington  <hp@pobox.com>
10364
10365         * test/data/auth/*: adapt to changes
10366
10367         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10368         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10369         userid
10370
10371         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10372         more stuff from being in a context name, to make the protocol
10373         simpler to deal with
10374
10375         * dbus/dbus-errors.c (dbus_error_has_name): new function
10376         (dbus_error_is_set): new function
10377
10378         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10379         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10380
10381         * dbus/dbus-connection.c (dbus_connection_flush): also read
10382         messages during a flush operation
10383
10384         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10385
10386 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10387
10388         * configure.in: Check for gethostbyname on Solaris.
10389
10390         * dbus/dbus-transport.c: (_dbus_transport_open):
10391         Remove duplicate "tcp" entry.
10392
10393         * doc/dbus-specification.sgml:
10394         Clarify some things.
10395
10396 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10397
10398         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10399         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10400         (_dbus_keyring_test):
10401         * dbus/dbus-md5.c: (_dbus_md5_compute):
10402         * dbus/dbus-sha.c: (_dbus_sha_compute):
10403         Plug memory leaks.
10404
10405 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10406
10407         * README: Add some things.
10408
10409 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10410
10411         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10412         after case DBUS_TYPE_BOOELAN.
10413
10414 2003-03-02  Havoc Pennington  <hp@pobox.com>
10415
10416         * test/break-loader.c (randomly_set_extreme_ints): add test that
10417         sets really huge and small integers
10418
10419         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10420         that length of boolean array fits in the string, and that
10421         string has room for boolean value in single-bool case.
10422
10423         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10424         optional value to "ALIGN" command which is what to fill the
10425         alignment with.
10426
10427         * test/data/valid-messages/no-padding.message: add regression
10428         test for the message padding problem
10429
10430 2003-03-02  Havoc Pennington  <hp@pobox.com>
10431
10432         * dbus/dbus-message.c (decode_header_data): fix to always init
10433         message_padding, from Benjamin Dauvergne
10434
10435 2003-03-02  Havoc Pennington  <hp@pobox.com>
10436
10437         * configure.in: 0.5
10438
10439         * NEWS: Update.
10440
10441 2003-03-01  Joe Shaw  <joe@assbarn.com>
10442
10443         * configure.in: Check for "struct cmsgcred" and try to access its
10444         members for BSD-like unices.
10445
10446         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10447         _dbus_read_credentials_unix_socket().
10448         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10449         read() for reading the credential byte off the unix socket.  Use
10450         struct cmsgcred on systems that support it.
10451
10452 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10453
10454         * glib/Makefile.am:
10455         * configure.in:
10456         Make gthreads-2.0 dependency optional. Don't build thread test if
10457         its not found.
10458
10459 2003-02-27  Havoc Pennington  <hp@pobox.com>
10460
10461         * dbus/dbus-connection.c
10462         (dbus_connection_send_message_with_reply_and_block): fix doh!
10463         doh! doh! bug that resulted in never removing a reply from the
10464         queue, no wonder we called get_reply_serial so much ;-)
10465
10466         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10467         and client serial instead of demarshaling them every time
10468
10469 2003-02-27  Havoc Pennington  <hp@pobox.com>
10470
10471         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10472         more inlined, using dbus-string-private.h, speeds things up
10473         substantially
10474
10475         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10476         when freeing the string
10477         (_dbus_string_steal_data): fix for align offset
10478         (undo_alignment): new function
10479
10480 2003-02-26  Havoc Pennington  <hp@redhat.com>
10481
10482         All kinds of audit fixes from Owen, plus initial attempt to
10483         handle unaligned memory returned from malloc.
10484
10485         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10486         leave room for align_offset and nul byte
10487         (fixup_alignment): function to track an align_offset and
10488         ensure real->str is aligned
10489         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10490         to allow a nul byte plus align offset
10491         (_dbus_string_lock): fix overflow issue
10492         (_dbus_string_init_const_len): add assertions on sanity of len,
10493         assign allocated to be ALLOCATION_PADDING larger than len
10494         (set_length): fixup the overflow handling
10495         (_dbus_string_get_data_len): fix overflow in assertion
10496         (open_gap): detect overflow in size of gap to be opened
10497         (_dbus_string_lengthen): add overflow check
10498         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10499         (_dbus_string_append): add overflow check
10500         (_dbus_string_append_unichar): overflow
10501         (_dbus_string_delete): fix overflow in assertion
10502         (_dbus_string_copy_len): overflow in assertion
10503         (_dbus_string_replace_len): overflows in assertions
10504         (_dbus_string_find): change to implement in terms of
10505         _dbus_string_find_to
10506         (_dbus_string_find_to): assorted fixage
10507         (_dbus_string_equal_c_str): assert c_str != NULL,
10508         fix logic so the function works
10509         (_dbus_string_ends_with_c_str): fix overflow thingy
10510         (_dbus_string_base64_encode): overflow fix
10511         (_dbus_string_validate_ascii): overflow
10512         (_dbus_string_validate_nul): overflow
10513
10514 2003-02-26  Havoc Pennington  <hp@redhat.com>
10515
10516         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10517
10518 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10519
10520         * configure.in:
10521         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10522
10523         * dbus/dbus-connection.c:
10524         * dbus/dbus-connection.h:
10525         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10526         Add dbus_connection_set_wakeup_main_function and use it when queueing
10527         incoming and outgoing messages.
10528
10529
10530         * dbus/dbus-dataslot.c:
10531         Threadsafe usage of DBusDataSlotAllocator
10532
10533         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10534         dbus_new can fail.
10535
10536         * dbus/dbus-server-unix.c:
10537         Add todo comment
10538
10539         * glib/dbus-gmain.c:
10540         Implement the new wakeup functions for glib.
10541
10542         * glib/Makefile.am:
10543         * glib/test-thread-client.c:
10544         * glib/test-thread-server.c:
10545         * glib/test-thread.h:
10546         Initial cut at some thread test code. Not really done yet.
10547
10548 2003-02-26  Havoc Pennington  <hp@pobox.com>
10549
10550         * dbus/dbus-connection.c
10551         (dbus_connection_send_message_with_reply_and_block): fix crash
10552         where we ref'd the outgoing message instead of the returned reply
10553
10554         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10555         at the end of this function, so if we didn't need to read for
10556         authentication, we reinstall it for receiving messages
10557
10558         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10559         a NULL sender for peer-to-peer case
10560
10561         * dbus/dbus-transport-unix.c (check_read_watch): handle
10562         !authenticated case correctly
10563
10564         * glib/dbus-gmain.c: add support for DBusServer
10565
10566         * dbus/dbus-server.c: add data slot support
10567
10568         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10569         return values and handle errors
10570
10571         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10572         DBusConnection
10573
10574         * Doxyfile.in (INPUT): add glib subdir
10575
10576         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10577         setup_with_g_main instead of hookup_with_g_main; write docs
10578
10579 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10580
10581         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10582         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10583         * dbus/dbus-message.c: (dbus_message_append_boolean),
10584         (dbus_message_append_boolean_array),
10585         (dbus_message_get_args_valist), (_dbus_message_test):
10586         * dbus/dbus-message.h:
10587         * doc/dbus-specification.sgml:
10588         Various fixes as pointed out by Havoc.
10589
10590         * test/data/invalid-messages/bad-boolean-array.message:
10591         * test/data/invalid-messages/bad-boolean.message:
10592         Add invalid boolean value test cases.
10593
10594 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10595
10596         * dbus/dbus-internals.c: (_dbus_type_to_string):
10597         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10598         (_dbus_marshal_validate_arg):
10599         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10600         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10601         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10602         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10603         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10604         (dbus_message_iter_get_double),
10605         (dbus_message_iter_get_boolean_array), (message_iter_test):
10606         * dbus/dbus-message.h:
10607         * dbus/dbus-protocol.h:
10608         * doc/dbus-specification.sgml:
10609         * test/data/valid-messages/lots-of-arguments.message:
10610         Add support for boolean and boolean array types.
10611
10612 2003-02-23  Havoc Pennington  <hp@pobox.com>
10613
10614         * dbus/dbus-keyring.c: finish most of this implementation and
10615         simple unit test
10616
10617         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10618         these barf if the error isn't cleared to NULL
10619
10620         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10621         (_dbus_create_directory): new function
10622
10623         * dbus/dbus-errors.c (dbus_set_error): fix warning
10624
10625         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10626         (_dbus_string_hex_decode): new function
10627         (test_hex_roundtrip): test code
10628
10629         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10630
10631         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10632
10633         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10634         the save-to-temp/rename trick to atomically write the new file
10635         (_dbus_string_parse_uint): new function
10636
10637 2003-02-22  Havoc Pennington  <hp@pobox.com>
10638
10639         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10640
10641 2003-02-22  Havoc Pennington  <hp@pobox.com>
10642
10643         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10644         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10645
10646         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10647
10648         * dbus/test/data/sha-1: add US government test suite for SHA-1
10649
10650 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10651
10652         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10653         Make string arrays NULL-terminated.
10654
10655         * dbus/dbus-memory.c: (dbus_free_string_array):
10656         * dbus/dbus-memory.h:
10657         New function for freeing NULL-terminated string arrays.
10658
10659         * dbus/dbus-message-builder.c: (append_quoted_string),
10660         (_dbus_message_data_load):
10661         Add support for array types.
10662
10663         * dbus/dbus-message.c: (check_message_handling):
10664         Add more types as test cases.
10665
10666         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10667         (_dbus_string_parse_double):
10668         Add the start offset to the end offset.
10669
10670         * test/data/valid-messages/lots-of-arguments.message:
10671         New test message with lots of arguments.
10672
10673 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10674
10675         * dbus/dbus-message.c: (dbus_message_append_nil),
10676         (dbus_message_append_int32), (dbus_message_append_uint32),
10677         (dbus_message_append_double), (dbus_message_append_string),
10678         (dbus_message_append_int32_array),
10679         (dbus_message_append_uint32_array),
10680         (dbus_message_append_double_array),
10681         (dbus_message_append_byte_array),
10682         (dbus_message_append_string_array):
10683         Fix all out-of-memory handling in these functions.
10684
10685 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10686
10687         * dbus/dbus-message.c: (dbus_message_append_nil):
10688         Fix a silly.
10689
10690 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10691
10692         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10693         (dbus_message_append_nil), (dbus_message_append_int32_array),
10694         (dbus_message_append_uint32_array),
10695         (dbus_message_append_double_array),
10696         (dbus_message_append_byte_array),
10697         (dbus_message_append_string_array), (dbus_message_get_args_valist),
10698         (dbus_message_iter_get_int32_array),
10699         (dbus_message_iter_get_uint32_array),
10700         (dbus_message_iter_get_double_array),
10701         (dbus_message_iter_get_byte_array),
10702         (dbus_message_iter_get_string_array):
10703
10704         * dbus/dbus-message.h:
10705         Add functions for appending and getting arrays.
10706
10707 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10708
10709         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10710         element size at least 8 bytes, fixes mempool tests on
10711         64-bit machines.
10712
10713 2003-02-20  Alexander Larsson  <alexl@redhat.com>
10714
10715         * dbus/dbus-transport-unix.c (unix_do_iteration):
10716         Unlock the connection mutex during a blocking select call.
10717         Add todo about how we need a way to wake up the select.
10718
10719         * dbus/dbus-connection-internal.h:
10720         * dbus/dbus-connection.c:
10721         Add _dbus_connection_lock and _dbus_connection_unlock.
10722
10723 2003-02-19  Havoc Pennington  <hp@pobox.com>
10724
10725         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10726         Doxyfile.in, not Doxyfile
10727
10728         * dbus/dbus-keyring.c: do some hacking on this
10729
10730         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10731
10732         * dbus/dbus-errors.c (dbus_set_error_const): do not call
10733         dbus_error_init
10734         (dbus_set_error): remove dbus_error_init, check for message ==
10735         NULL *before* we sprintf into it, and add @todo about including
10736         system headers in this file
10737
10738         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10739
10740         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10741
10742         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10743         get various bits of user information based on either username
10744         or user ID
10745         (_dbus_homedir_from_username): new function
10746
10747 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
10748
10749         * configure.in:
10750         Add check for nonposix getpwnam_r
10751
10752         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10753         Align the pool element size to a sizeof (void *) boundary.
10754
10755         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10756         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10757         General Solaris fixes.
10758
10759         * test/data/valid-messages/simplest-manual.message:
10760         Explicitly state that we want little-endian packing.
10761
10762 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
10763
10764         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10765
10766         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10767         Added to create a transport connecting using a tcp/ip socket.
10768
10769         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10770         to a tcp socket at given host and port.
10771         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10772         hostname and port.
10773
10774         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10775
10776         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10777         Added to create a server listening on a TCP/IP socket.
10778
10779 2003-02-19  Havoc Pennington  <hp@pobox.com>
10780
10781         Throughout: mop up all the Doxygen warnings and undocumented
10782         stuff.
10783
10784         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10785         to search any paths.
10786
10787         * dbus/dbus-threads.c: move global mutex initializers to
10788         dbus-internals.h, multiple prototypes was confusing doxygen
10789         besides being kind of ugly
10790
10791         * Doxyfile (PREDEFINED): have Doxygen define
10792         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10793         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10794         (do not abuse the feature! it's for stuff like the autogenerated
10795         macros in dbus-md5.c, not just for things you don't feel like
10796         documenting...)
10797
10798 2003-02-18  Havoc Pennington  <hp@pobox.com>
10799
10800         * dbus/dbus-string.c (_dbus_string_zero): new function
10801
10802         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10803         wrap it in some dbus-friendly API
10804
10805         * dbus/dbus-types.h: add 16-bit types
10806
10807 2003-02-18  Joe Shaw  <joe@assbarn.com>
10808
10809         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10810         credentials from our currently running process.
10811         (get_word): Fix a buglet where we were copying the entire length
10812         instead of relative to our position.
10813
10814         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10815         keys on the stack... it's 640k of data.
10816
10817         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10818         read the credentials byte off the socket, even if we don't have
10819         SO_PEERCRED.
10820         (_dbus_poll): Implement poll() using select() for systems which
10821         don't have it.
10822
10823         * glib/test-dbus-glib.c (main): Print out an error if no
10824         parameters are given.
10825
10826         * test/data/auth/fallback.auth-script: Added.  Tests that a client
10827         can fallback to a secondary auth mechanism if the first fails.
10828
10829 2003-02-18  Havoc Pennington  <hp@pobox.com>
10830
10831         * AUTHORS: add Alex
10832
10833 2003-02-17  Havoc Pennington  <hp@pobox.com>
10834
10835         * doc/dbus-specification.sgml: lots of cosmetic
10836         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10837         env variable to DBUS_BUS_ADDRESS, s/client/application/,
10838         s/server/bus/ (except in authentication section). Add a section
10839         "Message Bus Message Routing"
10840
10841 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
10842
10843         Release 0.4
10844
10845         * NEWS: Update
10846
10847 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10848
10849         * doc/dbus-specification.sgml:
10850         Specification updates.
10851
10852 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10853
10854         * bus/activation.c: (bus_activation_init), (child_setup),
10855         (bus_activation_activate_service):
10856         * bus/activation.h:
10857         * bus/main.c: (main):
10858         Set DBUS_ADDRESS environment variable.
10859
10860         * dbus/dbus-errors.c: (dbus_set_error):
10861         Don't use va_copy since that's a C99 feature.
10862
10863         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10864         (_dbus_spawn_async):
10865         * dbus/dbus-sysdeps.h:
10866         Add child_setup_func to _dbus_spawn_async.
10867
10868         * doc/dbus-specification.sgml:
10869         Update specification.
10870
10871         * test/spawn-test.c: (setup_func), (main):
10872         Fix test.
10873
10874 2003-02-17  Alexander Larsson  <alexl@redhat.com>
10875
10876         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10877         Added todo.
10878
10879 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10880
10881         * doc/.cvsignore:
10882         * doc/Makefile.am:
10883         * doc/dbus-test-plan.sgml:
10884         Add test plan document.
10885
10886         * test/Makefile.am:
10887         Fix distcheck.
10888
10889 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10890
10891         * dbus/dbus-message.c: (decode_header_data),
10892         (_dbus_message_loader_return_buffer):
10893         Set the header padding amount when loading a message.
10894
10895 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10896
10897         * bus/dispatch.c: (send_one_message):
10898         Only send broadcast messages to registered connections.
10899
10900         * dbus/dbus-message.c: (dbus_message_name_is):
10901         * dbus/dbus-message.h:
10902         New convenience function.
10903
10904         * dbus/dbus-transport-debug.c: (do_reading):
10905         Only dispatch one message per run.
10906
10907         * test/Makefile.am:
10908         * test/bus-test.c: (new_connection_callback), (die),
10909         (test_hello_client1_handler), (test_hello_client2_handler),
10910         (test_hello_replies), (main):
10911
10912         * test/bus-test-loop.[ch]:
10913         Add these.
10914
10915 2003-02-16  Havoc Pennington  <hp@pobox.com>
10916
10917         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10918         backward conditional
10919
10920 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10921
10922         * dbus/dbus-connection.c:
10923         Implement sent_message_with_reply. (with_reply_and block is still
10924         busted).
10925         Made dispatch_message not lose message if OOM.
10926
10927         * dbus/dbus-errors.h:
10928         Add NoReply error (for reply timeouts).
10929
10930 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10931
10932         * dbus/dbus-hash.c (_dbus_hash_table_unref):
10933         Actually free keys and values when destroying hashtable.
10934
10935 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10936
10937         * dbus/dbus-auth.c: (client_try_next_mechanism):
10938         Plug a leak.
10939
10940         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
10941         Return TRUE if there's no thread implementation around.
10942
10943         * glib/dbus-gmain.c: (free_source),
10944         (dbus_connection_hookup_with_g_main):
10945         Make sure to remove the GSource when the connection is finalized.
10946
10947 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10948
10949         * bus/dispatch.c: (bus_dispatch_message_handler):
10950         * dbus/dbus-errors.h:
10951         Return an error if someone tries to send a message to a service
10952         that doesn't exist.
10953
10954 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10955
10956         * bus/activation.c: (load_directory), (bus_activation_init),
10957         (bus_activation_activate_service):
10958         * bus/activation.h:
10959         * bus/driver.c:
10960         (bus_driver_handle_activate_service), (bus_driver_handle_message):
10961         More work on the activation handling.
10962
10963         * dbus/dbus-errors.h:
10964         Add some error messages
10965
10966         * dbus/dbus-message.c: (dbus_message_new_error_reply):
10967         * dbus/dbus-message.h:
10968         New function that creates an error message.
10969
10970         * dbus/dbus-protocol.h:
10971         Add ACTIVATE_SERVER message.
10972
10973         * dbus/dbus-server-unix.c: (unix_handle_watch),
10974         (_dbus_server_new_for_domain_socket):
10975         Call _dbus_fd_set_close_on_exec.
10976
10977         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
10978         (_dbus_spawn_async), (_dbus_disable_sigpipe),
10979         (_dbus_fd_set_close_on_exec):
10980         * dbus/dbus-sysdeps.h:
10981         Add _dbus_fd_set_close_on exec function. Also add function that checks
10982         that all open fds are set to close-on-exec and warns otherwise.
10983
10984         * dbus/dbus-transport-unix.c:
10985         (_dbus_transport_new_for_domain_socket):
10986         Call _dbus_fd_set_close_on_exec.
10987
10988 2003-02-16  Havoc Pennington  <hp@pobox.com>
10989
10990         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
10991         allow people to avoid setting SIGPIPE to SIG_IGN
10992         (_dbus_connection_new_for_transport): disable SIGPIPE unless
10993         we've been asked not to
10994
10995 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10996
10997         * dbus/dbus-list.c: (_dbus_list_append_link),
10998         (_dbus_list_prepend_link):
10999         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11000         (dbus_realloc):
11001         Warning fixes.
11002
11003 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11004
11005         * bus/Makefile.am:
11006         * bus/activation.c: (bus_activation_entry_free),
11007         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11008         * bus/activation.h:
11009         * bus/main.c: (main):
11010         Add simple activation support, doesn't work yet though.
11011
11012 2003-02-15   Zack Rusin  <zack@kde.org>
11013
11014         * qt/dbus-qthread.cpp:  small casting fix
11015
11016 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11017
11018         * dbus/dbus-errors.c: (dbus_set_error):
11019         * dbus/dbus-errors.h:
11020         Add a few errors and make dbus_set_error void.
11021
11022         * dbus/dbus-sysdeps.c:
11023         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11024         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11025         * dbus/dbus-sysdeps.h:
11026         Add _dbus_spawn_async.
11027
11028         * test/spawn-test.c: (main):
11029         Test for _dbus_spawn_async.
11030
11031 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11032
11033         * dbus/dbus-internals.h:
11034         Fix build without tests.
11035
11036         * dbus/dbus-list.c: (alloc_link):
11037         Fix a segfault when a malloc fails.
11038
11039         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11040         (dbus_malloc0), (dbus_realloc):
11041         Add support for malloc debugging.
11042
11043 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11044
11045         * dbus/dbus-threads.c:
11046         * dbus/dbus-threads.h:
11047         Add condvars. Remove static mutext from API.
11048         Implement static mutexes by initializing them from threads_init.
11049
11050         * glib/dbus-gthread.c:
11051         * qt/dbus-qthread.cpp:
11052         Update with the thread api changes.
11053
11054
11055         * dbus/dbus-list.c:
11056         * dbus/dbus-list.h:
11057         Turn StaticMutex into normal mutex + init function.
11058         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11059         _dbus_list_append_link, _dbus_list_prepend_link
11060
11061
11062         * dbus/dbus-sysdeps.c:
11063         * dbus/dbus-sysdeps.h:
11064         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11065         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11066
11067         * dbus/dbus-protocol.h:
11068         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11069
11070         * dbus/dbus-message.c:
11071         Make ref/unref atomic.
11072         Fix some docs.
11073
11074         * dbus/dbus-connection-internal.h:
11075         * dbus/dbus-connection.c:
11076         * dbus/dbus-connection.h:
11077         Make threadsafe.
11078         Change _peek to _borrow,_return & _steal_borrowed.
11079         Change disconnect callback to event.
11080         Make dbus_connection_dispatch_messages reentrant.
11081
11082         * dbus/dbus-transport.c:
11083         Don't ref the connection on calls to the transport
11084         implementation.
11085
11086         * dbus/dbus-message-handler.c:
11087         Make threadsafe.
11088
11089         * glib/dbus-gmain.c:
11090         Don't use peek_message anymore
11091
11092         * test/Makefile.am:
11093         * test/debug-thread.c:
11094         * test/debug-thread.h:
11095         Simple thread implementation that asserts() on deadlocks in
11096         single-threaded code.
11097
11098         * test/bus-test.c:
11099         (main) Call debug_threads_init.
11100
11101         * test/watch.c:
11102         Use disconnect message instead of disconnect callback.
11103
11104         * bus/connection.c:
11105         * bus/connection.h:
11106         Don't call dbus_connection_set_disconnect_function. Instead export
11107         bus_connection_disconnect.
11108
11109         * bus/dispatch.c:
11110         Call bus_connection_disconnect when we get a disconnected message.
11111
11112 2003-02-15  Havoc Pennington  <hp@pobox.com>
11113
11114         * dbus/dbus-message.c (dbus_message_new): fool around with the
11115         docs
11116
11117 2003-02-14  Havoc Pennington  <hp@pobox.com>
11118
11119         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11120
11121         * dbus/dbus-memory.c: fail if the debug functions indicate we
11122         should
11123
11124         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11125         (_dbus_decrement_fail_alloc_counter): debug functions to
11126         simulate memory allocation failures
11127
11128 2003-02-14  Havoc Pennington  <hp@pobox.com>
11129
11130         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11131         to DBusError
11132
11133 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11134
11135         * bus/driver.c: (bus_driver_handle_hello):
11136         * bus/driver.h:
11137         * bus/services.c: (bus_service_lookup):
11138         Reorder message sending so we get a more sane order.
11139
11140         * test/bus-test.c: (message_handler):
11141         Fix tyop.
11142
11143 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11144
11145         * bus/driver.c: (bus_driver_send_service_deleted),
11146         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11147         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11148         (bus_driver_send_welcome_message),
11149         (bus_driver_handle_list_services),
11150         (bus_driver_handle_acquire_service),
11151         (bus_driver_handle_service_exists):
11152         * dbus/dbus-bus.c: (dbus_bus_register_client),
11153         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11154         * dbus/dbus-errors.c: (dbus_result_to_string):
11155         * dbus/dbus-errors.h:
11156         * dbus/dbus-message.c: (dbus_message_append_args),
11157         (dbus_message_append_args_valist), (dbus_message_get_args),
11158         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11159         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11160         (dbus_message_iter_get_byte_array),
11161         (dbus_message_iter_get_string_array), (message_iter_test),
11162         (check_message_handling), (_dbus_message_test):
11163         * dbus/dbus-message.h:
11164         * test/bus-test.c: (main):
11165         Change fields to arguments in messages, so that they won't be
11166         confused with header fields.
11167
11168         * glib/test-dbus-glib.c: (main):
11169         Remove append_fields from hello message.
11170
11171 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11172
11173         * dbus/dbus-errors.c:
11174         * dbus/dbus-message.c:
11175         * dbus/dbus-string.c:
11176         Documentation fixes.
11177
11178 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11179
11180         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11181         (remove_timeout):
11182         Implement support for timeouts in dbus-glib.
11183
11184 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11185
11186         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11187         * dbus/dbus-message.c: (process_test_subdir):
11188         * test/break-loader.c: (find_breaks_based_on):
11189         Plug some memory leaks.
11190
11191 2003-02-13  Richard Hult  <rhult@codefactory.se>
11192
11193         * bus/main.c: Fix build.
11194
11195         * dbus/dbus-errors.h:
11196         * dbus/dbus-errors.c: Fix copyright for Anders.
11197
11198 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11199
11200         * bus/Makefile.am:
11201         Add utils.[ch]
11202
11203         * bus/connection.c: (bus_connection_foreach):
11204         Fix a warning.
11205
11206         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11207         (unescape_string), (new_section), (parse_section_start),
11208         (parse_key_value), (report_error), (bus_desktop_file_load),
11209         (bus_desktop_file_get_string):
11210         * bus/desktop-file.h:
11211         Use DBusError for error reporting.
11212
11213         * bus/dispatch.c: (send_one_message),
11214         (bus_dispatch_message_handler):
11215         * bus/driver.c: (bus_driver_send_service_deleted),
11216         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11217         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11218         (bus_driver_send_welcome_message),
11219         (bus_driver_handle_list_services),
11220         (bus_driver_handle_acquire_service),
11221         (bus_driver_handle_service_exists):
11222         * bus/loop.c: (bus_loop_run):
11223         * bus/main.c:
11224         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11225
11226         * bus/utils.c: (bus_wait_for_memory):
11227         * bus/utils.h:
11228         New files with general utility functions.
11229
11230         * dbus/dbus-internals.h:
11231         Remove _DBUS_HANDLE_OOM.
11232
11233 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11234
11235         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11236         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11237         * dbus/dbus-errors.h:
11238         Add DBusError structure.
11239
11240 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11241
11242         * test/data/valid-messages/standard-acquire-service.message:
11243         * test/data/valid-messages/standard-hello.message:
11244         * test/data/valid-messages/standard-list-services.message:
11245         * test/data/valid-messages/standard-service-exists.message:
11246         Add some standard messages.
11247
11248 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11249
11250         * bus/driver.c: (bus_driver_send_welcome_message),
11251         (bus_driver_handle_list_services),
11252         (bus_driver_handle_acquire_service),
11253         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11254         Update for API changes in libdbus.
11255
11256         * dbus/dbus-message.c: (dbus_message_new_reply):
11257         * dbus/dbus-message.h:
11258         Remove the name argument. The spec states that replies shouldn't
11259         have a name.
11260
11261 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11262
11263         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11264         (report_error), (bus_desktop_file_load), (lookup_section),
11265         (lookup_line), (bus_desktop_file_get_raw),
11266         (bus_desktop_file_get_string):
11267         * bus/desktop-file.h:
11268         Some fixes, and new functions for getting a key value from a section.
11269
11270 2003-02-13  Havoc Pennington  <hp@pobox.com>
11271
11272         * test/data/auth/fail-after-n-attempts.auth-script: new test
11273
11274         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11275         reject the client.
11276
11277 2003-02-13  Havoc Pennington  <hp@pobox.com>
11278
11279         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11280         dbus_credentials_match were backward
11281
11282         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11283         NO_CREDENTIALS and ROOT_CREDENTIALS
11284
11285         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11286         into here. Never process more commands after we've reached an
11287         end state; store further data as unused bytes.
11288
11289         * test/data/auth/*: add more auth tests
11290
11291         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11292         command to match exact string and EXPECT_UNUSED to match unused
11293         bytes
11294
11295         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11296
11297 2003-02-12  Havoc Pennington  <hp@pobox.com>
11298
11299         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11300         \r off of popped lines
11301
11302         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11303         scripts
11304
11305         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11306         SEND, append \r\n
11307
11308 2003-02-12  Havoc Pennington  <hp@pobox.com>
11309
11310         * dbus/Makefile.am: remove break-loader from the build, since it
11311         moved.
11312
11313         * configure.in: add --enable-gcov to turn on coverage profiling
11314         flags and disable optimization
11315
11316 2003-02-10  Havoc Pennington  <hp@pobox.com>
11317
11318         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11319         initial cut at test framework for DBusAuth from laptop.
11320         Doesn't quite work yet but it compiles and I need to get
11321         it off the 266mhz laptop. ;-)
11322
11323         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11324         fix a memleak in error case
11325
11326 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11327
11328         * bus/Makefile.am:
11329         * bus/desktop-file.c:
11330         * bus/desktop-file.h:
11331         Add a desktop file parser.
11332
11333 2003-02-11  Zack Rusin  <zack@kde.org>
11334
11335         * qt/message.[h|cpp]: sample implementation
11336         of the KDE wrapper for DBusMessage
11337
11338 2003-02-09  Zack Rusin  <zack@kde.org>
11339
11340         * test/bus-test.c: make_it_compile
11341         * doc/dbus-specification.sgml: minimal semantic fix
11342
11343 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11344
11345         Release 0.3
11346
11347         * NEWS: Update
11348
11349 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11350
11351         * dbus/Makefile.am:
11352         * dbus/dbus-break-loader.c:
11353         * test/Makefile.am:
11354         * test/break-loader.c:
11355         Move dbus-break-loader to test/ and rename it to break-loader.
11356
11357 2003-02-02  Havoc Pennington  <hp@pobox.com>
11358
11359         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11360         for code to manage cookies in your home directory
11361
11362         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11363
11364         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11365         to authenticate, then disconnect the client.
11366
11367 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11368
11369         * dbus/dbus-message.c (dbus_message_append_fields):
11370         Correct docs.
11371
11372 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11373
11374         * doc/dbus-specification.sgml:
11375         Update address format section.
11376
11377 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11378
11379         * test/Makefile.am:
11380         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11381         (message_handler), (new_connection_callback), (loop_quit),
11382         (loop_run), (main):
11383         Add bus test.
11384
11385 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11386
11387         * bus/driver.c: (bus_driver_handle_service_exists):
11388         Simplify the code a bit.
11389
11390         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11391         Fix a silly.
11392
11393 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11394
11395         * bus/Makefile.am:
11396         Add libdbus-daemon.la and link to it.
11397
11398 2003-02-01  James Willcox  <jwillcox@gnome.org>
11399
11400         * bus/driver.c: (bus_driver_handle_own_service):
11401         Actually include the service reply code in the message.
11402
11403 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11404
11405         * bus/driver.c: (bus_driver_handle_service_exists):
11406         Don't unref the incoming message.
11407
11408 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11409
11410         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11411
11412 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11413
11414         * dbus/dbus-server.c: (dbus_server_listen):
11415         * dbus/dbus-transport.c: (_dbus_transport_open):
11416         ifdef out the calls to the debug transport and server.
11417
11418 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11419
11420         * dbus/dbus-watch.c (dbus_watch_get_flags):
11421         Add note in the docs that ERROR or HANGUP won't be returned
11422         and are assumed always on.
11423
11424         * glib/dbus-gmain.c (add_watch):
11425         Always add IO_ERR | IO_HUP
11426
11427         * dbus/dbus-message.h:
11428         Add semicolon after dbus_message_iter_get_string_array().
11429         Makes qt code build again
11430
11431 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11432
11433         * bus/driver.c: (create_unique_client_name),
11434         (bus_driver_handle_hello):
11435         Don't take a name, just use a numeric id to identify
11436         each client.
11437
11438         * dbus/Makefile.am:
11439         * dbus/dbus-bus.c: (dbus_bus_register_client),
11440         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11441         * dbus/dbus-bus.h:
11442         Add new convenience functions for communicating with the bus.
11443
11444         * dbus/dbus-message.h:
11445
11446         * dbus/dbus-protocol.h:
11447         Fix a typo.
11448
11449 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11450
11451         * dbus/dbus-message.c (dbus_message_append_fields):
11452         Add some more doc comments.
11453
11454 2003-02-01  Havoc Pennington  <hp@pobox.com>
11455
11456         * dbus/dbus-break-loader.c (randomly_modify_length): change
11457         a 4-byte value in the message as if it were a length
11458
11459         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11460         execute bit on saved files
11461
11462 2003-02-01  Havoc Pennington  <hp@pobox.com>
11463
11464         * dbus/dbus-break-loader.c (main): new program to find messages
11465         that break the loader.
11466
11467         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11468         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11469
11470         * dbus/dbus-string.c (_dbus_string_set_byte): new
11471
11472 2003-01-31  Havoc Pennington  <hp@pobox.com>
11473
11474         * dbus/dbus-message.c: refactor the test code to be more general,
11475         in preparation for writing a "randomly permute test cases to
11476         try to break the loader" program.
11477
11478 2003-01-31  Havoc Pennington  <hp@pobox.com>
11479
11480         * doc/dbus-specification.sgml: work on the specification
11481
11482         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11483         the protocol version of the message.
11484
11485         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11486         no longer specifies that.
11487         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11488         1/2/3/4)
11489
11490         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11491         "break" for DBUS_TYPE_NIL, remove @todo
11492
11493 2003-01-31  Havoc Pennington  <hp@pobox.com>
11494
11495         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11496         just set_is_error/get_is_error as this is a commonly-used
11497         function, and write docs.
11498
11499 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11500
11501         * dbus/dbus-address.c: (dbus_address_entry_free):
11502         Free key and value lists.
11503
11504         * dbus/dbus-internals.c: (_dbus_type_to_string):
11505         Add the types we didn't have.
11506
11507         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11508         (_dbus_marshal_validate_arg):
11509         Add NIL types.
11510
11511         * dbus/dbus-message.c: (dbus_message_set_sender):
11512         Remove todo about being able to set sender to NULL.
11513
11514         (dbus_message_set_is_error_reply),
11515         (dbus_message_get_is_error_reply):
11516         * dbus/dbus-message.h:
11517         New functions.
11518
11519         * dbus/dbus-protocol.h:
11520         Add error reply flag.
11521
11522         * test/data/valid-messages/opposite-endian.message:
11523         Add NIL type to test.
11524
11525 2003-01-31  Havoc Pennington  <hp@pobox.com>
11526
11527         * doc/dbus-specification.sgml: fully specify the header.  Add
11528         flags and major protocol version, and change header/body len to
11529         unsigned.
11530
11531         * dbus/dbus-message-builder.c (append_saved_length): append length
11532         as uint32
11533
11534         * dbus/dbus-message.c (dbus_message_create_header): change header
11535         length and body length to unsigned. Add the new fields from the
11536         spec
11537         (_dbus_message_loader_return_buffer): unsigned header/body len
11538
11539 2003-01-30  Havoc Pennington  <hp@pobox.com>
11540
11541         * dbus/dbus-auth.c: rework to use only REJECTED, no
11542         MECHANISMS
11543
11544         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11545         use REJECTED, suggested by Mark McLoughlin
11546
11547 2003-01-30  Havoc Pennington  <hp@pobox.com>
11548
11549         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11550         a better way to report errors here. e.g.  "unix address lacks
11551         path" or something. also "no such file" when the path doesn't
11552         exist, etc.
11553
11554         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11555         leaking list nodes
11556         (dbus_parse_address): add @todo about documenting address format,
11557         and allowing , and ; to be escaped
11558
11559 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11560
11561         * dbus/Makefile.am:
11562         Add dbus-address.[ch]
11563
11564         * dbus/dbus-address.c: (dbus_address_entry_free),
11565         (dbus_address_entries_free), (create_entry),
11566         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11567         (dbus_parse_address), (_dbus_address_test):
11568         * dbus/dbus-address.h:
11569         New files for dealing with address parsing.
11570
11571         * dbus/dbus-connection.c:
11572         Document timeout functions.
11573
11574         * dbus/dbus-message.c:
11575         Document dbus_message_new_from_message.
11576
11577         * dbus/dbus-server-debug.c:
11578         Document.
11579
11580         * dbus/dbus-server.c: (dbus_server_listen):
11581         Parse address and use correct server implementation.
11582
11583         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11584         * dbus/dbus-string.h:
11585         New function with test.
11586
11587         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11588         * dbus/dbus-test.h:
11589         Add address tests.
11590
11591         * dbus/dbus-transport-debug.c:
11592         Document.
11593
11594         * dbus/dbus-transport.c: (_dbus_transport_open):
11595         Parse address and use correct transport implementation.
11596
11597 2003-01-30  Havoc Pennington  <hp@pobox.com>
11598
11599         * dbus/dbus-message.c: use message->byte_order instead of
11600         DBUS_COMPILER_BYTE_ORDER throughout.
11601         (dbus_message_create_header): pad header to align the
11602         start of the body of the message to 8-byte boundary
11603
11604         * dbus/dbus-marshal.h: make all the demarshalers take const
11605         DBusString arguments.
11606
11607         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11608         validate message args here, so we don't have to do slow validation
11609         later, and so we catch bad messages as they are incoming. Also add
11610         better checks on header_len and body_len. Also fill in
11611         message->byte_order
11612
11613         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11614         implemented properly)
11615         (_dbus_string_validate_nul): new function to check all-nul
11616
11617         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11618         get_arg_end_pos and remove all validation
11619         (_dbus_marshal_validate_arg): actually do validation here.
11620
11621 2003-01-29  Havoc Pennington  <hp@pobox.com>
11622
11623         * dbus/dbus-message.c (check_message_handling): fix assertion
11624         failure on set_client_serial
11625
11626 2003-01-28  Havoc Pennington  <hp@pobox.com>
11627
11628         * dbus/dbus-server-debug.c: Add doc section comments
11629
11630         * dbus/dbus-transport-debug.c: add doc section comments
11631
11632 2003-01-28  Havoc Pennington  <hp@redhat.com>
11633
11634         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11635         the reverse order from how I had it
11636         (_dbus_string_base64_encode): reverse encoding order. I was
11637         basically byteswapping everything during encoding.
11638
11639 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11640
11641         * dbus/dbus-connection-internal.h:
11642         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11643         (_dbus_connection_remove_timeout):
11644         Add functions for adding and removing timeouts.
11645
11646         * dbus/dbus-message.c: (dbus_message_new_from_message):
11647         Add new function that takes a message and creates an exact
11648         copy of it, but with the refcount set to 1.
11649         (check_message_handling):
11650         Fix build error.
11651
11652         * dbus/dbus-server-protected.h:
11653         * dbus/dbus-server.c: (_dbus_server_init_base),
11654         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11655         (dbus_server_set_timeout_functions):
11656         (_dbus_server_remove_timeout):
11657         New functions so that a server can add and remove timeouts.
11658
11659         (dbus_server_listen):
11660         Add commented out call to dbus_server_debug_new.
11661
11662         * dbus/dbus-timeout.c: (_dbus_timeout_new):
11663         Actually set the handler, doh.
11664
11665         * dbus/dbus-transport.c: (_dbus_transport_open):
11666         Add commented out call to dbus_transport_debug_client_new.
11667
11668         * dbus/Makefile.am:
11669         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11670
11671 2003-01-28  Havoc Pennington  <hp@pobox.com>
11672
11673         * dbus/dbus-message.c (check_message_handling): function to check
11674         on the loaded message, iterates over it etc.
11675
11676 2003-01-28  Havoc Pennington  <hp@pobox.com>
11677
11678         * test/Makefile.am (dist-hook): fix make distdir
11679
11680         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11681
11682 2003-01-27  Havoc Pennington  <hp@pobox.com>
11683
11684         * dbus/dbus-mempool.c (time_for_size): replace printf with
11685         _dbus_verbose
11686
11687         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11688         empty lines; fix the SAVE_LENGTH stuff to be
11689         START_LENGTH/END_LENGTH so it actually works; couple other
11690         bugfixes
11691
11692         * test/Makefile.am (dist-hook): add dist-hook for .message files
11693
11694         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11695         can be constant or locked.
11696         (_dbus_string_free): allow freeing a const string as
11697         documented/intended
11698
11699         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11700
11701         * dbus/dbus-test-main.c (main): take an argument which is the
11702         directory containing test data
11703
11704         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11705         argument to this and load all the messages in test/data/
11706         checking that they can be loaded or not loaded as appropriate.
11707
11708 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
11709
11710         * bus/dispatch.c: (bus_dispatch_message_handler):
11711         Dispatch messages sent to services.
11712
11713         * bus/driver.c: (bus_driver_send_service_deleted),
11714         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11715         (bus_driver_send_service_acquired):
11716         Add helper functions for sending service related messages.
11717
11718         (bus_driver_send_welcome_message):
11719         Send HELLO_REPLY instead of WELCOME.
11720
11721         (bus_driver_handle_list_services):
11722         Send LIST_SERVICES_REPLY instead of SERVICES.
11723
11724         (bus_driver_handle_own_service),
11725         (bus_driver_handle_service_exists):
11726         New message handlers.
11727
11728         (bus_driver_handle_message):
11729         Invoke new message handlers.
11730
11731         (bus_driver_remove_connection):
11732         Don't remove any services here since that's done automatically
11733         by bus_service_remove_owner now.
11734
11735         * bus/driver.h:
11736         New function signatures.
11737
11738         * bus/services.c: (bus_service_add_owner):
11739         Send ServiceAcquired message if we're the only primary owner.
11740
11741         (bus_service_remove_owner):
11742         Send ServiceAcquired/ServiceLost messages.
11743
11744         (bus_service_set_prohibit_replacement),
11745         (bus_service_get_prohibit_replacement):
11746         Functions for setting prohibit replacement.
11747
11748         (bus_service_has_owner):
11749         New function that checks if a connection is in the owner queue of
11750         a certain service.
11751
11752         * bus/services.h:
11753         Add new function signatures.
11754
11755         * dbus/dbus-list.c: (_dbus_list_test):
11756         Add tests for _dbus_list_remove_last and traversing the list backwards.
11757
11758         * dbus/dbus-list.h:
11759         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11760         go any further, so return NULL then.
11761
11762         * dbus/dbus-protocol.h:
11763         Add new messages, service flags and service replies.
11764
11765 2003-01-26  Havoc Pennington  <hp@pobox.com>
11766
11767         * dbus/dbus-message-builder.c: implement, completely untested.
11768
11769         * test/data/*: add data to be used in testing.
11770         ".message" files are our simple loadable text format.
11771         ".message-raw" will be binary dumps of messages.
11772
11773         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11774
11775 2003-01-26  Havoc Pennington  <hp@pobox.com>
11776
11777         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11778
11779         * dbus/dbus-errors.c (dbus_result_to_string): add
11780         file errors
11781
11782         * dbus/dbus-message-builder.c: new file, will contain code to load
11783         up messages from files. Not implemented yet.
11784
11785 2003-01-26  Havoc Pennington  <hp@pobox.com>
11786
11787         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11788         the sender by setting to NULL
11789
11790 2003-01-26  Havoc Pennington  <hp@pobox.com>
11791
11792         The unit tests pass, but otherwise untested.  If it breaks, the
11793         tests should have been better. ;-)
11794
11795         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11796         the connection.
11797
11798         * dbus/dbus-message.c: redo everything so we maintain
11799         message->header as the only copy of the various fields.
11800         This avoids the possibility of out-of-memory in some cases,
11801         for example dbus_message_lock() can't run out of memory anymore,
11802         and avoids extra copying. Figured I may as well go ahead and do
11803         this since it was busted for dbus_message_lock to not return
11804         failure on OOM, and dbus_message_write_header was totally
11805         unchecked for OOM. Also fixed some random other bugs.
11806
11807         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11808         that strings are nul-terminated. Also, end_pos can be equal
11809         to string length just not greater than, I think.
11810         (_dbus_marshal_set_int32): new function
11811         (_dbus_marshal_set_uint32): new function
11812         (_dbus_marshal_set_string): new function
11813
11814         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11815         a warning, init timeout_list to NULL
11816         (dbus_connection_send_message): don't use uninitialized variable
11817         "serial"
11818
11819         * dbus/dbus-string.c (_dbus_string_replace_len): new function
11820
11821 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11822
11823         * bus/driver.c: (bus_driver_handle_hello),
11824         (bus_driver_send_welcome_message):
11825         Plug leaks
11826
11827 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11828
11829         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11830         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11831         (dbus_connection_unref):
11832         * dbus/dbus-marshal.c: (_dbus_marshal_test):
11833         * dbus/dbus-message.c: (dbus_message_unref),
11834         Plug memory leaks.
11835
11836         (dbus_message_get_fields):
11837         Remove debugging printout.
11838
11839         (_dbus_message_loader_return_buffer):
11840         Don't store the header string.
11841
11842         (_dbus_message_test):
11843         Plug leaks.
11844
11845 2003-01-26  Richard Hult  <rhult@codefactory.se>
11846
11847         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11848         the file descriptor list, since it can change under us.
11849
11850 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11851
11852         * glib/dbus-gmain.c: (dbus_connection_prepare),
11853         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11854         (remove_watch), (dbus_connection_hookup_with_g_main):
11855         Rewrite the glib handling to use its own GSource instead of a
11856         GIOChannel so we can catch messages put in the queue while waiting
11857         for a reply.
11858
11859 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11860
11861         * bus/Makefile.am:
11862         * bus/connection.c: (connection_disconnect_handler),
11863         (connection_watch_callback), (bus_connection_setup):
11864         * bus/dispatch.c: (send_one_message),
11865         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11866         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11867         * bus/dispatch.h:
11868         * bus/driver.c: (bus_driver_send_service_deleted),
11869         (bus_driver_send_service_created), (bus_driver_handle_hello),
11870         (bus_driver_send_welcome_message),
11871         (bus_driver_handle_list_services), (bus_driver_remove_connection),
11872         (bus_driver_handle_message):
11873         * bus/driver.h:
11874         Refactor code, put the message dispatching in its own file. Use
11875         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11876         is disconnected.
11877
11878 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11879
11880         * dbus/dbus-internals.h:
11881         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11882
11883         * dbus/dbus-message.c: (dbus_message_get_sender):
11884         * dbus/dbus-message.h:
11885         Implement dbus_message_get_sender.
11886
11887         * dbus/dbus-protocol.h:
11888         Add message and service defines.
11889
11890 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11891
11892         * dbus/dbus-connection.c: (dbus_connection_send_message):
11893         * dbus/dbus-message-internal.h:
11894         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11895         (dbus_message_write_header):
11896         Remove _dbus_messag_unlock and don't set the client serial on a
11897         message if one already exists.
11898
11899 2003-01-24  Havoc Pennington  <hp@pobox.com>
11900
11901         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
11902         list_pool
11903
11904         * bus/driver.c (bus_driver_handle_list_services): fix a leak
11905         on OOM
11906
11907 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11908
11909         * dbus/dbus-list.c: (alloc_link), (free_link):
11910         Use a memory pool for the links.
11911
11912 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11913
11914         * bus/connection.c: (bus_connection_foreach):
11915         * bus/connection.h:
11916         Add new bus_connection_foreach function.
11917
11918         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
11919         Add function that broadcasts a message to all clients.
11920
11921         (bus_driver_send_service_created), (bus_driver_handle_hello),
11922         (bus_driver_send_welcome_message),
11923         (bus_driver_handle_list_services), (bus_driver_message_handler):
11924         Implement functions that take care of listing services, and notifying
11925         clients when new services are created.
11926
11927         * bus/services.c: (bus_services_list):
11928         * bus/services.h:
11929         Add new function that returns an array of strings with the currently
11930         registered services.
11931
11932         * glib/dbus-glib.h:
11933         * glib/dbus-gmain.c:
11934         Update copyright year.
11935
11936 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11937
11938         * dbus/dbus-connection.c: (dbus_connection_send_message):
11939         Unlock the message in case it was sent earlier.
11940
11941         (dbus_connection_send_message_with_reply_and_block):
11942         Remove the reply message from the list.
11943
11944         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11945         Set array_len and new_pos correctly.
11946
11947         (_dbus_marshal_test):
11948         Remove debug output.
11949
11950         * dbus/dbus-message-internal.h:
11951         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
11952         New function that returns the reply serial.
11953
11954         (_dbus_message_unlock):
11955         New function that unlocks a message and resets its header.
11956
11957         (dbus_message_append_string_array),
11958         (dbus_message_get_fields_valist),
11959         (dbus_message_iter_get_field_type),
11960         (dbus_message_iter_get_string_array),
11961         (dbus_message_get_fields),
11962         (dbus_message_append_fields_valist):
11963         Handle string arrays.
11964
11965         (dbus_message_set_sender):
11966         Make this function public since the bus daemon needs it.
11967
11968         (decode_header_data):
11969         Set the reply serial to -1 initially.
11970
11971         * dbus/dbus-message.h:
11972         Add dbus_message_set_sender.
11973
11974 2003-01-24  Havoc Pennington  <hp@pobox.com>
11975
11976         * doc/dbus-specification.sgml: add some stuff
11977
11978 2003-01-22  Havoc Pennington  <hp@pobox.com>
11979
11980         * doc/dbus-specification.sgml: Start to document the protocol.
11981
11982 2003-01-22  Havoc Pennington  <hp@pobox.com>
11983
11984         * dbus/dbus-connection.c
11985         (dbus_connection_send_message_with_reply_and_block): add some @todo
11986
11987         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
11988
11989 2003-01-21  Havoc Pennington  <hp@pobox.com>
11990
11991         (patch untested because can't compile)
11992
11993         * bus/driver.c (create_unique_client_name): make this function
11994         never recycle client names. Also, caller should initialize
11995         the DBusString.
11996
11997         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
11998
11999 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12000
12001         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12002         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12003         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12004         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12005         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12006         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12007         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12008         * dbus/dbus-marshal.h:
12009         * dbus/dbus-protocol.h:
12010         Add support for marshalling and demarshalling integer, double
12011         and string arrays.
12012
12013 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12014
12015         * bus/Makefile.am:
12016         Add driver.[ch]
12017
12018         * bus/connection.c: (connection_disconnect_handler):
12019         Remove the connection from the bus driver's list.
12020
12021         (connection_watch_callback): Dispatch messages.
12022
12023         (free_connection_data): Free connection name.
12024
12025         (bus_connection_setup): Add connection to the bus driver's list.
12026         (bus_connection_remove_owned_service):
12027         (bus_connection_set_name), (bus_connection_get_name):
12028         Add functions for setting and getting the connection's name.
12029
12030         * bus/connection.h:
12031         Add function headers.
12032
12033         * bus/driver.c: (create_unique_client_name),
12034         (bus_driver_handle_hello_message),
12035         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12036         (bus_driver_add_connection), (bus_driver_remove_connection):
12037         * bus/driver.h:
12038         * bus/main.c:
12039         * bus/services.c: (bus_service_free):
12040         * bus/services.h:
12041         New file that handles communication and registreation with the bus
12042         itself.
12043
12044 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12045
12046         * dbus/dbus-connection.c: (dbus_connection_send_message):
12047         Add a new client_serial parameter.
12048
12049         (dbus_connection_send_message_with_reply):
12050         Remove a @todo since we've implemented the blocking function.
12051
12052         (dbus_connection_send_message_with_reply_and_block):
12053         New function that sends a message and waits for a reply and
12054         then returns the reply.
12055
12056         * dbus/dbus-connection.h:
12057         Add new functions.
12058
12059         * dbus/dbus-errors.c: (dbus_result_to_string):
12060         * dbus/dbus-errors.h:
12061         Add new DBUS_RESULT.
12062
12063         * dbus/dbus-message-internal.h:
12064         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12065         (_dbus_message_set_sender), (dbus_message_write_header),
12066         (dbus_message_new_reply), (decode_header_data),
12067         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12068         * dbus/dbus-message.h:
12069         Add new functions that set the reply serial and sender.
12070         Also marshal and demarshal them correctly and add test.
12071
12072         * dbus/dbus-protocol.h:
12073         Add new DBUS_MESSAGE_TYPE_SENDER.
12074
12075         * glib/dbus-glib.h:
12076         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12077         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12078         (dbus_connection_hookup_with_g_main):
12079         * glib/test-dbus-glib.c: (main):
12080         Rewrite to use GIOChannel and remove the GSource crack.
12081
12082         * test/echo-client.c: (main):
12083         * test/watch.c: (check_messages):
12084         Update for changed APIs
12085
12086 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12087
12088         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12089
12090         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12091         Create a DBusTimeoutList.
12092         (dbus_connection_set_timeout_functions): Add new function to
12093         set timeout callbacks
12094
12095         * dbus/dbus-connection.h: Add public DBusTimeout API.
12096
12097         * dbus/dbus-message.c: (dbus_message_get_service):
12098         * dbus/dbus-message.h:  New function.
12099
12100         * dbus/dbus-server.c: Fix small doc typo.
12101
12102         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12103
12104 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12105
12106         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12107         of the string, just as long as specified.
12108
12109 2003-01-19  Havoc Pennington  <hp@pobox.com>
12110
12111         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12112         new function
12113
12114         * dbus/dbus-server.c (dbus_server_set_max_connections)
12115         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12116         keep track of current number of connections, and add API for
12117         setting a max (but haven't implemented enforcing the max yet)
12118
12119 2003-01-18  Havoc Pennington  <hp@pobox.com>
12120
12121         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12122         reading/writing if read_watch != NULL or write_watch != NULL.
12123
12124         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12125         the message loader code to actually load message->header and
12126         message->body into the newly-created message.
12127
12128         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12129         in OOM case
12130
12131         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12132         (dbus_connection_get_max_message_size)
12133         (dbus_connection_set_max_live_messages_size)
12134         (dbus_connection_get_max_live_messages_size): implement some
12135         resource limitation functions
12136
12137         * dbus/dbus-resources.c: new file implementing some of the
12138         resource limits stuff
12139
12140         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12141         missing docs, add @todo to handle OOM etc.
12142
12143         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12144         docs
12145
12146 2003-01-18  Havoc Pennington  <hp@pobox.com>
12147
12148         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12149         connection if it hasn't been already.
12150
12151         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12152         replace with DisconnectFunction.
12153
12154 2003-01-18  Havoc Pennington  <hp@pobox.com>
12155
12156         Building --disable-verbose-mode --disable-asserts --disable-tests
12157         cuts the library from 112K to 45K or so
12158
12159         * configure.in: check for varargs macro support,
12160         add --enable-verbose-mode, --enable-asserts.
12161
12162         * dbus/dbus-internals.h (_dbus_assert): support
12163         DBUS_DISABLE_ASSERT
12164         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12165
12166 2003-01-18  Havoc Pennington  <hp@pobox.com>
12167
12168         * dbus/dbus-test.c: include config.h so that tests actually run
12169
12170         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12171         so the failure mode when that assumption fails will be plenty
12172         obvious.
12173
12174 2003-01-18  Havoc Pennington  <hp@pobox.com>
12175
12176         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12177
12178         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12179         the distribution
12180
12181         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12182         since we don't want to use those in make check
12183
12184 2003-01-15  Havoc Pennington  <hp@redhat.com>
12185
12186         Release 0.2
12187
12188         * NEWS: update
12189
12190 2003-01-15  Havoc Pennington  <hp@redhat.com>
12191
12192         * test/Makefile.am: fix so that test source code ends up in the
12193         distribution on make distcheck
12194
12195 2003-01-15  Havoc Pennington  <hp@redhat.com>
12196
12197         Release 0.1.
12198
12199         * NEWS: update
12200
12201 2003-01-15  Havoc Pennington  <hp@redhat.com>
12202
12203         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12204         fix build when --disable-tests
12205
12206         * Makefile.am (EXTRA_DIST): put HACKING in here
12207
12208         * HACKING: document procedure for making a tarball release.
12209
12210 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12211
12212         * bus/connection.c: (connection_error_handler),
12213         (bus_connection_setup):
12214         * bus/main.c: (main):
12215         Make sure that the DBusConnectionData struct is NULLed
12216         out to prevent a segfault.
12217
12218         * dbus/dbus-errors.c: (dbus_result_to_string):
12219         * dbus/dbus-errors.h:
12220         * dbus/dbus-message.c: (dbus_message_get_fields),
12221         (dbus_message_get_fields_valist), (_dbus_message_test):
12222         * dbus/dbus-message.h:
12223         Make dbus_message_get_fields return a result code so we can
12224         track invalid fields as well as oom.
12225
12226 2003-01-11  Havoc Pennington  <hp@pobox.com>
12227
12228         * configure.in: change --enable-test/--enable-ansi action-if-given
12229         to enable_foo=$enableval instead of enable_foo=yes
12230
12231 2003-01-08  Havoc Pennington  <hp@pobox.com>
12232
12233         * dbus/dbus-string.c (_dbus_string_align_length): new function
12234
12235         * dbus/dbus-test-main.c: move main() for test app here
12236         * dbus/dbus-test.c
12237         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12238         symbol to run tests, because dbus-test isn't in the main
12239         library
12240
12241         Code review nitpicks.
12242
12243         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12244         for people with narrow emacs ;-). Assert client_serial was filled
12245         in. Assert message->name != NULL.
12246         (dbus_message_append_fields): have "first_field_type" arg separate
12247         from va list, needed for C++ binding that also uses varargs IIRC
12248         and helps with type safety
12249         (dbus_message_new): add @todo about using DBusString to store
12250         service/name internally
12251         (dbus_message_new): don't leak ->service and ->name on OOM later
12252         in the function
12253         (dbus_message_unref): free the service name
12254         (dbus_message_get_fields): same change to varargs
12255         i.e. first_field_type
12256         (_dbus_message_loader_return_buffer): assert that the message data
12257         is aligned (if not it's a bug in our code). Put in verbose griping
12258         about why we set corrupted = TRUE.
12259         (decode_header_data): add FIXME that char* is evil.  Was going to
12260         add FIXME about evil locale-specific string.h strncmp, but just
12261         switched to wacky string-as-uint32 optimization. Move check for
12262         "no room for field name" above get_const_data_len() to avoid
12263         assertion failure in get_const_data_len if we have trailing 2
12264         bytes or the like. Check for service and name fields being
12265         provided twice. Don't leak service/name on error. Require field
12266         names to be aligned to 4 bytes.
12267
12268         * dbus/dbus-marshal.c: move byte swap stuff to header
12269         (_dbus_pack_int32): uscore-prefix
12270         (_dbus_unpack_int32): uscore-prefix
12271         (_dbus_unpack_uint32): export
12272         (_dbus_demarshal_string): add @todo complaining about use of
12273         memcpy()
12274         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12275         handling allowing corrupt data to go unchecked
12276
12277 2003-01-08  Havoc Pennington  <hp@redhat.com>
12278
12279         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12280         to the select() as needed for authentication. (should be using
12281         _dbus_poll() not select, but for another day)
12282
12283         * dbus/dbus.h: include dbus/dbus-protocol.h
12284
12285 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12286
12287         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12288         dbus-connection.h
12289
12290 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12291
12292         * dbus/dbus-internals.c: (_dbus_type_to_string):
12293         New function that returns a string describing a type.
12294
12295         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12296         * dbus/dbus-marshal.h:
12297         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12298         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12299         (dbus_message_iter_get_byte_array):
12300         * dbus/dbus-message.h:
12301         Add new convenience functions for appending and getting message fields.
12302         Also add demarshalling routines for byte arrays.
12303
12304 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12305
12306         * dbus/dbus-connection-internal.h:
12307         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12308         (_dbus_connection_get_next_client_serial),
12309         (dbus_connection_send_message):
12310         * dbus/dbus-internals.h:
12311         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12312         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12313         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12314         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12315         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12316         (_dbus_verbose_bytes), (_dbus_marshal_test):
12317         * dbus/dbus-marshal.h:
12318         * dbus/dbus-message-internal.h:
12319         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12320         (dbus_message_write_header), (_dbus_message_lock),
12321         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12322         (dbus_message_get_name), (dbus_message_append_int32),
12323         (dbus_message_append_uint32), (dbus_message_append_double),
12324         (dbus_message_append_string), (dbus_message_append_byte_array),
12325         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12326         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12327         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12328         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12329         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12330         (decode_header_data), (_dbus_message_loader_return_buffer),
12331         (message_iter_test), (_dbus_message_test):
12332         * dbus/dbus-message.h:
12333         * dbus/dbus-protocol.h:
12334         * dbus/dbus-test.c: (main):
12335         * dbus/dbus-test.h:
12336         * glib/test-dbus-glib.c: (message_handler), (main):
12337         * test/echo-client.c: (main):
12338         * test/watch.c: (check_messages):
12339         Make messages sendable and receivable for real.
12340
12341 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12342
12343         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12344         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12345         * dbus/dbus-message.c: (dbus_message_append_int32),
12346         (dbus_message_append_uint32), (dbus_message_append_double),
12347         (dbus_message_append_string), (dbus_message_append_byte_array):
12348         Handle OOM restoration.
12349
12350 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12351
12352         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12353         (_dbus_demarshal_string), (_dbus_marshal_test):
12354         * dbus/dbus-marshal.h:
12355         * dbus/dbus-message.c: (dbus_message_get_name),
12356         Document these functions.
12357
12358         (dbus_message_append_int32), (dbus_message_append_uint32),
12359         (dbus_message_append_double), (dbus_message_append_string),
12360         (dbus_message_append_byte_array):
12361         * dbus/dbus-message.h:
12362         Add functions for adding message fields of different types.
12363
12364         * dbus/dbus-protocol.h:
12365         Add the different types.
12366
12367 2003-01-05  Havoc Pennington  <hp@pobox.com>
12368
12369         * bus/connection.c: implement routines for handling connections,
12370         first thing is keeping a list of owned services on each connection
12371         and setting up watches etc.
12372
12373         * bus/services.c: implement a mapping from service names to lists
12374         of connections
12375
12376         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12377
12378         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12379         to use static mutexes for global data
12380
12381         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12382         collection of functions to set/get application-specific data
12383         on the DBusConnection.
12384
12385 2003-01-04  Havoc Pennington  <hp@pobox.com>
12386
12387         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12388         (_dbus_poll): new function
12389
12390         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12391         copied from GLib
12392
12393         * bus/loop.c: initial code for the daemon main loop
12394
12395 2003-01-04  Havoc Pennington  <hp@pobox.com>
12396
12397         * test/watch.c (error_handler): make it safe if the error handler
12398         is called multiple times (if we s/error handler/disconnect
12399         handler/ we should just guarantee it's called only once)
12400
12401         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12402         error handler on disconnect (it's quite possible we should
12403         just change the error handler to a "disconnect handler," I'm
12404         not sure we have any other meaningful errors)
12405
12406         * configure.in: check for getpwnam_r
12407
12408         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12409         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12410         mechanism as in SASL spec, using socket credentials
12411
12412         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12413         (_dbus_send_credentials_unix_socket): new function
12414
12415         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12416         dbus_accept()
12417         (_dbus_write): only check errno if <0 returned
12418         (_dbus_write_two): ditto
12419
12420 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12421
12422         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12423         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12424         (_dbus_marshal_test):
12425         * dbus/dbus-marshal.h:
12426         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12427         to _dbus_marshal_utf8_string. Also fix some tests.
12428
12429 2002-12-28  Harri Porten  <porten@kde.org>
12430
12431         * configure.in: added check for C++ compiler and a very cheesy
12432         check for the Qt integration
12433
12434         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12435
12436         * qt/Makefile.am: added
12437
12438         * qt/.cvsignore: added
12439
12440         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12441         latter, added #ifdef QT_THREAD_SUPPORT guard.
12442
12443         * dbus/Makefile.am: added missing headers for make dist
12444
12445 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12446
12447         * dbus/Makefile.am: fixup export-symbols-regex.
12448
12449 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12450
12451         * acinclude.m4: Add this file and put the
12452         PKG_CHECK_MODULE macro in it.
12453
12454 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12455
12456         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12457         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12458         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12459         (_dbus_marshal_test):
12460         Make the demarshalling routines align the pos argument.
12461         Add string marshalling tests and fix the obvious bugs
12462         discovered.
12463
12464 2002-12-26  Havoc Pennington  <hp@pobox.com>
12465
12466         * dbus/dbus-auth.c: fixes fixes fixes
12467
12468         * dbus/dbus-transport-unix.c: wire up support for
12469         encoding/decoding data on the wire
12470
12471         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12472         (_dbus_auth_decode_data): append to target string
12473         instead of nuking it.
12474
12475 2002-12-26  Havoc Pennington  <hp@pobox.com>
12476
12477         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12478         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12479         doh
12480
12481         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12482         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12483         now). Main point is because I wanted unpack_uint32 to implement
12484         _dbus_verbose_bytes
12485         (_dbus_verbose_bytes): new function
12486
12487         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12488
12489         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12490         mechanism to handle a corrupt message stream
12491         (_dbus_message_loader_new): fix preallocation to only prealloc,
12492         not prelengthen
12493
12494         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12495         (_dbus_string_test): enhance tests for copy/move and fix the
12496         functions
12497
12498         * dbus/dbus-transport-unix.c: Hold references in more places to
12499         avoid reentrancy problems
12500
12501         * dbus/dbus-transport.c: ditto
12502
12503         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12504         leak reference count in no-message case
12505
12506         * test/watch.c (do_mainloop): handle adding/removing watches
12507         during iteration over the watches. Also, ref the connection/server
12508         stored on a watch, so we don't try to mangle a destroyed one.
12509
12510         * dbus/dbus-transport-unix.c (do_authentication): perform
12511         authentication
12512
12513         * dbus/dbus-auth.c (get_state): add a state
12514         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12515         (_dbus_auth_get_unused_bytes): append the unused bytes
12516         to the passed in string, rather than prepend
12517
12518         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12519         the auth conversation DBusAuth
12520
12521         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12522         (_dbus_transport_new_for_domain_socket): when creating a
12523         transport, pass in whether it's a client-side or server-side
12524         transport so we know which DBusAuth to create
12525
12526 2002-12-03  Havoc Pennington  <hp@pobox.com>
12527
12528         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12529         _after_ finalizing the derived members
12530         (unix_connection_set): unref watch if we fail to add it
12531
12532         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12533         transport first, so that the connection owned by the
12534         transport will be valid as the transport finalizes.
12535
12536         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12537         if necessary, and remove watches from the connection.
12538
12539         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12540
12541 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12542
12543         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12544         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12545         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12546         (_dbus_marshal_test):
12547         * dbus/dbus-marshal.h:
12548         Add string marshal functions and have the demarshal functions
12549         return the new position.
12550
12551 2002-12-25  Havoc Pennington  <hp@pobox.com>
12552
12553         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12554         it is a simple protocol that just maps directly to SASL.
12555
12556         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12557         initial implementation, not actually used yet.
12558
12559         * dbus/dbus-string.c (_dbus_string_find): new function
12560         (_dbus_string_equal): new function
12561         (_dbus_string_base64_encode): new function
12562         (_dbus_string_base64_decode): new function
12563
12564 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12565
12566         * dbus/Makefile.am:
12567         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12568         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12569         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12570         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12571         * dbus/dbus-marshal.h:
12572         * dbus/dbus-protocol.h:
12573         * dbus/dbus-test.c: (main):
12574         * dbus/dbus-test.h:
12575         Add un-optimized marshalling/demarshalling routines.
12576
12577 2002-12-25  Harri Porten  <porten@kde.org>
12578
12579         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12580
12581 2002-12-24  Zack Rusin  <zack@kde.org>
12582
12583         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12584         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12585         main loop stuff
12586
12587 2002-12-24  Havoc Pennington  <hp@pobox.com>
12588
12589         * glib/dbus-gthread.c: fix include
12590
12591         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12592         I think glib API needs to change, though, as you don't
12593         want to use DBusMessageFunction, you want to use the
12594         DBusMessageHandler object. Probably
12595         dbus_connection_open_with_g_main_loop()
12596         and dbus_connection_setup_g_main_loop() or something like that
12597         (but think of better names...) that just create a connection
12598         that has watch/timeout functions etc. already set up.
12599
12600         * dbus/dbus-connection.c
12601         (dbus_connection_send_message_with_reply): new function just to
12602         show how the message handler helps us deal with replies.
12603
12604         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12605
12606         * dbus/dbus-string.c (_dbus_string_test): free a string that
12607         wasn't
12608
12609         * dbus/dbus-hash.c: use memory pools for the hash entries
12610         (rebuild_table): be more paranoid about overflow, and
12611         shrink table when we can
12612         (_dbus_hash_test): reduce number of sprintfs and write
12613         valid C89. Add tests for case where we grow and then
12614         shrink the hash table.
12615
12616         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12617
12618         * dbus/dbus-connection.c (dbus_connection_register_handler)
12619         (dbus_connection_unregister_handler): new functions
12620
12621         * dbus/dbus-message.c (dbus_message_get_name): new
12622
12623         * dbus/dbus-list.c: fix docs typo
12624
12625         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12626         an object representing a handler for messages.
12627
12628 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12629
12630         * glib/dbus-glib.h:
12631         * glib/dbus-gthread.c: (dbus_gthread_init):
12632         Don't use the gdbus prefix for public functions.
12633
12634 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12635
12636         * Makefile.am:
12637         * configure.in:
12638         Add GLib checks and fixup .pc files
12639
12640         * glib/Makefile.am:
12641         * glib/dbus-glib.h:
12642         * glib/dbus-gmain.c: (gdbus_connection_prepare),
12643         (gdbus_connection_check), (gdbus_connection_dispatch),
12644         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12645         (dbus_connection_gsource_new):
12646         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12647         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12648         * glib/test-dbus-glib.c: (message_handler), (main):
12649         Add GLib support.
12650
12651 2002-12-15  Harri Porten  <porten@kde.org>
12652
12653         * autogen.sh: check for libtoolize before attempting to use it
12654
12655         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12656         struct.
12657
12658         * .cvsignore: ignore more stamp files
12659
12660         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12661
12662         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12663         without make install.
12664
12665 2002-12-15  Havoc Pennington  <hp@pobox.com>
12666
12667         * dbus/dbus-threads.c: add thread stubs that a higher library
12668         layer can fill in. e.g. the GLib wrapper might fill them in with
12669         GThread stuff. We still need to use this thread API to
12670         thread-safe-ize the library.
12671
12672 2002-12-12  Havoc Pennington  <hp@pobox.com>
12673
12674         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12675         below new interfaces and include fewer system headers.
12676
12677         * dbus/dbus-sysdeps.c (_dbus_read): new function
12678         (_dbus_write): new function
12679         (_dbus_write_two): new function
12680         (_dbus_connect_unix_socket): new function
12681         (_dbus_listen_unix_socket): new function
12682
12683         * dbus/dbus-message-internal.h: change interfaces to use
12684         DBusString
12685
12686 2002-12-11  Havoc Pennington  <hp@pobox.com>
12687
12688         * dbus/dbus-types.h: add dbus_unichar
12689
12690         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12691
12692         * dbus/dbus-connection.c (dbus_connection_send_message): return
12693         TRUE on success
12694
12695         * dbus/dbus-transport.c: include dbus-watch.h
12696
12697         * dbus/dbus-connection.c: include dbus-message-internal.h
12698
12699         * HACKING: add file with coding guidelines stuff.
12700
12701         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12702         handling here, for security purposes (as in vsftpd). Not actually
12703         using this class yet.
12704
12705         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12706         system/libc usage here, as in vsftpd, for ease of auditing (and
12707         should also simplify portability). Haven't actually moved all the
12708         system/libc usage into here yet.
12709
12710 2002-11-25  Havoc Pennington  <hp@pobox.com>
12711
12712         * dbus/dbus-internals.c (_dbus_verbose): fix to not
12713         always print the first verbose message.
12714
12715 2002-11-24  Havoc Pennington  <hp@pobox.com>
12716
12717         * test/echo-client.c, test/echo-server.c: cheesy test
12718         clients.
12719
12720         * configure.in (AC_CHECK_FUNCS): check for writev
12721
12722         * dbus/dbus-message.c (_dbus_message_get_network_data): new
12723         function
12724
12725         * dbus/dbus-list.c (_dbus_list_foreach): new function
12726
12727         * dbus/dbus-internals.c (_dbus_verbose): new function
12728
12729         * dbus/dbus-server.c, dbus/dbus-server.h: public object
12730         representing a server that listens for connections.
12731
12732         * dbus/.cvsignore: create
12733
12734         * dbus/dbus-errors.h, dbus/dbus-errors.c:
12735         public API for reporting errors
12736
12737         * dbus/dbus-connection.h, dbus/dbus-connection.c:
12738         public object representing a connection that
12739         sends/receives messages. (Same object used for
12740         both client and server.)
12741
12742         * dbus/dbus-transport.h, dbus/dbus-transport.c:
12743         Basic abstraction for different kinds of stream
12744         that we might read/write messages from.
12745
12746 2002-11-23  Havoc Pennington  <hp@pobox.com>
12747
12748         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12749         _DBUS_INT_MAX
12750
12751         * dbus/dbus-test.c (main): add list test, and include
12752         dbus-test.h as intended
12753
12754         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12755         (_dbus_hash_table_remove_int): return value indicates
12756         whether the entry existed to remove
12757
12758         * dbus/dbus-list.c: add linked list utility class,
12759         with docs and tests
12760
12761         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12762         array sometimes.
12763
12764 2002-11-23  Havoc Pennington  <hp@pobox.com>
12765
12766         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12767         DBUS_END_DECLS to nothing, that should fix this once and for all
12768
12769         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12770
12771         * dbus/dbus-message.c, dbus/dbus-hash.c:
12772         add some missing @brief
12773
12774 2002-11-23  Havoc Pennington  <hp@pobox.com>
12775
12776         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12777         to avoid confusing Doxygen
12778
12779         * dbus/dbus-hash.c: @} not }@
12780
12781         * dbus/dbus-message.c (struct DBusMessage): split out
12782         internals docs
12783
12784 2002-11-23  Havoc Pennington  <hp@pobox.com>
12785
12786         * configure.in: pile on more warning flags if using gcc
12787
12788         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12789         to document static functions
12790
12791         * configure.in: add summary to end of configure so it
12792         looks nice and attractive
12793
12794         * dbus/dbus-hash.c: finish implementation and write unit
12795         tests and docs
12796
12797         * configure.in: add --enable-tests to enable unit tests
12798
12799         * dbus/dbus-test.c: test program to run unit tests
12800         for all files in dbus/*, initially runs a test for
12801         dbus-hash.c
12802
12803         * dbus/dbus-internals.h: file to hold some internal utility stuff
12804
12805 2002-11-22  Havoc Pennington  <hp@redhat.com>
12806
12807         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12808         "ported" away from Tcl
12809
12810         * dbus/dbus-types.h: header for types such as dbus_bool_t
12811
12812 2002-11-22  Havoc Pennington  <hp@redhat.com>
12813
12814         * dbus/dbus.h: fixups for doc warnings
12815
12816         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12817         macros
12818         (QUIET): make it quiet so we can see warnings
12819
12820         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12821
12822 2002-11-22  Havoc Pennington  <hp@redhat.com>
12823
12824         * Makefile.am: include "Doxyfile" target in all-local
12825
12826         * configure.in: generate the Doxyfile
12827
12828         * Doxyfile.in: move Doxyfile here, so we can use
12829         configure to generate a Doxyfile with the right
12830         version number etc.
12831
12832 2002-11-22  Havoc Pennington  <hp@redhat.com>
12833
12834         * dbus/dbus-message.c: move inline docs into .c file
12835
12836         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12837         so all docs are under doc/
12838         (MAN_EXTENSION): generate man pages. Use extension
12839         ".3dbus" which matches ".3qt" on my system,
12840         I guess this is OK, I don't know really.
12841         (FILE_PATTERNS): look for .c files not .h, makes sense
12842         for plain C I think
12843
12844 2002-11-22  Havoc Pennington  <hp@pobox.com>
12845
12846         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12847         because any app can be a server, and any app can be a client,
12848         the bus is a special kind of server.
12849
12850 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
12851
12852         * Doxyfile : adding. Still needs Makefile rules to be generated
12853         automatically (just run "doxygen" in the toplevel dir for now to
12854         generate docs)
12855
12856         * dbus/dbus-message.h : Adding sample docs (javadoc since
12857         resembles gtk-doc a little more)
12858
12859         * dbus/dbus.h : Adding sample docs
12860
12861 2002-11-21  Havoc Pennington  <hp@redhat.com>
12862
12863         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12864         so we can allow ourselves to include files directly,
12865         instead of having to use dbus.h
12866
12867         * dbus/dbus.h: fill in
12868
12869         * dbus/dbus-message.h: sketch out a sample header file.
12870         Include griping if you include it directly instead of
12871         via dbus.h
12872
12873         * dbus/dbus-macros.h: new file with macros for extern "C",
12874         TRUE/FALSE, NULL, etc.
12875
12876         * doc/file-boilerplate.c: put include guards in here
12877
12878 2002-11-21  Havoc Pennington  <hp@redhat.com>
12879
12880         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12881
12882         * COPYING: include the GPL as well, and license code
12883         under both AFL and GPL.
12884
12885 2002-11-21  Havoc Pennington  <hp@redhat.com>
12886
12887         * acconfig.h: get rid of this
12888
12889         * autogen.sh (run_configure): add --no-configure option
12890
12891         * configure.in: remove AC_ARG_PROGRAM to make
12892         autoconf complain less. add AC_PREREQ.
12893         add AC_DEFINE third arg.
12894
12895 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
12896
12897         * doc/Makefile.am:
12898         Fix references so we can distcheck.
12899
12900 2002-11-21  Havoc Pennington  <hp@redhat.com>
12901
12902         * Initial module creation
12903