* remove line from ChangeLog which was an artifact of an update conflict
[platform/upstream/dbus.git] / ChangeLog
1 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-glib.h:
4         * glib/dbus-gmain.h:
5         (dbus_g_connection_open): new method for openning
6         a connection to an arbitrary address in the glib bindings
7
8         * ChangeLog: checkin last entry which doesn't seem to be commited
9
10 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
11
12         * tools/dbus-launch.c: Fixed sh syntax output
13
14 2006-02-13  Robert McQueen  <robot101@debian.org>
15
16         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
17         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
18         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
19         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
20         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
21         missing piece of the glib bindings jigsaw puzzle. This modifies
22         the existing specialised types to have N type parameters (rather
23         than the current 1 or 2 for arrays and dictionaries respectively).
24         You can then use this to get a glib type to represent any arbitrary
25         D-Bus struct type using dbus_g_type_get_struct. The only
26         implementation of these types is with GValueArrays as before,
27         but it's now possible to store these in arrays, emit them in
28         signals, etc.
29
30 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
31
32         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
33         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
34         <thiago.macieira at trolltech.com>
35
36 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
37
38         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
39         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
40
41 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
42
43         * bus/connection.c (bus_connections_expect_reply): Make
44         pending reply limit not common to all connections (Bug #5416)
45         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
46
47 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
48
49         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
50
51 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
52
53         * gcj/Makefile.am: point to correct jar command (Bug #4529)
54         patch from Doug Goldstein <cardoe at gentoo.org>
55
56 2006-02-09  Joe Shaw  <joeshaw@novell.com>
57
58         * mono/Arguments.cs: Fix a magic number in the mono bindings
59         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
60
61 2006-01-27  Robert McQueen  <robot101@debian.org>
62
63         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
64         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
65         when generating the client-side methods, instead of overloading
66         CSymbol which broke everything horribly. My apologies.
67
68 2006-01-27  Robert McQueen  <robot101@debian.org>
69
70         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
71         by me and Rob Taylor to add a simple_free function to D-Bus map
72         and collection types, which allows those types which can be freed
73         with a GDestroyNotify (such as GHashTables and GArrays, but not
74         GPtrArrays) to be stored as the values in hashtables.
75
76         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
77         Patch by Rob Taylor to add nested dicts to the glib tests to check
78         the above code works, and appears not to leak when called repeatedly.
79
80 2006-01-27  Robert McQueen  <robot101@debian.org>
81
82         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
83         to free a D-Bus allocated string with dbus_free () instead of
84         g_free ().
85
86 2006-01-27  Iain Holmes  <iain@openedhand.com>
87
88         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
89         method from being called multiple times.
90
91 2006-01-19  Robert McQueen  <robot101@debian.org>
92
93         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
94         <rob.taylor@collabora.co.uk> to add support for generating bindings
95         to arrays that are represented as GPtrArrays rather than GArrays (ie
96         size-variable things, such as strings, objects, structs, etc).
97
98 2006-01-05  Robert McQueen  <robot101@debian.org>
99
100         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
101         <ricardo.kekki@movial.fi> to make it possible to inherit from
102         DBusGProxy, by splitting the DBusGProxy struct into a public part and
103         a private part, and moving the setting of the DBusGProxyManager into a
104         connection property, allowing proper GObject construction.
105
106 2006-01-05  Robert McQueen  <robot101@debian.org>
107
108         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
109         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
110         annotations when generating glib client bindings.
111
112 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
113
114         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
115
116         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
117
118 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
119
120         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
121
122 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
123
124         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
125
126 2005-12-19  Ross Burton  <ross@openedhand.com>
127
128         * doc/dbus-tutorial.xml:
129         Document the Glib client-side bindings, and list all possible annotations.
130
131 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
132
133         * dbus/bus.c (dbus_bus_release_name): Add documentation
134
135 2005-12-06  Robert McQueen  <robot101@debian.org>
136
137         * python/service.py: s/sucessful/successful/ so we're allocating to
138         and reading from the same variable. Oops.
139
140 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
141
142         * Released 0.60
143
144 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
145
146         * test/qt/Makefile.am: build from srcdir
147
148         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
149         Note - this code is wrong and needs to be fixed by the Qt binding
150         developers.  The flags should be treated as bitfields and not enums.
151
152         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
153
154 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
155
156         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
157           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
158           in production code
159
160 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
161
162         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
163         method for getting messages off the bus in the absence of a
164         mainloop.  This method is much like 
165         dbus_connection_read_write_dispatch except it does not dispatch
166         the messages to a registered filter function.  Instead it
167         allows a developer to process messages by directly popping
168         them off the bus.
169
170 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
171
172         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
173         the parser to continue instead of returning error
174         (bus_desktop_file_load): Do not free parser data when
175         parse_section_start or parse_key_value fails because it was 
176         already freed by parser_free (patch from Carlos Garcia Campos  
177         <carlosgc at gnome.org>)
178
179 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
180
181         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
182         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
183         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
184         test/test-segfault.c, test/test-utils.c,
185         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
186         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
187         Various cleanup of dead code and compiler warnings (patch from
188         Kjartan Maraas <kmaraas at gnome.org>) 
189
190 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
191
192         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
193         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
194
195 2005-11-27  Robert McQueen  <robot101@debian.org>
196
197         * python/dbus_bindings.pyx: Repair my previous commit which reverted
198         part of the preceding one. Oops. Merge patch by Johan Hedberg
199         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
200         on big-endian platforms.
201
202         * test/python/test-client.py: Add some 16-bit integers to the test
203         values.
204
205 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
206
207         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
208         method return message for property getters
209
210 2005-11-27  Robert McQueen  <robot101@debian.org>
211
212         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
213         with type v of an instance of dbus.Variant(foo, type='x') caused
214         it to be boxed twice before sending over the bus.
215
216         * python/dbus_bindings.pyx, python/service.py,
217         test/python/test-client.py: Update the constants for the new
218         request_name flags, and update comments/test cases now that queueing
219         is the default action.
220
221 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
222
223         * configure.in:
224         - Change version to 0.60 for impending release
225         - upped the sonames because of ABI and API breakage
226
227 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
228
229         * configure.in: Add test/name-test/Makefile to the generated
230         Makefile list
231
232         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
233         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
234         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
235         not to queue an ower if it can't be the primary owner
236
237         * bus/bus.h: Add new internal BusOwner struct
238
239         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
240         to bus_registry_ensure and don't set the prohibit_replacement flag
241         since they are now set per BusOwner and not per name.
242         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
243         that returns the list of connections in a name's connection queue
244         
245         * bus/services.c (struct BusService): remove prohibit_replacement field
246         (struct BusOwner): new struct for keeping track of queued connections
247         and their associated flags for the queue
248         (struct BusRegistry): add a BusOwner memory pool
249         (bus_registry_new): initialize the BusOwner memory pool
250         (bus_registry_unref): free the BusOwner memory pool
251         (_bus_service_find_owner_link): new internal method for
252         searching the queue for a specific connection
253         (bus_owner_set_flags): new method for adding setting the flags on a
254         bus owner
255         (bus_owner_new): new method that creates a BusOwner object from the
256         pool and sets its flags
257         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
258         (bus_registry_ensure): Add the flags parameter
259         (bus_registry_acquire_service): Switch from using raw connections to
260         using the BusOwner struct
261         Add new state machine for dealing with the new set of flags
262         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
263         cancel_ownership, free_ownership_cancel_data, 
264         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
265         restore_ownership, free_ownership_restore_data, 
266         add_restore_ownership_to_transaction): Switch to using BusOwner 
267         instead of raw connections
268         (bus_service_add_owner): Add flags parameter
269         Switch to using BusOwner instead of raw connections
270         Add state machine for dealing with the new set of flags
271         (bus_service_swap_owner): Swaps the first and second owners in the
272         queue.  Used to make sure proper signals are sent when a service looses 
273         or gains primary ownership.  We never insert an owner at the top of the
274         queue.  Instead we insert it in the second position and then swap.
275         (bus_service_remove_owner): Remove the owner from the queue sending
276         out the NameLost and NameOwnerChanged signals if the we were the 
277         primary owner
278         (bus_service_get_primary_owners_connection): New method that extracts
279         the connection from the primary owner
280         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
281         connection
282         (bus_service_get_allow_replacement): Changed from the old 
283         bus_service_get_prohibit_replacement method.  Checks the flags of the 
284         primary owner and returns if it can be replaced or not
285         (bus_service_set_prohibit_replacement): removed
286         (bus_service_has_owner): returns TRUE if and owner with
287         the specified connection exists in the queue
288         
289         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
290         method that only compiles if tests are enabled.  Allows us to get the 
291         unique name of a connection so we can check it against the queue when
292         doing regression tests
293
294         * bus/activation.c (bus_activation_send_pending_auto_activate),
295         bus/dispatch.c (bus_dispatch),  
296         bus/driver.c (bus_driver_handle_get_service_owner, 
297         bus_driver_handle_get_connection_unix_user, 
298         bus_driver_handle_get_connection_unix_process_id,
299         bus_driver_handle_get_connection_selinux_security_context),
300         bus/signals.c (connection_is_primary_owner): 
301         use bus_service_get_primary_owners_connection instead of
302         bus_service_get_primary_owner
303
304         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
305         _dbus_listen_unix_socket): Calculate the length of the socket
306         path and use that instead of using a fixed length which was
307         causing socket names to contain many trailing Nul bytes.
308
309         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
310         (dbus_g_method_get_sender): New method for extracting the sender 
311         from a DBusGMethodInvocation
312         (dbus_g_method_return_get_reply): changed name to 
313         dbus_g_method_get_reply
314         (dbus_g_method_return_send_reply): changed name to
315         dbus_g_method_send reply
316
317         * doc/dbus-specification.xml: New docs that describe how the new
318         queueing system works and talks about the changes to the how
319         we specify socket names
320
321         * glib/examples/example-service.c, 
322         glib/examples/example-signal-emitter.c,
323         glib/examples/statemachine/statemachine-server.c:
324         Changed the RequestName flags to the new system
325
326         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
327         regression test suite for testing various states of the new
328         queueing system
329         
330 2005-11-15  Robert McQueen  <robot101@debian.org>
331
332         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
333         Taylor to add two methods, dbus_g_method_return_get_reply and
334         dbus_g_method_return_send_reply, to allow you to get the reply
335         message from a DBusGMethodInvocation, append arbitrary stuff to it,
336         and send it. The GLib bindings can't marshal a return value of
337         something like a(s) if the array is empty - ultimately they should be
338         made to heed the signature of the out arguments as the Python bindings
339         now can, but this is a workable interim solution which might have
340         other applications.
341
342 2005-11-15  Robert McQueen  <robot101@debian.org>
343
344         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
345         method to org.freedesktop.DBus to release a bus name or give up
346         waiting in the queue for it.
347
348         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
349         dbus_bus_release_name method to send the ReleaseName method calls.
350         Add constants for the return values to dbus/dbus-shared.h.
351
352         * doc/dbus-specification.xml: Document the new ReleaseName method
353         in the specification.
354
355         * python/dbus_bindings.pyx: Add a low-level python binding for the
356         release name method.
357
358         * python/exceptions.py, python/service.py: Make freeing BusName
359         objects release the name. Add a NameExistsException, and fix a
360         bug with creating UnknownMethodException.
361
362         * test/python/test-client.py: Add tests for freeing BusName
363         objects causing names to be released.
364
365 2005-11-14  Robert McQueen  <robot101@debian.org>
366
367         * python/service.py: Include the traceback in the error reply when we
368         send an exception over the bus. _BEST_ _PATCH_ _EVER_
369
370 2005-11-14  David Zeuthen  <davidz@redhat.com>
371
372         Patch from Timo Hoenig <thoenig@suse.de>.
373
374         * bus/bus.c: I've recently investigated why the automatic reload
375         of configuration files does not work as expected.
376
377         Currently, reloading configuration files does only work when
378         running dbus-daemon with --nodaemon.  If we are running as daemon
379         we're hitting a dnotify bug once we fork the process.
380
381         We're initializing the dnotify fds before calling fork().  Once
382         the child process forked it does still have the fds (and they
383         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
384         getting SIGIO as changes are made to the configuration files.
385
386         The attached patch moves the initialization of the dnotify fds to
387         process_config_postinit().  This is safe for all current code
388         paths and solves the dnotify disfunction.  If we're running
389         dbus-daemon as daemon the fds for dnotify are now being
390         initialized after fork() for the child process.
391
392         * configure.in: The current configure.in check for dnotify probes
393         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
394         match for 'xlinux', too. Additionally I have adapted the configure
395         option's style to match with the others.
396
397 2005-11-14  Robert McQueen  <robot101@debian.org>
398
399         * python/decorators.py, python/service.py: Add a new argument to the
400         dbus.service.method decorator called sender_keyword, which if set,
401         specifies the name of an argument which will be provided the bus
402         name of the method caller.
403
404         * test/python/test-client.py, test/python/test-service.py: Add a
405         method and test to check the sender_keyword functionality.
406
407 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
408
409         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
410         empty reply so blocking calls don't block forever (Patch from Sjoerd 
411         Simons <sjoerd at luon.net>)
412
413         * AUTHORS: Add Robert McQueen for his work on the Python
414         Bindings and other parts of D-Bus
415
416 2005-11-07  Robert McQueen  <robot101@debian.org>
417
418         * python/decorators.py: Change emit_signal function to use the
419         signature annotation of the signal when marhsalling the arguments from
420         the service. Fix a bug where the code checking signature length
421         against argument length referenced the wrong variable.
422
423         * python/introspect_parser.py: Avoid adding the type signature of
424         signal arguments to any methods which occur after them in the
425         introspection data (!) by making the parser a little more careful
426         about its current state.
427
428         * python/service.py: Remove debug prints from last commit (again :D).
429
430         * test/python/test-client.py, test/python/test-service.py: Add test
431         signals with signature decorators to test the strict marshalling code
432         gives errors at the right time. Could do with checking the signals
433         actually get emitted too, given that the test does nothing with
434         signals at the moment...
435
436 2005-11-07  Robert McQueen  <robot101@debian.org>
437
438         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
439         instances to stop madness of creating new instances representing
440         the same bus connection all the time, rendering any tracking of
441         match rules and bus names quite meaningless. Caught a bug where
442         the private argument to SessionBus() and friends was being passed
443         in as use_default_mainloop by mistake. Still some problems with
444         multiple dbus_binding.Connection instances representing the same
445         low-level connection (eg when you use both SessionBus() and
446         StarterBus() in same process), but it's a lot better now than it
447         was.
448
449         * python/dbus_bindings.pyx: Add constants with the return values
450         for bus_request_name().
451
452         * python/service.py: Store bus name instances in a per-dbus.Bus cache
453         and retrieve the same instances for the same name, so deletion can be
454         done with refcounting. Also now throws some kind of error if you
455         don't actually get the name you requested, unlike previously...
456
457         * test/python/test-client.py: Add tests for instance caching of buses
458         and bus name objects.
459
460 2005-11-04  Robert McQueen  <robot101@debian.org>
461
462         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
463         marshalling of boolean values. Add some booleans to the values in
464         the test client.
465
466         * python/decorators.py, python/service.py: Add an 'async_callbacks'
467         argument to the dbus.service.method decorator, which allows you to
468         name arguments to take two callback functions for replying with
469         return values or an exception.
470
471         * test/python/test-client.py, test/python/test-service.py: Add test
472         case using asynchronous method reply functions, both return values and
473         errors, and from within both the function itself and from a mainloop
474         callback.
475
476         * python/decorators.py, python/service.py: Perform checking that the
477         number of method/signal arguments matches the number of types in the
478         signature at class loading time, not when you first introspect the
479         class.
480
481         * python/service.py: Remove debug print left by the last commit.
482
483 2005-11-03  Robert McQueen  <robot101@debian.org>
484
485         * python/service.py: Heavy refactoring of method invocation, with
486         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
487         in favour of a new _message_cb that uses seperate functions for
488         looking up the method to call, marshalling the return values, and
489         sending exceptions as errors, and is easier to follow as a
490         consequence.  Fixes some corner cases about returning things that
491         don't match your declared out_signature, allows exceptions to define
492         _dbus_error_name and have it be sent over the bus as the error name,
493         and paves the way for cool stuff like heeding the message no reply
494         flag, asynchronous method implementations, informing the method of the
495         sender, and including backtraces in the error messages.
496
497         * test/python/test-client.py: Catch and print exceptions thrown in the
498         async callback tests, rather than passing them to the low-level
499         bindings to be ignored in a noisy and frustrating manner.
500
501 2005-11-03  Robert McQueen  <robot101@debian.org>
502
503         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
504         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
505         tweak others to be consistent.
506
507         * test/python/test-client.py: Tweak output of testInheritance.
508
509 2005-10-29  Robert McQueen  <robot101@debian.org>
510
511         * python/service.py: Major changes to allow multiple inheritance
512         from classes that define D-Bus interfaces:
513         
514          1. Create a new Interface class which is the parent class of
515             Object, and make the ObjectType metaclass into InterfaceType.
516         
517          2. Patch written with Rob Taylor to replace use of method_vtable
518             with code that walks the class's __MRO__ (method resolution order)
519             to behave like Python does when invoking methods and allow
520             overriding as you'd expect. Code is quite tricky because
521             we have to find two methods, the one to invoke which has the
522             right name and isn't decorated with the /wrong/ interface,
523             and the one to pick up the signatures from which is decorated
524             with the right interface.
525         
526             The same caveats apply as to normal multiple inheritance -
527             this has undefined behaviour if you try and inherit from two
528             classes that define a method with the same name but are
529             decorated with different interfaces. You should decorate
530             your overriding method with the interface you want.
531         
532          3. Replace grungy introspection XML generation code in the metaclass
533             with dictionaries that cope correctly with multiple inheritance
534             and the overriding of methods. This also uses the signature
535             decorations to provide correct introspection data, including
536             the debut appearance of the types of your return values. :D
537
538         * test/python/test-client.py, test/python/test-service.py: Add a test
539         case to try invoking an method that overrides one inherited from a
540         D-Bus interface class.
541
542 2005-10-29  Robert McQueen  <robot101@debian.org>
543
544         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
545         Add checking for the end of struct character when marshalling a
546         struct in MessageIter.append_strict.
547
548         * python/examples/example-service.py,
549         python/examples/gconf-proxy-service.py,
550         python/examples/gconf-proxy-service2.py: Update to use gobject
551         mainloop directly rather than appearing to depend on gtk.
552
553         * python/test/test-client.py, python/test/test-server.py: Remove
554         obsolete and broken test scripts for old bindings. We have up to date
555         and working tests in test/python/.
556
557 2005-10-29  Robert McQueen  <robot101@debian.org>
558
559         * python/decorators.py: Add optional arguments to the method and
560         signal decorators to allow you to specify the signature of arguments
561         and return values. Preserve the doc strings of signal functions in the
562         decorated version, for pydoc and friends.
563
564         * python/dbus_bindings.pyx, python/proxies.py: Replace the
565         parse_signature_block function with an iterable dbus.Signature()
566         type. Fix a bug in MessageIter.append_strict where you could append
567         anything by claiming it was a string.
568
569         * python/service.py: Use the out_signature decoration on methods to
570         marshal return values, meaning you no longer require dbus.Array()
571         or dbus.Dictionary() to indicate the type when returning empty
572         arrays or dictionaries. Fix a bug where exceptions which are defined
573         in __main__ are not turned into error replies.
574
575         * test/python/test-client.py, test/python/test-service.py: Add test
576         for correct marshalling of return values according to out_signature.
577         Fix a bug in the async call test where the error_handler is missing a
578         self argument.
579
580 2005-10-29  Robert McQueen  <robot101@debian.org>
581
582         * glib/Makefile.am, glib/examples/Makefile.am,
583         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
584         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
585
586         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
587
588         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
589         from Ubuntu by Daniel Silverstone to allow specifying match rules on
590         the command line.
591
592 2005-10-27  Ross Burton  <ross@openedhand.com>
593
594         * dbus/dbus-marshal-header.c:
595         Remove dead code.
596
597         * glib/dbus-gobject.c:
598         Stop compiler warning.
599
600 2005-10-25  Ross Burton  <ross@openedhand.com>
601
602         * dbus/dbus-auth.c:
603         * dbus/dbus-server-unix.c:
604         * dbus/dbus-transport-unix.c:
605         * glib/dbus-gmain.c:
606         * glib/dbus-gobject.c:
607         Add some const keywords.
608
609 2005-10-25  Ross Burton  <ross@openedhand.com>
610
611         * doc/dbus-specification.xml:
612         Document the NoReply annotation.
613
614         * glib/dbus-binding-tool-glib.h:
615         * glib/dbus-binding-tool-glib.c:
616         Respect the NoReply annotation.
617
618 2005-10-24  Robert McQueen <robot101@debian.org>
619
620         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
621         derive from unicode instead of str, and encode/decode UTF-8 when
622         marshalling/unmarshalling bus messages
623
624         * python/introspect_parser.py: encode introspection data as UTF-8
625         before passing the buffer into libxml2
626
627         * test/python/test-client.py: add unicode test strings
628
629         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
630         ignore generated python test files
631
632 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
633
634         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
635         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
636         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
637
638         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
639         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
640         when constructing struct signatures
641
642         * python/_dbus.py (Bus): handle private connections using the
643         private keyword in the constructor. defaults to private=False
644         (Bus::close): new method to close a connection to the bus
645
646         * python/dbus_bindings.pyx (Connection::close): renamed method
647         was previously called disconnect
648         (bus_get): now supports getting a private connection
649
650         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
651         keyword is set to True.  if it is, execute the method without waiting
652         for a reply
653         (ProxyObject::_introspect_execute_queue): new method for executing
654         all the pending methods that were waiting for the introspect to
655         finish.  this is called when introspect either succeeds or fails
656         (ProxyObject::_introspect_error_handler): call queued methods
657
658 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
659
660         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
661         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
662
663         * python/service.py (Object::_message_cb): handle exceptions correctly
664         by sending them over the wire to the calling app.  This makes sure
665         the client returns immediately instead of waiting the 15 seconds to
666         timeout.
667
668         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
669         Add a test to benchmark how long it takes to introspect a service and 
670         call a method which returns a large element (pretty fast)
671
672         * test/python/test-service.py (TestObject::GetComplexArray): new test 
673         method which pushes a lot of data
674
675 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
676
677         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
678         reclaim memory outside of the loop and use del istead of just setting
679         the key to None
680
681 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
682
683         * python/service.py (ObjectType::_reflect_on_signal): Always close
684         signal tag even when there are no arguments
685
686 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
687
688         * configure.in: Set mono, mono-docs and Qt3 to default
689         to no instead of auto when building.  These bindings do not
690         have full time maintainers and will not be supported for the
691         1.0 release.
692
693 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
694
695         patches from Michael Krivoruchko <misha at sun.com>: 
696         
697         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
698         _dbus_connection_message_sent, 
699         _dbus_connection_send_preallocated_unlocked_no_update, 
700         _dbus_connection_pop_message_link_unlocked): handle the case when path 
701         is NULL when calling _dbus_verbose
702
703         * configure.in: check for functions getpeerucred and getpeereid
704
705         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
706         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
707         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
708         Patch was only tested on Solaris 10 x86 so it might be issues
709         with other platforms (i.e. BSDs and MacOSX)
710         
711
712 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
713
714         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
715         instead of marshal basic so we can handle recursive types in a variant
716
717         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
718         in variants
719
720         * test/glib/test-service-glib.c, test-service-glib.xml
721         (my_object_echo_variant [EchoVariant], 
722         my_object_process_variant_of_array_of_ints123
723         [ProcessVariantOfArrayOfInts123]): 
724         Add two test methods
725
726         * python/introspect_parser.py: New module for parsing introspect
727         data.
728
729         * python/dbus_bindings.pyx:
730         (various places): when throwing errors fix to use errormsg instead 
731         of message local variable because Pyrex can get confused with other 
732         message variables (initial patch by Robert McQueen 
733         <robert.mcqueen at collabora.co.uk>)
734         (MessageIter::parse_signature_block): new method for getting the next
735         block in a signiture.
736         (MessageIter::append_strict): new method for appending values strictly
737         using the passed in signature instead of guessing at the type
738         (MessageItter:: append_dict, append_struct, append_array): use 
739         signatures to marshal children if the signature is available
740         
741         * python/exceptions.py (IntrospectionParserException): new exception
742
743         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
744         introspected signatures if available, else we fall back to the
745         old way of doing things.
746         (ProxyObject::_introspect_reply_handler ): parse introspection data
747         
748         * python/service.py (ObjectType::_reflect_on_method): Properly
749         terminate <method> if there are no args in the reflection data
750
751         * test/python/test-client.py: add tests for talking with the GLib
752         test server.  This gives us better coverage for introspection since
753         python to python will always generate arguments as variants.  It also
754         allows us to test the robustness of the GLib bindings and interlanguage
755         communications.
756
757         
758 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
759
760         * bus/driver.c (bus_driver_handle_introspect): Add signals
761         to the introspect data. (patch from Daniel P. Berrange 
762         <dan at berrange.com>)
763
764         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
765         
766         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
767         _dbus_connection_run_builtin_filters): Changed these to
768         be unlock_no_update functions and call 
769         _dbus_connection_send_unlocked_no_update instead of
770         dbus_connection_send to avoid locking errors.
771         
772         * doc/TODO: Removed the make Ping test TODO
773         
774 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
775
776         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
777         We now copy the message from a DBusError and then free 
778         the error object befor throwing the error
779
780         * glib/dbus-glib-tool.c: removed extra comma at the end of the
781         DBusBindingOutputMode enum which was causing a warning.
782         #include <time.h> so using time_t is explicitly defined
783
784 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
785
786         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
787         - dbus/dbus-bus.c
788         (internal_bus_get): new method that take over the heavy lifting
789         of dbus_bus_get and adds the ability to get a private connection
790         to the bus
791         (dbus_bus_get): wrapper to internal_bus_get that provides the same
792         interface as in previous versions
793         (dbus_bus_get_private): new method that is a wrapper to 
794         internal_bus_get to get a private connection to the bus
795
796         - dbus/dbus-bus.h
797         (dbus_bus_get_private): add as a public libdbus interface
798
799         - dbus-1.pc.in: output system_bus_default_address and 
800         sysconfdir variables so apps can use them when compiling
801
802 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
803         * dbus/qt: New Qt bindings
804
805 2005-09-12  Waldo Bastian  <bastian@kde.org>
806
807         * dbus/dbus-marshal-validate.c,
808         doc/dbus-specification.xml, test/Makefile.am,
809         test/test-names.c: allow hyphens in bus names.
810
811 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
812
813         * test/data/auth/fallback.auth-script: we don't
814         retry the EXTERNAL method when we know its going
815         to fail anymore.
816
817 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
818
819         * dbus/dbus-connection-internal.h: rename
820         (add|remove|toggle)_(watch|timeout) to unlocked()
821         
822         * dbus/dbus-connection.c: ditto.
823         
824         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
825         Update some callers for the renaming.
826
827 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
828
829         * dbus/dbus-auth.c: (record_mechanisms): don't
830         retry the first auth mechanism because we know
831         we're just going to get rejected again.
832         
833         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
834         Fix thinko ... and what a nasty little bugger to
835         track down you were ...
836
837         * dbus/dbus-connection.c:
838         (_dbus_connection_add_watch),
839         (_dbus_connection_remove_watch): add note about
840         these needing the connection to be locked.
841         (_dbus_connection_get_dispatch_status_unlocked):
842         set status to DATA_REMAINS when we queue the
843         disconnected message.
844         
845         * bus/dispatch.c:
846         (bus_dispatch): fix warning.
847         (check_existent_service_no_auto_start):
848         Expect ChildSignaled error too.
849         (check_existent_hello_from_self): fix another
850         couple of warnings.
851         
852 2005-09-08  Joe Shaw  <joeshaw@novell.com>
853
854         Patches from James Willcox <snorp@snorp.net>
855
856         * mono/Makefile.am: Add Int16.cs and UInt16.cs
857
858         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
859         support array "out" parameters.
860
861         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
862         for 16-bit int support.
863
864 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
865
866         * Released 0.50
867
868         * Patch from Steve Grubb:
869         - bus/activation.c (bus_activation_service_reload_test): clean up
870         some indentation
871         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
872         - dbus/dbus-message-factory.c (generate_special): fix a couple of
873         buffer overflows in the test suite.  This is non critical because
874         it can not be exploited and this code is only run when doing a 
875         make check.
876
877         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
878         - configure.in: Don't check and link against kdecore, only qt headers
879         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
880         - gcj/org/freedesktop/dbus/Makefile.am:
881         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
882         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
883         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
884         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
885         - tools/Makefile.am: Add platform extentions to binaries 
886         (i.e. .exe on windows)
887
888         * configure.in: 
889         - Make it so if no suitable version of python is found we only 
890         disable building python instead of exiting the configure script
891         - Require version 2.4 of glib for glib bindings
892         - Up version to 0.50
893
894         * python/__init__.py: Sync version with libdbus to (0,50,0)
895         
896 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
897
898         * dbus/dbus-object-tree.c (find_subtree_recurse):
899         a couple of optimizations (bug #710):
900         - do a binary search in the tree
901         - insert a new child at the right place directly, no need for
902           qsort anymore
903         - do the "double alloc" thing when allocating children
904
905 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
906
907         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
908
909         * python/dbus_bindings.pyx: Memory management foo
910         (global): remove hacky _user_data_references global list
911         (GIL_safe_cunregister_function_handler): userdata now stuffed into
912         tuples. Unref user_data
913         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
914         (Connection::__del__): Remove and replace with __dealloc__ method
915         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
916         to keep tuple from being deallocated instead of the global var hack
917         (Connection::register_object_path): Stuff user_data into a tuple.
918         Use Py_INCREF to keep tuple from being deallocated instead of the 
919         global var hack
920         (Connection::register_fallback): Stuff user_data into a tuple.
921         Use Py_INCREF to keep tuple from being deallocated instead of the 
922         global var hack
923         (GIL_safe_pending_call_notification): Don't unref the message
924         because it gets unreffed when going out of scope.  Py_XDECREF
925         the user_data
926         (PendingCall::__del__): Remove and replace with __dealloc__ method
927         (PendingCall::set_notify): ref the pending call because we will
928         need it to stick around for when the notify callback gets called
929         (Message::__del__): Remove and replace with __dealloc__ method
930
931         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
932         gthreads_init to match up with the dbus call
933
934         * python/glib.py (init_threads): Changed to threads_init to match
935         up with gobject.threads_init().  init_threads is kept for backwards
936         compat but will most likely be deprecated in the future
937
938         * test/python/test-client.py: 
939         - revamp to use Python's unittest functionality
940         - add async call tests
941         - setup threads in glib and dbus so we make sure locks are working
942         
943 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
944
945         * python/dbus_bindings.pyx 
946         (_pending_call_notification, cunregister_function_handler, 
947         cmessage_function_handler): All callback functions have been rearranged 
948         to workaround a bug in Pyrex when working with the GIL which is Python's 
949         global lock when dealing with threads.  They have been split into
950         a wrapper function (which assumes the name of the old function) and
951         a _GIL_safe_<function name> function which contains the functionality
952         of the old function.  This ensures that Pyrex does not write code
953         the lock is released.
954         
955
956 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
957
958         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
959         GIL global lock when calling back into Python
960
961 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
962
963         * Release 0.36.2
964
965         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
966
967         * bus/policy.c (bus_policy_allow_user): change default "user is
968         allowed" to be "user has same uid as the bus itself"; any
969         allow/deny rules will override.
970
971         * bus/session.conf.in: don't allow all users, since now by default
972         the user that ran the bus can connect.
973
974 2005-08-26  Colin Walters  <walters@verbum.org>
975
976         * tools/dbus-print-message.c (print_message): Flush stdout
977         after printing a message, so that redirecting to a file, then
978         hitting Ctrl-C works.
979
980 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
981
982         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
983         (EmptyMessage): new class that subclasses Message.  This is a workaround
984         to a Pyrex bug that fails to call __del__ when the Message object goes out
985         of scope.  For some reason subclassing Message fixes this bug
986         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
987         - s/Message(_create=0)/EmptyMessage everywhere else
988         
989         * test/python/test-{server|client}.py: add the python/.libs directory
990         to the lookup path so dbus_bindings and dbus_glib_bindings don't
991         get picked up from the system
992
993 2005-08-25  Colin Walters  <walters@verbum.org>
994
995         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
996         to Ryan Lortie for the suggestion.
997
998 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
999
1000         * test/python: Add python regression test
1001
1002         * configure.in: Add test/python/Makefile
1003
1004         * test/Makefile.am: Add the python directory to SUBDIRS
1005
1006 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1007
1008         * Release 0.36.1
1009
1010         * python/_dbus.py: 
1011         (Interface::connect_to_signal): propigate keywords for match on args
1012         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1013
1014         * python/proxies.py (ProxyObject::connect_to_signal):
1015         propigate keywords for match on args
1016
1017         * Makefile.am: point everything to pyexecdir since python borks
1018         on multilib
1019
1020 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1021
1022         * Release 0.36
1023
1024 2005-08-23  Colin Walters  <walters@verbum.org>
1025
1026         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1027
1028 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1029
1030         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1031         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1032         of defining DBusConnection ourselves.
1033
1034 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1035
1036         * python/dbus.pth: New path file to fix up problems when installing
1037         c libraries to lib64 and python files to lib.
1038
1039         * python/Makefile.am: install dbus.pth in the correct spot
1040
1041 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1042         * ChangeLog: clean up my last entry a bit
1043
1044         * doc/introspect.xsl: New stylesheet for converting introspection data
1045         into browser renderable xhtml. Contributed by Lennart Poettering.
1046
1047         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1048         Poettering.
1049
1050         * doc/dbus-tutorial.xml: 
1051         - Add Colin Walter to the Authors section for authoring the GLib
1052         section
1053         - Add descriptions of the new signature and type functionality
1054         in the Python complex type mapping section
1055         - Add a sidenote on the new args matching functionality in 
1056         the Python bindings
1057         - Fixed up some of the examples to use the gobject.MainLoop
1058         instead of gtk.main
1059         
1060         * python/_dbus.py:
1061         (Bus::_create_args_dict): New. Converts a hash of arg matches
1062         to a more useable format
1063         (Bus::add_signal_receiver): add a **keywords parameter for catching
1064         arg match parameters
1065         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1066         arg match parameters
1067         
1068         * python/matchrules.py:
1069         (MatchTree::exec_matches): Check for arg matches
1070         (SignalMatchRule::add_args_match): New method
1071         (SignalMatchRule::execute): Added args_list parameter as an optimization
1072         so we don't have to marshal the args more than once
1073         (SignalMatchRule::match_args_from_list): New method that checks to see
1074         if the rule's arg matches match an argument list.  Only arguments
1075         set in the rule are checked.
1076         (SignalMatchRule::match_args_from_rule): New method that checks to see
1077         if the rule's arg matches match another rule's.  All args have to match
1078         in order for this method to return true.  If either rule has more args
1079         then it is not a match.
1080         (SignalMatchRule::is_match): Add args match
1081         (SignalMatchRule::repr): Add args to the final output if they exist
1082
1083 2005-08-17  Ross Burton  <ross@burtonini.com>
1084
1085         * glib/dbus-gproxy.c:
1086         (dbus_g_proxy_call_no_reply): unref the message once sent.
1087         (dbus_g_proxy_call): protect against NULL proxy.
1088
1089 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1090
1091         * python/__init__.py: Version updated (0, 43, 0)
1092         
1093         * python/dbus_bindings.pyx: 
1094         - Fixed type objects to have self passed into __init__
1095         - Added the Variant type
1096         - Add the ability to specify types or signatures for Array, Variant 
1097         and Dictionary
1098         (Connection::send_with_reply_handlers): return a PendingCall object
1099         (_pending_call_notification): handle the case when an error is returned 
1100         without an error message in the body
1101         (MessageIter::get_boolean): return True or False instead of an integer
1102         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1103         and add checks for objects with embeded signatures or types (Array, 
1104         Variant and Dictionary)
1105         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1106         (MessageIter::append_dict): handle embeded types or signatures
1107         (MessageIter::append_array): handle embeded types or signatures
1108         (MessageIter::append_variant): new method
1109         
1110         * python/proxies.py:
1111         (DeferedMethod): New. Dummy executable object used when queuing calls 
1112         blocking on introspection data
1113         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1114         or shorter timeouts for method calls
1115         (ProxyObject): Add first pass at an introspection state machine
1116         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1117         introspection. 
1118         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1119         the usual mechanisms for sending messages.  This is to avoid a deadlock
1120         where the Intospect call would be queued waiting for the Introspect 
1121         call to finish ;-)
1122         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1123         when introspection returns with no error
1124         (ProxyObject::_introspect_error_handler): New.  This method is called 
1125         when introspection encounters an error
1126         (ProxyObject::__getattr__): Code to handle different introspection 
1127         states.  Queue async calls or block blocking calls if we are 
1128         introspecting.  Pass through as normal if we are not or are done with 
1129         introspecting.
1130         
1131         * python/service.py: Import signal and method from decorators.py
1132
1133         * python/types.py: Add Variant type
1134
1135 2005-08-16  Colin Walters  <walters@verbum.org>
1136
1137         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1138         DBusError message is NULL.
1139
1140 2005-08-09  Havoc Pennington  <hp@redhat.com>
1141
1142         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1143         malloc'd copy of the name parameter
1144
1145 2005-08-09  Havoc Pennington  <hp@redhat.com>
1146
1147         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1148         warning if the reply serial is set to 0
1149
1150 2005-08-04  Colin Walters  <walters@verbum.org>
1151
1152         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1153         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1154         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1155         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1156         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1157         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1158         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1159         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1160         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1161         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1162         
1163         Prefix name with _ to ensure they're not exported.  All callers
1164         updated.
1165
1166         * glib/dbus-gvalue.c (typecode_to_gtype)
1167         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1168         (signature_iter_to_g_type_dict)
1169         (signature_iter_to_g_type_array)
1170         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1171         (dbus_gtypes_from_arg_signature):
1172         Move to dbus-gsignature.c.
1173
1174         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1175         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1176         (dbus_binding_tool_output_glib_client): Ditto.
1177
1178         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1179         and dbus-gsignature.h
1180
1181         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1182         unused variable.
1183
1184 2005-08-03  Colin Walters  <walters@verbum.org>
1185
1186         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1187         catch any incompatible changes accidentally made.
1188
1189 2005-08-03  Havoc Pennington  <hp@redhat.com>
1190
1191         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1192         typo, from Julien Puydt
1193
1194         * bus/connection.c (bus_connection_disconnected): we were always
1195         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1196
1197 2005-08-01  Colin Walters  <walters@verbum.org>
1198
1199         Patch from Joe Markus Clarke:   
1200         
1201         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1202         use-after-free.
1203
1204 2005-08-01  Colin Walters  <walters@verbum.org>
1205         
1206         Patch from Joe Markus Clarke:   
1207         
1208         * tools/dbus-send.c (main): 
1209         
1210         Don't use C99 style initializers (bug #3933).
1211         
1212 2005-08-01  Colin Walters  <walters@verbum.org>
1213
1214         Patch from Joe Markus Clarke:   
1215
1216         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1217         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1218         * glib/dbus-gobject.c (write_interface):
1219
1220         Don't use C99 style initializers (bug #3933).
1221
1222 2005-07-31  Havoc Pennington  <hp@redhat.com>
1223
1224         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1225         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1226
1227 2005-07-30  Havoc Pennington  <hp@redhat.com>
1228
1229         * fix a bunch of Doxygen warnings and mistakes
1230
1231 2005-07-30  Havoc Pennington  <hp@redhat.com>
1232
1233         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1234         DBUS_BUILD_TESTS since it's now used in production code
1235
1236 2005-07-29  Havoc Pennington  <hp@redhat.com>
1237
1238         * test/glib/test-profile.c (write_junk): initialize the junk
1239         buffer so valgrind doesn't have a breakdown
1240
1241 2005-07-29  Havoc Pennington  <hp@redhat.com>
1242
1243         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1244         (match_rule_matches): remove unused arg
1245         (test_matching): add tests for match_rule_matches()
1246
1247         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1248         do arg0='foo' arg5='bar' in the match rules
1249         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1250
1251         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1252
1253 2005-07-29  Ross Burton  <ross@openedhand.com>
1254
1255         * dbus/dbus-connection.c:
1256         Don't create a DBusCondVar which is never used.
1257
1258 2005-07-27  Ross Burton  <ross@openedhand.com>
1259
1260         * dbus/dbus-message.c:
1261         Reduce the size of the maximum cached message to 10K.
1262
1263 2005-07-25  Ross Burton  <ross@openedhand.com>
1264
1265         * glib/dbus-gproxy.c:
1266         Remove matches when all proxies are unregistered.
1267
1268 2005-07-24  Colin Walters  <walters@verbum.org>
1269
1270         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1271         typedata; recursive arrays won't have it.
1272
1273         * test/glib/test-dbus-glib.c:
1274         * test/glib/test-service-glib.c:
1275         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1276         
1277 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1278
1279         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1280         proxies.py, service.py: Cleanup of code after running it through the
1281         pyflakes code checker mostly dealing with undefined names.  
1282         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1283
1284 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1285
1286         * NEWS: Update to 0.35.2
1287
1288 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1289
1290         * python/_dbus.py: Remove import of the dbus.services
1291         module as it no longer exists (patch from Dimitur Kirov)
1292
1293         * python/service.py (Object::__init__): Fixed typo
1294         s/name/bus_name (patch from Dimitur Kirov)
1295
1296         * python/examples/example-signal-emitter.py: import dbus.glib
1297         to get the main loop and use glib mainloop instead of gtk so
1298         X doesn't have to be running.
1299
1300         * python/examples/example-signal-recipient.py: import dbus.glib
1301         to get the main loop and use glib mainloop instead of gtk so
1302         X doesn't have to be running. Import the decorators module
1303         directly.
1304
1305         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1306         didn't pick up on but are needed to build
1307
1308         * configure.in: upped version to 0.35.2
1309
1310         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1311         added Colin Walters' SELinux API rename patch from head 
1312         s/unix sercurity context/selinux security context/
1313
1314 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1315
1316         * python/Makefile.am: dbus_binding.pxd.in should be included 
1317         in EXTRA_DIST not dbus_binding.pxd
1318         fix up $(srcdir) hopefully for the last time
1319
1320         * NEWS: Update to 0.35.1
1321
1322 2005-07-16  Colin Walters  <walters@verbum.org>
1323
1324         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1325         from bus_driver_handle_get_connection_unix_security_context.  Update for
1326         error usage.
1327         (message_handlers): Update for renames.
1328
1329         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1330         _dbus_string_init failure correctly.
1331         (bus_selinux_append_context): Convert SID to context.  Append it
1332         as a byte array.
1333         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1334         hasn't been called.
1335
1336         * bus/selinux.h: Update prototype.
1337
1338         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1339         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1340
1341 2005-07-15  Colin Walters  <walters@verbum.org>
1342
1343         * doc/TODO: Add note about convenience wrappers.
1344
1345 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1346
1347         * NEWS: Update to 0.35
1348
1349 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1350
1351         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1352         so distcheck doesn't fail
1353
1354         * glib/examples/Makefile.am: Add example-service.xml and 
1355         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1356
1357         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1358         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1359
1360         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1361         compiler looks in the right places during distcheck
1362
1363 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1364
1365         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1366         to fail
1367
1368 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1369
1370         * python/examples/example-service.py,
1371         python/examples/example-signal-emitter.py: Fixed up examples
1372         for API changes
1373
1374 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1375
1376         * python/__init__.py: Upped to version (0,42,0) because of
1377         the API change
1378
1379 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1380
1381         * ChangeLog: fix date in last entry
1382
1383         * configure.in, bus/system.conf.in: add the ability to configure 
1384         the system bus user at compiletime with the --with-dbus-user flag
1385         (patch from Kristof Vansant)
1386
1387 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1388
1389         * bus/dispatch.c, test/test-service.c: Add testcase
1390         for sending messages to oneself (TODO item).
1391
1392         * python/service.py (class Object): Swap ordering of bus_name 
1393         and object_path parameters to better support inheritance.
1394
1395         * doc/dbus-tutorial.xml: change Python docs to reflect change
1396         in parameter ordering and fix the inheritance section.
1397
1398         * doc/TODO: remove sending message to oneself TODO item
1399
1400 2005-07-15  Ross Burton  <ross@openedhand.com>
1401
1402         * glib/dbus-gproxy.c:
1403         Fix a leak when calling methods via the proxy.
1404
1405 2005-07-15  Colin Walters  <walters@verbum.org>
1406
1407         * bus/selinux.c (bus_selinux_append_context): Wrap in
1408         HAVE_SELINUX.
1409
1410 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1411
1412         * python/_dbus.py (Bus::remove_signal_receiver):
1413         don't add a callback to the match if none has been passed in
1414         
1415         * python/matchrules.py (SignalMatchTree::remove): if the rule
1416         being matched does not have a callback treat it as a wildcard
1417         fix matching logic
1418
1419         * doc/dbus-tutorial.xml: Add Python tutorial
1420
1421 2005-07-14  Colin Walters  <walters@verbum.org>
1422
1423         * bus/driver.c
1424         (bus_driver_handle_get_connection_unix_security_context): New function.
1425         (message_handlers): Add.
1426
1427         * bus/selinux.c (bus_selinux_append_context): New function; appends
1428         security context to message.
1429
1430         * bus/selinux.h: Prototype.
1431
1432         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1433
1434 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1435
1436         * bus/activation.c: clean up all tabs to be 8 spaces 
1437         (bus_activation_activate_service): make sure we clean up
1438         if activation fails
1439
1440         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1441         (check_shell_fail_service_auto_start): New function
1442         tests to make sure we get fail properly when trying to auto start a service
1443         with a faulty command line
1444         (check_shell_service_success_auto_start): New function tests to make sure
1445         auto started services get the arguments on the command line
1446
1447         * test/test-shell-service.c: Added service for testing auto-starting with 
1448         command line arguments
1449
1450         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1451         test/data/valid-service-files/debug-shell-echo-success.service.in:
1452         Added service files for testing auto-starting with command line arguments
1453
1454         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1455
1456 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1457
1458         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1459         
1460         * dbus/Makefile.am: added new files to build.
1461
1462         * bus/activation.c (bus_activation_activate_service): support
1463         activation commands with parameters.
1464
1465         * test/shell-test.c: added test program for the shell parsing
1466         code.
1467
1468 2005-07-13  David Zeuthen  <davidz@redhat.com>
1469
1470         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1471         64 bit signed and unsigned parameters
1472
1473 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1474
1475         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1476
1477         * python/service.py (class Name): renamed BusName to make it clearer
1478         what the object is for (a name on the bus)
1479
1480         * python/examples/example-service.py,
1481         python/examples/example-signal-emitter.py: change the Name object to
1482         BusName
1483
1484 2005-07-12  Colin Walters  <walters@verbum.org>
1485
1486         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1487
1488         * tools/dbus-launch.c: Include sys/select.h.
1489
1490 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1491         * python/dbus_bindings.pyx.in: removed
1492
1493         * python/dbus_bindings.pyx: Added.
1494         - Fixed some memleaks (patch from 
1495         Sean Meiners <sean.meiners@linspireinc.com>)
1496         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1497         own pxd file (Pyrex definition)
1498         - Broke out glib dependancies into its own pyx module
1499         
1500         * python/dbus_bindings.pdx: Added.
1501         - Defines C class Connection for exporting to other modules
1502
1503         * python/dbus_glib_bindings.pyx: Added.
1504         - New module to handle lowlevel dbus-glib mainloop integration
1505
1506         * python/glib.py: Added.
1507         - Registers the glib mainloop when you import this module
1508
1509         * python/services.py: Removed (renamed to service.py)
1510         
1511         * python/service.py: Added.
1512         - (class Server): renamed Name
1513
1514         * python/__init__.py: Bump ro version (0,41,0)
1515         -don't import the decorators or service module
1516         by default.  These now reside in the dbus.service namespace
1517
1518         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1519         setup function on creation 
1520
1521         * python/examples/example-service.py,
1522         python/examples/example-signal-emitter.py: update examples
1523
1524         * python/examples/gconf-proxy-service.py,
1525         python/examples/gconf-proxy-service2.py: TODO fix these up
1526
1527         * doc/TODO: Addition
1528         - Added a Python Bindings 1.0 section
1529         - added "Add match on args or match on details to match rules"
1530
1531
1532 2005-07-12  Colin Walters  <walters@verbum.org>
1533
1534         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1535         (statemachine-glue.h): 
1536         * glib/examples/Makefile.am (example-service-glue.h) 
1537         (example-signal-emitter-glue.h): 
1538         * glib/Makefile.am (dbus-glib-error-switch.h): 
1539         Add libtool --mode=execute so we use the built library instead
1540         of any installed one.
1541
1542 2005-07-11  Colin Walters  <walters@verbum.org>
1543
1544         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1545         (dbus_g_value_types_init): Remove assertion.
1546         (dbus_g_value_get_g_type, dbus_g_value_open)
1547         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1548         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1549         functions related to DBusGValue.  Now we marshal/demarshal
1550         structures as GValueArray.
1551         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1552         structures.
1553         (signature_iter_to_g_type_array): Don't call
1554         signature_iter_to_g_type_struct.
1555         (signature_iter_to_g_type_struct): Delete.
1556         (dbus_gvalue_to_signature): Delete.
1557         (dbus_gvalue_to_signature): New function with same name as other
1558         one; we can convert structures to signatures.
1559         (demarshal_valuearray): New function.
1560         (get_type_demarshaller): Use it.
1561         (demarshal_recurse): Delete.
1562         (marshal_proxy): New function.
1563         (marshal_map): Warn if we can't determine signature from type.
1564         (marshal_collection_ptrarray): Ditto.
1565         (marshal_collection_array): Ditto.
1566         (get_type_marshaller): Use marshal_valuearray.
1567         (marshal_recurse): Delete.
1568         (_dbus_gvalue_test): Add some tests.
1569
1570         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1571         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1572         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1573         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1574         (dbus_g_value_free): Remove prototypes.
1575
1576         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1577         G_TYPE_VALUE_ARRAY.
1578
1579         * glib/examples/example-service.c:
1580         * glib/examples/example-client.c: Implement GetTuple.
1581
1582         * test/glib/test-dbus-glib.c:
1583         * test/glib/test-service-glib.c:
1584         * test/glib/test-service-glib.xml: Add structure tests.
1585
1586 2005-07-10  Colin Walters  <walters@verbum.org>
1587
1588         * doc/TODO: Knock off some GLib items with this patch.
1589
1590         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1591         (_dbus_gvalue_signals_error): New functions.
1592
1593         * glib/dbus-gvalue-utils.h: Prototype them.
1594
1595         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1596         and change to not output const/retval flags for input args.  All
1597         callers updated.
1598         (invoke_object_method): Refactor to handle return values.  Add
1599         some more comments in various places.  Remove debug g_print.
1600
1601         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1602
1603         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1604         Handle G_TYPE_NONE.
1605         (compute_gsignature): New function; refactored from code from
1606         compute_marshaller and compute_marshaller_name.  Enhance to
1607         handle return values and async ops more cleanly.  Update for
1608         async ops returning NONE instead of BOOLEAN.
1609         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1610         and output appropriate string.
1611         (generate_glue): Handle return value annotation.  Also don't dump
1612         constness flag for input arguments.
1613
1614         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1615         files shared between installed library and utilities.
1616         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1617         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1618         binding tool can access gtype utility functions.
1619
1620         * test/glib/test-service-glib.c: 
1621         * test/glib/test-service-glib.xml: 
1622         * test/glib/test-dbus-glib.c: Add some tests for return values.
1623
1624 2005-07-09  Colin Walters  <walters@verbum.org>
1625
1626         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1627         argument if available, not method.
1628
1629         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1630         (invoke_object_method): First, remove some redundant
1631         GValues (object_value, error_value) in favor of working on
1632         array directly.  Second, rework constness to be less buggy.
1633         Now we iterate directly over the argument metadata instead
1634         of parallel iterating over output signature and metadata.
1635
1636         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1637
1638         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1639         annotation on input args.
1640         
1641 2005-07-09  Colin Walters  <walters@verbum.org>
1642
1643         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1644         Define.
1645
1646         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1647         annotation.
1648
1649         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1650         (method_dir_signature_from_object_info): Handle arg_iterate change.
1651         (write_interface): Ditto.
1652         (lookup_object_info): Don't barf if format_version is > 0.
1653         (invoke_object_method): Handle arg constness.
1654
1655         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1656         (arg_info_new): Create.
1657         (arg_info_unref): Destroy.
1658         (arg_info_get_annotations, arg_info_get_annotation) 
1659         (arg_info_add_annotation): New functions.
1660
1661         * glib/dbus-gidl.h: Prototype them.
1662
1663         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1664         args, disallow them in properties.
1665         (parse_annotation): Handle arg annotations.
1666
1667         * test/glib/test-service-glib.xml: 
1668         * test/glib/test-service-glib.c: Update to make some methods
1669         const.
1670
1671 2005-07-08  Colin Walters  <walters@verbum.org>
1672
1673         * test/glib/test-service-glib.xml: 
1674         * test/glib/test-service-glib.c:
1675         * test/glib/test-dbus-glib.c: Test a{sv}.
1676
1677         * glib/examples/statemachine/statemachine.c:
1678         * glib/examples/statemachine/statemachine-server.c:
1679         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1680         add progress bar, etc.
1681
1682         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1683         needed anymore due to generic array/map marshalling.
1684         (dbus_g_value_types_init): Don't register basic arrays or the
1685         string/string hash.
1686         (dbus_gtype_from_signature_iter): Don't try to recurse into
1687         variants.
1688         (dbus_gtype_to_signature): Check collection/map before type
1689         metadata.
1690         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1691         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1692         generic map creation/append functions instead of hash table
1693         specifically.
1694         (get_type_demarshaller): Handle maps.
1695         (demarshal_collection): Dispatch on collection type to either
1696         demarshal_collection_ptrarray or demarshal_collection_array.
1697         (get_type_marshaller): Handle maps.
1698         (marshal_collection): Dispatch collection type to either
1699         marshal_collection_ptrarray or marshal_collection_array.
1700         (_dbus_gvalue_test): New test.
1701
1702         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1703         (hash_free_from_gtype): Use it to free GValues.
1704         (hashtable_append): New function.
1705         (ptrarray_append): Fix prototype.
1706         (slist_append): Ditto.
1707         (_dbus_gvalue_utils_test): Extend tests.
1708
1709         * glib/dbus-gtype-specialized.c
1710         (dbus_g_type_specialized_init_append): Renamed from
1711         dbus_g_type_specialized_collection_init_append.  Remove const from
1712         value, since we steal it.
1713         (dbus_g_type_specialized_map_append): New function.
1714
1715         * glib/dbus-gtype-specialized.h: Update prototypes.
1716         Add DBusGTypeSpecializedMapAppendFunc.
1717
1718         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1719         _dbus_gvalue_test.
1720         
1721         * glib/dbus-gtest.h: Prototype it.
1722
1723 2005-07-08  Ross Burton  <ross@openedhand.com>
1724
1725         * dbus/dbus-glib.h:
1726         Add DBysGAsyncData for the async bindings.
1727
1728         * glib/dbus-binding-tool-glib.c:
1729         Re-enable the async bindings.
1730
1731         * test/glib/test-dbus-glib.c:
1732         Add a test for the generated async bindings.
1733
1734 2005-07-08  Colin Walters  <walters@verbum.org>
1735
1736         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1737         connection concept.
1738         
1739 2005-07-08  Colin Walters  <walters@verbum.org>
1740         
1741         * tools/Makefile.am: Kill of print-introspect in favor of using
1742         dbus-send --print-reply=literal.
1743
1744         * test/glib/test-service-glib.xml: 
1745         * test/glib/test-service-glib.c (my_object_get_objs): New test
1746         for "ao".
1747
1748         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1749         (main): Test GetObjs.
1750
1751         * glib/examples/statemachine/Makefile.am:
1752         * glib/examples/statemachine/sm-marshal.list:
1753         * glib/examples/statemachine/statemachine-client.c:
1754         * glib/examples/statemachine/statemachine-server.c:
1755         * glib/examples/statemachine/statemachine-server.xml:
1756         * glib/examples/statemachine/statemachine.c:
1757         * glib/examples/statemachine/statemachine.h:
1758         * glib/examples/statemachine/statemachine.xml:
1759
1760         New example.
1761
1762         * glib/examples/example-service.c (main): Move invocation
1763         of dbus_g_object_type_install_info earlier, to emphasize it
1764         should only be done once.
1765
1766         * glib/examples/example-signal-emitter.c (main): Ditto.
1767
1768         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1769
1770         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1771         (dbus_gvalue_marshal): Update prototypes.
1772
1773         * glib/dbus-gvalue.c: Update all marshalling functions to take
1774         const GValue instead of GValue.
1775         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1776         types.
1777         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1778         change.
1779         (dbus_gtype_to_signature): Handle generic collecitons and maps.
1780         Return a newly-allocated string.
1781         (demarshal_proxy, demarshal_object_path, demarshal_object)
1782         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1783         we get the wrong types from message.
1784         (get_type_demarshaller): New function, extracted from
1785         dbus_gvalue_demarshal.
1786         (demarshal_collection): New function, demarshals generic
1787         collection.
1788         (dbus_gvalue_demarshal): Just invoke result of
1789         get_type_demarshaller.  Throw error if we don't have one.
1790         (marshal_garray_basic): Abort on OOM.
1791         (get_type_marshaller): New function, extracted from
1792         dbus_gvalue_marshal.
1793         (collection_marshal_iterator, marshal_collection): New functions;
1794         implements generic marshalling for an iteratable specialized
1795         collection.
1796         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1797
1798         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1799         G_TYPE_STRING.
1800         (ptrarray_value_from_gvalue): Ditto.
1801         (ptrarray_append, ptrarray_free): New functions.
1802         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
1803         (slist_append, slist_end_append, slist_free): New functions.
1804         (dbus_g_type_specialized_builtins_init): Add append fuctions
1805         for GPtrArray and GSList.  Register GSList.
1806         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1807
1808         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1809         New.
1810         (dbus_g_type_specialized_collection_init_append)
1811         (dbus_g_type_specialized_collection_append)
1812         (dbus_g_type_specialized_collection_end_append): Prototype.
1813         (DBusGTypeSpecializedCollectionVtable): Add append_func and
1814         end_append_func.
1815
1816         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
1817         (dbus_g_type_specialized_collection_append) 
1818         (dbus_g_type_specialized_collection_end_append): New functions.
1819         (dbus_g_type_map_value_iterate): Take const GValue.
1820         (dbus_g_type_collection_value_iterate): Ditto.
1821
1822         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1823         _dbus_gvalue_utils_test.
1824         
1825         * glib/dbus-gtest.h: Prototype it.
1826
1827         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1828         using uninitialized owner_list.
1829         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1830         public API.
1831         (dbus_g_proxy_end_call_internal): Update to use error set
1832         from dbus_gvalue_demarshal instead of setting it here.
1833         (dbus_g_proxy_begin_call): Move return_if_fail here.
1834
1835         * glib/dbus-gobject.c (write_interface): Update for
1836         dbus_gtype_to_signature returning new string.
1837
1838         * configure.in: Add glib/examples/statemachine.
1839
1840 2005-07-08  Joe Shaw  <joeshaw@novell.com>
1841
1842         * configure.in: Add a configure option, --with-console-auth-dir
1843         
1844         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1845         new setting.  Patch from Kay Sievers.
1846
1847 2005-07-06  Colin Walters  <walters@verbum.org>
1848
1849         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1850         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1851         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1852         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1853         Delete in favor of dbus_g_proxy_begin_call and
1854         dbus_g_proxy_cancel_call.
1855         (DBusGProxyCall, DBusGProxyCallNotify): New.
1856         (dbus_g_proxy_begin_call): Change prototype to take callback, user
1857         data, and destroy function.  This replaces
1858         dbus_g_pending_call_set_notify.
1859         (dbus_g_proxy_cancel_call): Prototype.
1860         (DBusGAsyncData): Delete, shouldn't be needed anymore.
1861
1862         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1863         pending_calls map.
1864         (struct _DBusGProxyManager): Add bus_proxy member, which is an
1865         internal proxy for calls to the bus. Remove
1866         pending_nameowner_calls, now the internal proxy keeps track.
1867         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1868         pending_nameowner_calls.
1869         (got_name_owner_cb): Update prototype, and use
1870         dbus_g_proxy_end_call.
1871         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1872         (dbus_g_proxy_manager_register): Delete directly libdbus code in
1873         favor of using internal proxy.
1874         (dbus_g_proxy_manager_unregister): Update to use
1875         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1876         (dbus_g_proxy_init): Initialize pending calls map.
1877         (dbus_g_proxy_constructor): New.
1878         (dbus_g_proxy_class_init): Add get/set property functions,
1879         constructor, and add NAME, PATH, and INTERFACE properties.
1880         (cancel_pending_call): New function.
1881         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1882         cancel them.
1883         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1884         (GPendingNotifyClosure): New structure.
1885         (d_pending_call_notify, d_pending_call_free): Moved here from
1886         dbus-glib.c.
1887         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1888         ordering.
1889         (manager_begin_bus_call): New internal function for talking to
1890         internal bus proxy.
1891         (dbus_g_proxy_new): Construct object using GObjet properties.
1892         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1893         Create closure of same, and insert call into map of pending calls.
1894         (dbus_g_proxy_end_call_internal): Take call id instead of pending
1895         call.  Look up pending call in current set.  Remove it when we've
1896         completed.
1897         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1898         (dbus_g_proxy_begin_call): Change API to take callback, user data,
1899         and destroy function directly.
1900         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1901         (dbus_g_proxy_call): Invoke with NULL callback.
1902         (dbus_g_proxy_cancel_call): New function, replaces
1903         dbus_g_pending_call_cancel.
1904
1905         * glib/dbus-gparser.c (validate_signature): Fix call to
1906         dbus_set_g_error.
1907
1908         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1909         New quark for attaching metadata to GType.
1910         (info_hash): Delete.
1911         (lookup_object_info): Look up using quark.
1912         (dbus_g_object_type_install_info): Check that a type is classed,
1913         not that it's an object.  Also just install type data using quark
1914         instead of using global hash.
1915
1916         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
1917         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1918         (GPendingNotifyClosure): Delete.
1919         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1920         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1921
1922         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1923         client method generation until we can fix it...
1924         
1925         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1926         (load_from_service_thread_func): Ditto.
1927
1928         * tools/dbus-names-model.c (struct NamesModel): Hold
1929         DBusGProxyCall.
1930         (have_names_notify): Update prototype, use
1931         dbus_g_proxy_cancel_call.
1932         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1933
1934         * tools/dbus-monitor.c (filter_func): Update for print_message
1935         API change.
1936
1937         * test/glib/test-dbus-glib.c: Add more tests for async
1938         invocations.  Update many begin_call/end_call pairs to just use
1939         dbus_g_proxy_call.
1940
1941         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
1942         allows us to dump print-introspect.c.
1943
1944         * tools/dbus-print-message.h (print_message): Add literal argument
1945         to print_message which is intended to allow printing arguments without
1946         metadata like "string=".
1947
1948         * tools/dbus-print-message.c (print_iter): Add literal argument.
1949         (print_message): Allow printing string messages literally.
1950
1951 2005-07-05  Colin Walters  <walters@verbum.org>
1952
1953         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1954         Remove value refcount leak, original patch from Jorn Baayen
1955         <jorn@openedhand.com>.  Also remove useless extra value in favor
1956         of prepending to value array directly.
1957
1958 2005-07-02  Colin Walters  <walters@verbum.org>
1959
1960         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1961
1962 2005-07-01  Colin Walters  <walters@verbum.org>
1963
1964         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1965         
1966         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1967         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1968         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1969         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1970
1971 2005-06-30  Colin Walters  <walters@verbum.org>
1972
1973         * test/glib/test-dbus-glib.c:
1974         * test/glib/test-service-glib.c:
1975         * test/glib/test-service-glib.xml: Update tests for new error
1976         setting bits, also add async tests (patch from Ross Burton).
1977
1978         * test/glib/Makefile.am (test_service_glib_LDADD): Add
1979         DBUS_GLIB_THREADS_LIBS.
1980
1981         * glib/dbus-gproxy.c (get_name_owner)
1982         (dbus_g_pending_call_end_valist): Ditto.
1983
1984         * glib/dbus-gobject.c (error_metadata): New mapping from GError
1985         domain (GQuark) to DBusGErrorInfo.  
1986         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
1987         quark in error_metadata.  Take message interface as default
1988         error message interface.
1989         (gerror_to_dbus_error_message): Pass message interface.
1990         (dbus_set_g_error): Resurrected.
1991         (dbus_g_error_info_free): New function.
1992         (dbus_g_object_type_install_info): Use g_type_class_ref instead
1993         of _peek to actually create the object class if it hasn't been
1994         created yet.
1995         (dbus_g_error_domain_register): New function.
1996
1997         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
1998
1999         * glib/dbus-gparser.c (validate_signature): Ditto.
2000
2001         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2002         (dbus_g_error_domain_register): Prototype.
2003
2004         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2005         Update tests.
2006
2007 2005-06-29  Colin Walters  <walters@verbum.org>
2008
2009         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2010         DBUS_TYPE_G_OBJECT_PATH.
2011
2012         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2013         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2014         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2015         (dbus_g_object_path_get_g_type): New function.
2016         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2017         to DBUS_TYPE_G_OBJECT_PATH by default.
2018         (demarshal_proxy): Remove unused name variable.
2019         (demarshal_object_path, marshal_object_path): New functions.
2020         (demarshal_proxy_array, marshal_proxy_array): Delete.
2021         
2022         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2023         DBUS_TYPE_G_OBJECT_PATH to char *.
2024         (dbus_g_type_get_lookup_function): Map builtin
2025         DBUS_TYPE_G_OBJECT_PATH.
2026
2027         * test/glib/test-dbus-glib.c
2028         * test/glib/test-service-glib.c (my_object_objpath): 
2029         Adapt tests to new object path marshalling.
2030
2031 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2032
2033         * configure.in: force check for Python >= 2.4
2034
2035 2005-06-29  Colin Walters  <walters@verbum.org>
2036         
2037         Patch from Ross Burton <ross@openedhand.com>
2038         
2039         * glib/dbus-gobject.c (invoke_object_method): Unset object
2040         value in all cases, not only in async case.
2041
2042 2005-06-29  Colin Walters  <walters@verbum.org>
2043
2044         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2045         name_call for keeping track of any outgoing GetNameOwner call.
2046         Also add for_owner and associated.
2047         (struct _DBusGProxyManager): Add owner_names, which is hash table
2048         that maps a base name to a list of names it owns (that we're
2049         interested in).  Add pending_nameowner_calls which is a list of
2050         all outstanding GetNameOwner; avoids us having to iterate over
2051         every proxy.  Add unassociated_proxies which keeps track of name
2052         proxies with no associated name owner.
2053         (dbus_g_proxy_manager_unref): Destroy owner_names.
2054         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2055         name refcounts.
2056         (find_name_in_info, name_owner_foreach)
2057         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2058         (dbus_g_proxy_manager_monitor_name_owner)
2059         (dbus_g_proxy_manager_unmonitor_name_owner)
2060         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2061         New functions; they manipulate the owner_names mapping.
2062         (got_name_owner_cb): New function.
2063         (get_name_owner): New function, extracted from
2064         dbus_g_proxy_new_for_name_owner.
2065         (dbus_g_proxy_manager_register): For now we need to keep track of
2066         all NameOwnerChanged.  Also if the proxy is for a name, if we
2067         don't already know the name owner, queue a new GetNameOwner
2068         request and add it to our list of unassociated proxies.  Otherwise
2069         inc the refcount.
2070         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2071         cancel any pending GetNameOwner call, etc.
2072         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2073         the owner_names mapping to look up the current names for the
2074         signal source, and dispatch to any proxies for that name.
2075         (dbus_g_proxy_new): Initialize new members.
2076         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2077         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2078         (dbus_g_pending_call_end_valist): New function, extracted from
2079         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2080         but want to use the GLib infrastructure.  Also note how many
2081         arguments in reply were over.
2082         (dbus_g_pending_call_end): New function, just call
2083         dbus_g_pending_call_end_valist.
2084         (dbus_g_proxy_end_call_internal): Just call
2085         dbus_g_pending_call_end_valist.
2086
2087         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2088         of builtin marshaller for STRING_STRING_STRING.
2089
2090         * test/glib/test-dbus-glib.c: 
2091         * test/glib/test-service-glib.c:
2092         * test/glib/test-service-glib.xml:
2093         Extend tests to cover name proxies, destruction of owner proxies,
2094         etc.
2095         
2096         * glib/examples/example-signal-recipient.c
2097         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2098         
2099         * tools/dbus-send.c (main): Print D-BUS error name in addition
2100         to message.
2101
2102 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2103
2104         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2105         cmessage_function_handler): Patch from 
2106         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2107         by using the Py_GILState_Ensure/Release to synchronize with the
2108         python runtime.
2109         
2110 2005-06-28  Ray Strode  <rstrode@redhat.com>
2111
2112         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2113         babysitter helper process on last unref, bug #2813.
2114
2115 2005-06-27  Colin Walters  <walters@verbum.org>
2116
2117         * test/glib/test-dbus-glib.c: 
2118         * test/glib/test-service-glib.c:
2119         * test/glib/test-service-glib.xml:
2120         Test hash table signal emitting.
2121
2122         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2123         types to their fundamental basis types, since this is what
2124         marshallers operate on.  Also add an entry for VOID__BOXED.
2125         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2126
2127 2005-06-26  Havoc Pennington  <hp@redhat.com>
2128
2129         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2130         from Don Park
2131
2132 2005-06-26  Colin Walters  <walters@verbum.org>
2133
2134         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2135         (dbus_g_error_set): New public function from its ashes; used by
2136         both service-side method implementation and GLib bindings
2137         internals.
2138         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2139         (_dbus_glib_test): Add some tests.
2140
2141         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2142
2143         * test/glib/test-service-glib.c (my_object_throw_error): Use
2144         dbus_g_error_set.
2145
2146         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2147         errors thrown by dbus_g_error_set.
2148
2149         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2150
2151         * glib/dbus-gparser.c (validate_signature): Ditto.
2152
2153         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2154         (dbus_g_proxy_end_call_internal): Ditto.
2155
2156         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2157         converts DBUS_ERROR_x to DBUS_GERROR_x.
2158         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2159
2160         * doc/TODO: Remove error TODO.
2161
2162         * doc/dbus-tutorial.xml: Update with documentation about error
2163         handling.
2164
2165         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2166         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2167         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2168
2169 2005-06-22  Colin Walters  <walters@verbum.org>
2170         
2171         Patch from Ross Burton <ross@openedhand.com>
2172
2173         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2174
2175 2005-06-20  Colin Walters  <walters@verbum.org>
2176
2177         * configure.in: Add glib/examples.
2178
2179         * glib/Makefile.am: Add examples/
2180
2181         * glib/examples/.cvsignore
2182         * glib/examples/Makefile.am
2183         * glib/examples/example-client.c
2184         * glib/examples/example-service.c
2185         * glib/examples/example-service.xml
2186         * glib/examples/example-signal-emitter.c
2187         * glib/examples/example-signal-emitter.xml
2188         * glib/examples/example-signal-recipient.c:
2189         New files; GLib binding examples, ported from
2190         python/examples.
2191
2192 2005-06-20  Colin Walters  <walters@verbum.org>
2193
2194         * dbus/dbus-glib.h: 
2195         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2196         dbus_g_proxy_call.
2197
2198         * glib/dbus-binding-tool-glib.c: 
2199         * doc/dbus-tutorial.xml: 
2200         * test/glib/test-dbus-glib.c: Update for rename.
2201         
2202 2005-06-20  Colin Walters  <walters@verbum.org>
2203
2204         Patch suggested by Ross Burton <ross@openedhand.com>
2205
2206         * glib/dbus-gobject.c (export_signals): Free signal name.
2207         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2208         memory leak.  Add a bit of documentation.
2209         (dbus_g_method_return_error): Free context, and note we do
2210         so.
2211
2212 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2213
2214         * dbus/dbus-glib.h:
2215         * glib/dbus-gobject.c:
2216         * glib/dbus-gproxy.c:
2217         * glib/dbus-gvalue.c: Predeclare structs as 
2218         typedef struct _Something Something instead of 
2219         typedef struct Something Something, so we can 
2220         redeclare the prototypes. Other GNOME libraries 
2221         do this already.
2222
2223 2005-06-17  Colin Walters  <walters@verbum.org>
2224
2225         * tools/dbus-names-model.c (have_names_notify): Fix call
2226         to dbus_g_proxy_end_call.
2227         
2228 2005-06-17  Colin Walters  <walters@verbum.org>
2229
2230         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2231         spew warnings if we get malformed remote signals.
2232
2233         * glib/dbus-gobject.c (propsig_iterate): New function.
2234         (lookup_object_info): New function, extracted from
2235         lookup_object_and_method.
2236         (introspect_properties, introspect_signals): Delete; these
2237         are merged into write_interface.
2238         (write_interface): Write out signals and properties here;
2239         dump the org.gtk.object stuff and use the interface given
2240         in the introspection data blob.  Also fix up property XML.
2241         (lookup_values): New function.
2242         (introspect_interfaces): Gather a mapping from interface to a
2243         list of its methods, signals, and properties, then write out
2244         each interface.
2245         (lookup_object_and_method): Use lookup_object_info.
2246         (struct DBusGSignalClosure): Add interface.
2247         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2248         we can just use the constant data.
2249         (dbus_g_signal_closure_finalize): Don't free signal name.
2250         (signal_emitter_marshaller): Use interface from signal closure.
2251         (export_signals): Only export signals mentioned in introspection
2252         blob.
2253         (dbus_g_connection_register_g_object): Warn if we have no
2254         introspection data for an object.
2255         (funcsig_equal): Remove unused variable.
2256         (dbus_g_object_register_marshaller): Take varargs instead of
2257         list.
2258         (dbus_g_object_register_marshaller_array): New function,
2259         extracted from old dbus_g_object_register_marshaller.
2260
2261         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2262         signals and property data.
2263         (write_quoted_string): New function, extracted from generate_glue.
2264         (generate_glue): Write signals and properties to introspection
2265         blob.
2266
2267         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2268         exported_signals and exported_properties.
2269         (dbus_g_object_register_marshaller): Update prototype.
2270         (dbus_g_object_register_marshaller_array): Prototype.
2271         
2272         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2273
2274         * test/glib/test-service-glib.c: Add new test signals and method
2275         to emit them.
2276
2277         * test/glib/test-service-glib.xml: Add some test signals.
2278
2279         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2280         and my-object-marshal.h
2281         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2282         my-object-marshal.c.
2283         (my-object-marshal.c, my-object-marshal.h): Implement.
2284
2285         * test/glib/.cvsignore: Update.
2286
2287         * doc/TODO: Remove two GLib TODO items fixed by this
2288         patch.
2289
2290 2005-06-16  Colin Walters  <walters@verbum.org>
2291
2292         * doc/TODO: Update for GLib bindings.
2293         
2294 2005-06-16  Colin Walters  <walters@verbum.org>
2295
2296         * glib/dbus-binding-tool-glib.c:
2297         * glib/dbus-gobject.c:
2298         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2299         from Ross Burton, for his GLib bindings work.
2300
2301 2005-06-16  Colin Walters  <walters@verbum.org>
2302
2303         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2304         to iterate instead of walking to G_TYPE_INVALID.
2305
2306         Patch based on a patch from Ryan Gammon.
2307
2308 2005-06-16  Colin Walters  <walters@verbum.org>
2309
2310         * bus/bus.c (bus_context_new): Set parser to NULL
2311         after we unref it (Patch from Chris Boscolo, #2174).
2312         
2313 2005-06-16  Colin Walters  <walters@verbum.org>
2314
2315         * python/dbus_bindings.pyx.in: Import size_t,
2316         __int64_t, __uint64_t, and __signed.
2317
2318         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2319         Define cmsg struct, output it.
2320         (_dbus_read_credentials_unix_socket):
2321         Use cmsg struct.
2322         
2323         Patch from Joe Markus Clarke for FreeBSD support.
2324         
2325 2005-06-16  Colin Walters  <walters@verbum.org>
2326
2327         * tools/dbus-send.c (append_array): Use strtok.
2328         (append_dict): New function.
2329         (type_from_name): New function, extracted from main.
2330         (main): Handle sending dicts.
2331
2332         * tools/dbus-print-message.c (print_iter): Print dict
2333         entries.
2334         
2335 2005-06-16  Colin Walters  <walters@verbum.org>
2336
2337         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2338         values as the empty string (#2948).
2339         
2340 2005-06-16  Colin Walters  <walters@verbum.org>
2341
2342         * dbus/Makefile.am:
2343         * mono/doc/Makefile.am:
2344         * test/glib/Makefile.am:
2345
2346         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2347
2348 2005-06-16  Colin Walters  <walters@verbum.org>
2349
2350         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2351         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2352
2353         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2354         Increment pointer after swapping fixed array.  Add assertion
2355         for array length.
2356                 
2357 2005-06-15  Colin Walters  <walters@verbum.org>
2358
2359         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2360         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2361         
2362 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2363
2364         * NEWS: Update to 0.34
2365
2366 2005-06-15  David Zeuthen  <davidz@redhat.com>
2367
2368         * configure.in (LT_CURRENT): Revert back to 1 as the library
2369         hasn't changed and we've certainly not committed to protocol
2370         stability yet.  All this does is to break ABI. See commit note
2371         from hp@redhat.com 2005-05-05 for details.
2372         
2373 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2374
2375         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2376         (_dbus_connection_run_builtin_filters): New method
2377         (dbus_connection_dispatch): Run the builtin filters which in turn
2378         runs the peer filter which handles Ping messages.
2379
2380         * doc/TODO: 
2381          - Ping isn't handled: This patch fixes it
2382          
2383          - Add a test case for the Ping message: added TODO item
2384
2385 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2386
2387         * dbus/dbus-message.c:
2388         (dbus_message_has_path): New method
2389         (dbus_message_has_interface): New method
2390         (dbus_message_has_member): New method
2391
2392         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2393         New method
2394
2395         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2396         the keyring directory is private to the user
2397
2398         * doc/TODO:
2399          - The convenience functions in dbus-bus.h should perhaps have
2400          the signatures that they would have if they were autogenerated
2401          stubs. e.g. the acquire service function. We should also evaluate
2402          which of these functions to include, in light of the fact that
2403          GLib/Qt native stubs will probably also exist.: Punted
2404
2405          - add dbus_message_has_path(), maybe has_member/interface:
2406          fixed in this patch
2407
2408          - in dbus-keyring.c, enforce that the keyring dir is not
2409          world readable/writable: Fixed in this patch
2410
2411 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2412
2413         * dbus/dbus-marshal-validate.h: Added a new validation
2414         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2415         out of memory errors when validating signitures
2416
2417         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2418         in places where we previously used DBUS_VALID and a FALSE return 
2419         value to indicate OOM
2420         
2421         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2422         Use a stack to track the number of elements inside containers.  The 
2423         stack values are then used to validate that dict entries have only two
2424         elements within them.
2425         (validate_body_helper): check the reason for failure when validating
2426         varients
2427         
2428         * dbus/dbus-message.c (load_message): use 
2429         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2430         DBUS_VALID and a FALSE return value to indicate OOM
2431
2432         * doc/TODO: remove "- validate dict entry number of fields" as this
2433         patch fixes it
2434
2435 2005-06-14  David Zeuthen  <davidz@redhat.com>
2436
2437         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2438         watches (if applicable) and add new watches
2439
2440         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2441         (main): Setup SIGIO signal handler if using D_NOTIFY
2442
2443         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2444
2445         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2446         (merge_included): Also merge conf_dirs list
2447         (bus_config_parser_unref): Clear conf_dirs list
2448         (include_dir): Add directory to conf_dirs list
2449         (bus_config_parser_get_conf_dirs): New function
2450
2451         * bus/dir-watch.[ch]: New files
2452
2453         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2454
2455         * configure.in: Add checks for D_NOTIFY on Linux
2456
2457 2005-06-14  Colin Walters  <walters@verbum.org>
2458
2459         * glib/dbus-binding-tool-glib.c:
2460         * glib/dbus-gobject.c:
2461         * glib/dbus-gvalue.c: Fix indentation and brace style.
2462         
2463 2005-06-14  Ross Burton <ross@openedhand.com>.
2464
2465         * glib/dbus-glib.h: Make DBusGMethodInvocation
2466         a private structure.  Rearrange prototypes a bit.
2467         
2468         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2469         documentation for first_arg_type.
2470         
2471         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2472         here, add documentation.  Move dbus_g_method_return
2473         and dbus_g_method_return_error into public API
2474         section.
2475
2476 2005-06-14  Colin Walters  <walters@verbum.org>
2477
2478         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2479         Add missing return statements, noticed by Ross Burton.
2480         
2481 2005-06-13  Ross Burton <ross@openedhand.com>.
2482
2483         * glib/dbus-gobject.c: Handle errors on message
2484         demarshalling by sending error message back.
2485         * glib/dbus-gvalue.c: Initialize return variables.
2486
2487 2005-06-13  Colin Walters  <walters@verbum.org>
2488
2489         * glib/Makefile.am: Fix thinko in last patch.
2490
2491 2005-06-13  Colin Walters  <walters@verbum.org>
2492
2493         * glib/Makefile.am: Move dbus-gtype-specialized.c
2494         and dbus-gtype-specialized.h into a _HEADERS variable,
2495         install them.
2496
2497 2005-06-12  Colin Walters  <walters@verbum.org>
2498
2499         Async signals and various bugfixes and testing by
2500         Ross Burton <ross@openedhand.com>.
2501
2502         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2503         (dbus_gvalue_genmarshal_name_from_type)
2504         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2505         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2506         (dbus_g_value_types_init, dbus_gtype_from_signature)
2507         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2508         (dbus_gtypes_from_arg_signature): New function prototypes.
2509         (dbus_gvalue_demarshal): Take context and error arguments.
2510         (dbus_gvalue_demarshal_variant): New function.
2511         (dbus_gvalue_demarshal_message): New function.
2512         (dbus_gvalue_store): Delete.
2513
2514         * glib/dbus-gvalue.c:
2515
2516         File has been almost entirely rewritten; now we special-case
2517         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2518         hash tables correctly, etc.  Full support for recursive values
2519         is not yet complete.
2520
2521         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2522         argument of signal to G_TYPE_POINTER since we now pass a
2523         structure.
2524         (lookup_g_marshaller): Delete in favor of
2525         _dbus_gobject_lookup_marshaller.
2526         (marshal_dbus_message_to_g_marshaller): Use
2527         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2528         to handle remote signal callbacks.
2529         (dbus_g_proxy_new_from_proxy): New function; creates a new
2530         DBusGProxy by copying an existing one.
2531         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2532         (dbus_g_proxy_get_path): New functions.
2533         (dbus_g_proxy_marshal_args_to_message): New function;
2534         factored out of existing code.
2535         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2536         from a varargs array.
2537         (dbus_g_proxy_begin_call_internal): New function.
2538         (dbus_g_proxy_end_call_internal): New function.
2539         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2540         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2541         after collecting args into value array.
2542         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2543         invoke dbus_g_proxy_end_call_internal.
2544         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2545         end_call_internal.
2546         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2547         types.
2548         (array_free_all): New function.
2549         (dbus_g_proxy_add_signal): Take GTypes.
2550
2551         * glib/dbus-gobject.h:
2552         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2553         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2554         Prototype.
2555
2556         * glib/dbus-gobject.c: Add a global marshal_table hash which
2557         stores mappings from type signatures to marshallers.  Change lots
2558         of invocations of dbus_gtype_to_dbus_type to
2559         dbus_gtype_to_signature.
2560         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2561         (introspect_signals): Fix test for query.return_type.
2562         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2563         (invoke_object_method): Many changes.  Handle asynchronous
2564         invocations.  Convert arguments with
2565         dbus_gvalue_demarshal_message.  Handle errors.  Use
2566         DBusSignatureIter instead of strlen on args. Handle all arguments
2567         generically.  Special-case variants.
2568         (dbus_g_method_return, dbus_g_method_return_error): New function.
2569         (DBusGSignalClosure): New structure, closes over signal
2570         information.
2571         (dbus_g_signal_closure_new): New function.
2572         (dbus_g_signal_closure_finalize): New function.
2573         (signal_emitter_marshaller): New function; is special marshaller
2574         which emits signals on bus.
2575         (export_signals): New function; introspects object signals and
2576         connects to them.
2577         (dbus_g_object_type_install_info): Take GType instead of
2578         GObjectClass.
2579         (dbus_g_connection_register_g_object): Invoke export_signals.
2580         (dbus_g_connection_lookup_g_object): New function.
2581         (DBusGFuncSignature) New structure; used for mapping type
2582         signatures to marshallers.
2583         (funcsig_hash): New function; hashes DBusGFuncSignature.
2584         (funcsig_equal): New function; compares DBusGFuncSignature.
2585         (_dbus_gobject_lookup_marshaller): New function.
2586         (dbus_g_object_register_marshaller): New function; used to
2587         register a marshaller at runtime for a particular signature.
2588
2589         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2590
2591         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2592         which notes a server method implementation should be
2593         asynchronous.
2594
2595         * glib/dbus-binding-tool-glib.c
2596         (dbus_binding_tool_output_glib_server): Call
2597         dbus_g_value_types_init.
2598         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2599         variants specially.
2600         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2601         of a lookup function.
2602         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2603         (write_untyped_out_args): New method; write output arguments.
2604         (write_formal_declarations_for_direction): Function for
2605         writing prototypes.
2606         (write_formal_parameters_for_direction): Function for
2607         writing implementations.
2608         (write_typed_args_for_direction): Function for writing
2609         arguments prefixed with GTypes.
2610         (write_async_method_client): Write out async version
2611         of method.
2612
2613         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2614         (dbus_g_type_get_marshal_name): Move mapping from GType
2615         to marshal name into here.
2616         (dbus_g_type_get_c_name): Move into here.
2617         (compute_marshaller): Convert signature to type with
2618         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2619         (compute_marshaller_name): Ditto.
2620         (compute_marshaller): Handle async signal annotations.
2621         (gather_marshallers): Return if we don't have a known
2622         prefix.
2623         (generate_glue): Collect introspection blob here, and
2624         write all of the blob at the end.  This allows an object
2625         with multiple interfaces to work.
2626         Mark async methods in introspection blob.
2627
2628         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2629         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2630         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2631
2632         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2633         avoids people accidentally using DBUS_TYPE_* which should
2634         not be necessary anymore.
2635         Do include dbus-gtype-specialized.h, which are utilities
2636         for GLib container types.
2637         Add various #defines for types such as
2638         DBUS_TYPE_G_BOOLEAN_ARRAY.
2639         (DBusGValueIterator, DBusGValue): Define, not fully used
2640         yet.
2641         (dbus_g_value_get_g_type): Type for recursive value.
2642         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2643         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2644         (dbus_g_value_free): Prototypes.
2645         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2646         (dbus_g_proxy_set_interface): Prototype.
2647         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2648         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2649         types.
2650         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2651         Accessors.
2652         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2653         doing async invocations.
2654         (dbus_g_method_return, dbus_g_method_return_error):
2655         Prototypes.
2656         * doc/dbus-tutorial.xml: Update GLib section.
2657         
2658         * tools/dbus-viewer.c (load_child_nodes): Update
2659         for new invocation type of dbus_g_proxy_end_call.
2660         (load_from_service_thread_func): Ditto.
2661
2662         * tools/print-introspect.c (main): Ditto.
2663
2664         * tools/dbus-names-model.c (have_names_notify)
2665         (names_model_reload, names_model_set_connection)
2666         Use GTypes.
2667
2668         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2669         needed since Python bindings use GLib bindings.
2670
2671         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2672         Add --prefix argument.
2673
2674         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2675         unneeded --ignore-unsupported arg.
2676         
2677         * test/glib/test-service-glib.c: 
2678         * test/glib/test-service-glib.xml:
2679         * test/glib/test-dbus-glib.c: Add many more tests.
2680
2681 2005-06-06  David Zeuthen  <davidz@redhat.com>
2682
2683         * doc/TODO: Add item about need to remove deprecated functions.
2684
2685         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2686
2687         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2688         to repair the ABI which was broken with the last commit.
2689
2690 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2691
2692         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2693         (dbus_connection_disconnect): renamed to dbus_connection_close 
2694         for API symmetry with dbus_connection_open
2695         (_dbus_connection_open_internal): 
2696         s/dbus_connection_disconnect/dbus_connection_close
2697
2698         * dbus/dbus-bus.c (dbus_bus_get):
2699         s/dbus_connection_disconnect/dbus_connection_close
2700
2701         * bus/connection.c (bus_connections_unref, 
2702         bus_connections_setup_connection, bus_connections_expire_incomplete):
2703         s/dbus_connection_disconnect/dbus_connection_close
2704
2705         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2706         kill_client_connection_unchecked, check_hello_connection):
2707         s/dbus_connection_disconnect/dbus_connection_close
2708
2709         * bus/bus.c (new_connection_callback):
2710         s/dbus_connection_disconnect/dbus_connection_close
2711
2712         * tools/dbus-send.c (main):
2713         s/dbus_connection_disconnect/dbus_connection_close
2714
2715         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2716         s/dbus_connection_disconnect/dbus_connection_close
2717         
2718         * test/test-service.c (path_message_func, filter_func):
2719         s/dbus_connection_disconnect/dbus_connection_close
2720         
2721         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2722         
2723 2005-05-25  Colin Walters  <walters@verbum.org>
2724
2725         * dbus/dbus-protocol.h: Move various bus service #defines such
2726           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2727           dbus/dbus-shared.h.
2728         * dbus/dbus-shared.h: Various defines moved here.
2729         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2730
2731 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
2732
2733         * python/__init__.py: Python bindings deserve a minor version
2734         update.  Upped to (0, 40, 2)
2735
2736 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
2737
2738         * python/decorators.py: add explicitly_pass_message decorator
2739         for passing in the dbus message as keyword for edge case signal
2740         handling
2741
2742         * python/matchrules.py (SignalMatchRule.__repr__): fix output
2743         to conform with what dbus expects for match rules
2744         (SignalMatchRule.execute): add the dbus message as a keyword
2745         if the signal handler has requested it
2746
2747         * python/examples/example/signal-recipient.py: added some more
2748         examples on how to hook up to signals
2749
2750 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
2751
2752         * python/decorators.py: import dbus_bindings
2753
2754         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
2755         SignalMatchNode): new classes that implement wildcard signal
2756         callback matching using a tree lookup. Heavily modified from a
2757         patch sent by Celso Pinto (fd.o bug #3241)
2758
2759         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2760         use new match classes to handle signals.
2761
2762 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
2763         
2764         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2765
2766 2005-05-18  Havoc Pennington  <hp@redhat.com>
2767
2768         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2769         gettext. Not really worth requiring yet perhaps, but any
2770         production quality 1.0 would require it so we should go ahead and
2771         get things set up. We do have a couple token calls to
2772         bindtextdomain in the code already.
2773
2774 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
2775
2776         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2777         when using recursive g_main_loops
2778
2779         * python/_dbus.py (class Bus): add the ProxyObjectClass
2780         alias for ProxyObject to make it easier for the Twisted 
2781         networking framework to integrate dbus.
2782
2783         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2784         alias for ProxyMethod to make it easier for the Twisted 
2785         networking framework to integrate dbus. 
2786
2787 2005-05-11  Ross Burton  <ross@openedhand.com>
2788
2789         * glib/dbus-glib-tool.c: Add --prefix argument.
2790         * glib/dbus-binding-tool-glib.h: Add prefix argument.
2791         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2792         Add prefix argument.
2793         (generate_glue): Pass prefix argument down.
2794         (dbus_binding_tool_output_glib_server): Pass prefix to
2795         glib-genmarshal.
2796         
2797 2005-05-11  Colin Walters  <walters@verbum.org>
2798
2799         * tools/dbus-send.c (append_array): New function.
2800         (append_arg): Broken out from main.
2801         (main): Add cheesy hack to send arrays and variants.
2802         (usage): Update.
2803         * tools/dbus-print-message.c (print_iter): Broken out
2804         from main.
2805
2806 2005-05-11  Colin Walters  <walters@verbum.org>
2807
2808         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2809         New function, returns signature string for signature iter.
2810         * dbus/dbus-signature.h: Prototype it.
2811         * dbus/dbus-message.c (dbus_message_iter_get_signature):
2812         New function, returns signature string for message iter.
2813         (dbus_message_iter_get_array_len): New function, returns
2814         length of array.
2815         (dbus_message_iter_get_fixed_array): Fix assertion; this
2816         function should be used when the iter is pointing to the
2817         contents of an array
2818         * dbus/dbus-message.h: Prototypes.
2819         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2820         New function; returns length of an array.
2821         * dbus/dbus-marshal-recursive.h: Prototype it.
2822         
2823 2005-05-11  Colin Walters  <walters@verbum.org>
2824
2825         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2826         compilation error.
2827         
2828 2005-05-08  Havoc Pennington  <hp@redhat.com>
2829
2830         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2831         daemon's pid, not the parent's pid, to the file descriptor.
2832         Reported by Taj Morton.
2833
2834 2005-05-05  Havoc Pennington  <hp@redhat.com>
2835
2836         * configure.in (LT_*): add notes on how the libtool versioning
2837         works to save thinking. Increment soname to indicate protocol
2838         breakage (though really the library interface hasn't changed I
2839         guess)
2840
2841         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2842         verify the GUID received from server matches what we were
2843         expecting, if we had an expectation
2844
2845         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2846         (_dbus_auth_get_guid_from_server): new function
2847         (send_begin): parse the OK args
2848
2849         * doc/dbus-specification.xml: add GUID to the auth protocol
2850
2851 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
2852
2853         * Fix my name in previous changelog ;)
2854
2855         * python/proxies.py (ProxyObject.__getattr__): add further patch
2856         from Anthony Baxter to throw an AttributeError when python 
2857         __special__ functions are called instead of marshling them over 
2858         the bus (Bug#1685 comment 3).
2859
2860 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
2861
2862         * python/Makefile.am: changed to use pyexecdir for the binding
2863         shared libraries (Bug#2494)
2864
2865         * python/exceptions.py: bring exceptions over from the bindings
2866         so they can be used in applications (Bug#2036)
2867         Make all exceptions derive from DBusException
2868
2869         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2870         of classes so that print obj doesn't throw an exception (Bug #1685)
2871
2872 2005-05-03  Ross Burton  <ross@openedhand.com>
2873
2874         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2875         Return if we get an error during registration.  Set up a
2876         weak reference on object to unregister if object is destroyed.
2877         (unregister_gobject): New function.
2878         
2879 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
2880
2881         * python/dbus_bindings.pyx.in: 
2882         - added new type classes for hinting to the marashaler what type 
2883         to send over the wire
2884         - added int16 and uint16 marshalers
2885         - Fixed a bug in the type constants that caused int32 to go out
2886         as uint16 over the wire
2887         * python/dbus.py: split up into different files and renamed _dbus.py
2888         * python/__init__.py, python/_util.py, python/decorators.py, 
2889         python/exceptions.py, python/proxies.py, python/services.py,
2890         python/types.py: new files split off from dbus.py
2891         * python/Makefile.am: Add new files, remove dbus.py and 
2892         install all python files to <python module dir>/dbus
2893         * python/examples/*: Added #!/usr/bin/env python to the top of
2894         every example.  Patch provided by Tatavarty Kalyan
2895
2896 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2897
2898         * NEWS: Update to 0.33
2899
2900 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2901
2902         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2903         method for doing async calls
2904         (_pending_call_notification): New C function for handling pendning call
2905         callbacks
2906         (set_notify): New method for setting pending call notification
2907         
2908         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2909         Async capabilities added to remote method calls
2910         (Sender): class removed
2911         (RemoteService): class removed
2912         (ObjectTree): class removed for now
2913         (RemoteObject): Renamed to ProxyObject
2914         (RemoteMethod): Renamed to ProxyMethod
2915         (method): Decorator added for decorating python methods as dbus methods
2916         (signal): Decorator added for decorating python methods as signal emitters
2917         (ObjectType): Metaclass added for generating introspection data and the
2918         method callback vtable
2919         (Interface): Wrapper class added to wrap objects in a dbus interface
2920         (Object): Uses ObjectType as its metaclass and exports Introspect
2921         of the org.freedesktop.DBus.Introspectable interface
2922         (ValidationException, UnknownMethodException): new exceptions
2923
2924         * python/examples/*: Modified to fit with the new bindings
2925
2926 2005-04-23  Havoc Pennington  <hp@redhat.com>
2927
2928         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2929         reported by Tony Houghton
2930
2931         * test/test-service.c (main): test
2932         dbus_connection_get_object_path_data()
2933
2934         * dbus/dbus-object-tree.c (find_handler): be sure we always init
2935         the exact_match
2936         (_dbus_object_tree_get_user_data_unlocked): new function used by
2937         dbus_connection_get_object_path_data()
2938         (do_register): add assertion test for get_user_data_unlocked
2939         (object_tree_test_iteration): more tests
2940
2941         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2942         new function from Dan Reed to let you get the user data from 
2943         dbus_connection_register_object_path()
2944
2945 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
2946
2947         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2948         in numerous places that did not account for the NULL terminator
2949         (signature_from_seed): changed the manual string copy loop to 
2950         just use strcpy instead
2951         make check should now pass
2952
2953 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
2954
2955         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2956         so that it allows messages that are not signals to pass in 
2957         NULL as the interface.
2958
2959 2005-04-18  David Zeuthen  <davidz@redhat.com>
2960
2961         * glib/dbus-gmain.c (io_handler_destroy_source): 
2962         (timeout_handler_destroy_source, connection_setup_free): 
2963         Also unref the source to avoid memory leaks.
2964
2965 2005-04-13  David Zeuthen  <davidz@redhat.com>
2966
2967         * bus/config-parser.c (bus_config_parser_new): Bump this to a
2968         more reasonable, yet still totally arbitrary, value :-). 
2969
2970 2005-04-13  David Zeuthen  <davidz@redhat.com>
2971
2972         * doc/TODO: Added an "important for 1.0" item about selinux
2973         allow/deny messages
2974
2975 2005-04-13  David Zeuthen  <davidz@redhat.com>
2976
2977         * bus/selinux.c: Add c-file-style to top of file
2978         (log_audit_callback): Don't free the data here anymore
2979         (bus_selinux_check): Don't take spid and tpid since appending
2980         that to auxdata may OOM.
2981         (bus_selinux_allows_acquire_service): Handle OOM and signal back
2982         to the caller if we are OOM by taking an error object.
2983         (bus_selinux_allows_send): -do-
2984
2985         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
2986         and bus_selinux_allows_send
2987
2988         * bus/bus.c (bus_context_check_security_policy): Pass error and
2989         pass on OOM thrown by bus_selinux_allows_send()
2990
2991         * bus/services.c (bus_registry_acquire_service): Pass error and
2992         pass on OOM thrown by bus_selinux_allows_acquire_service()
2993
2994 2005-04-13  Havoc Pennington  <hp@redhat.com>
2995
2996         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
2997         message at a time to avoid monopolizing the main loop, bug 
2998         #2953 from Benjamin Otte
2999
3000 2005-04-09  Havoc Pennington  <hp@redhat.com>
3001
3002         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3003         possible overlap, fix from Daniel Reed
3004         (fixup_alignment): fix signedness warnings
3005         (_dbus_string_append_unichar): ditto
3006
3007 2005-04-09  Havoc Pennington  <hp@redhat.com>
3008
3009         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3010
3011         * glib/dbus-glib-tool.c (main): fix warning
3012
3013         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3014
3015         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3016         add a new function that can be used in simple applications that
3017         don't have a main loop and are willing to block
3018
3019 2005-04-05  David Zeuthen  <davidz@redhat.com>
3020
3021         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3022
3023         * glib/dbus-gmain.c:
3024         (io_handler_destroy_source): Remove from list of IO handlers
3025         of the ConnectionSetup object
3026         (timeout_handler_destroy_source): -do- for timeout handlers
3027         (io_handler_source_finalized): Don't remove from list since
3028         we now do that in io_handler_destroy_source(). Renamed from
3029         io_handler_source_destroyed
3030         (timeout_handler_source_destroyed): -do- for timeout handlers
3031         (connection_setup_free): It is now safe to iterate over all
3032         IO and timeout handlers as the _destroy_source removes them
3033         from the list synchronously
3034
3035 2005-03-30  Havoc Pennington  <hp@redhat.com>
3036
3037         * configure.in: change check to gtk 2.4
3038
3039         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3040         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3041         to 2.4
3042
3043 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3044
3045         * News: Update 0.32
3046
3047         * HACKING: Fixed realease instructions.  configure.in should be updated to
3048           the next release by the person who made the last release.
3049
3050 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3051
3052         * python/lvalue_cast_post_process.py - removed.  Patch has been
3053           submitted to Pyrex maintainers that fixes gcc4.0 errors
3054
3055         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3056
3057 2005-03-24  Daniel Reed  <n@ml.org>
3058
3059         * tools/Makefile.am: Make print-introspect and
3060         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3061
3062 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3063
3064         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3065
3066         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3067           had in Red Hat packages for a while but for some reason never 
3068           got merged upstream
3069           (_dbus_is_a_number): New checks if a string
3070           can be converted to a number and does the conversion if it can
3071           (_dbus_user_database_lookup): Add check to see if the given username
3072           is a udi.  This allows udi's to be used instead of usernames in the
3073           config file.
3074           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3075           is a gdi.  This allows gdi's to be used instead of groupnames in the
3076           config file.
3077
3078 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3079
3080         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3081           code so that it compiles with gcc4.0
3082
3083         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3084           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3085           results back to dbus_binding.c
3086
3087 2005-03-20  Colin Walters  <walters@verbum.org>
3088
3089         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3090
3091         * configure.in: Require GTK+ 2.6.
3092         
3093 2005-03-20  Colin Walters  <walters@verbum.org>
3094
3095         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3096
3097 2005-03-17  Tom Parker  <palfrey@tevp.net>
3098
3099         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3100         print DBUS_UID_UNSET; instead print passed username.  Also
3101         be sure to actually use gid looked up in cache.
3102         
3103         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3104         for DBUS_GID_UNSET and groupname.
3105
3106 2005-03-17  Colin Walters  <walters@verbum.org>
3107
3108         * bus/print-introspect.c: Move to tools/.
3109         * bus/run-with-tmp-session-bus.sh: Ditto.
3110         
3111         * glib/Makefile.am (dbus-glib-bindings.h): Move
3112         generation to tools/Makefile.am.
3113
3114         * test/glib/run-test.sh: Update to handle move
3115         of run-with-tmp-session-bus.sh.
3116
3117         * test/glib/test-service-glib.c: Update to handle
3118         move of dbus-glib-bindings.h.
3119
3120         * tools/print-introspect.c: Moved here
3121         from bus/, and ported to GLib bindings.
3122
3123         * tools/run-with-tmp-session-bus.sh: Moved here
3124         from bus/.
3125
3126         * tools/Makefile.am: Generate dbus-glib-bindings.h
3127         and dbus-bus-introspect.xml here.
3128
3129         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3130         Update.
3131
3132 2005-03-17  Colin Walters  <walters@verbum.org>
3133
3134         * bus/driver.c (write_args_for_direction): Use
3135         _dbus_string_get_const_data to retrieve string;
3136         _dbus_string_get_const_data_len doesn't actually return
3137         a NULL-terminated substring.
3138
3139         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3140         (main): Change to use org_freedesktop_DBus_request_name
3141         instead of using g_proxy_begin_call/end_call.
3142
3143 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3144
3145         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3146         generating the finalizer.  Fixes from Ben Maurer.
3147
3148 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3149
3150         * mono/BusDriver.cs: Update method names: ListServices
3151         becomes ListNames; GetOwner becomes GetNameOwner.
3152
3153         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3154         onto the eval stack when removing the delegate.
3155
3156 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3157
3158         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3159         LT_CURRENT.  Set it to the autoconf variable.
3160                                                                                 
3161         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3162         classes that disconnects the signal handler delegate from the
3163         service object.  Fixes a big leak of proxy objects on the
3164         client side of things.  Patch from Ben Maurer
3165         <bmaurer@ximian.com>
3166
3167 2005-03-12  Colin Walters  <walters@verbum.org>
3168
3169         * bus/driver.c (write_args_for_direction): New function,
3170         parses a type signature into arguments and outputs to
3171         XML.
3172         (bus_driver_handle_introspect): Use it instead of
3173         hardcoding XML for certain signatures.
3174         
3175         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3176         dependency on dbus-daemon.
3177
3178         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3179         argument, pass it to dbus_binding_tool_output_glib_client.
3180
3181         * glib/dbus-binding-tool-glib.c
3182         (generate_client_glue): Protect against multiple inclusion.
3183         (dbus_binding_tool_output_glib_client): Add
3184         G_BEGIN_DECLS/G_END_DECLS.
3185
3186         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3187         Change to just take iface prefix directly.
3188         (write_formal_parameters): Clarify error message.
3189         (check_supported_parameters): New function; checks to see type
3190         signatures of method parameters are supported.
3191         (generate_client_glue): Handle ignore_unsupported flag.
3192         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3193         parameter.
3194
3195         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3196         --ignore-unsupported by default until glib bindings
3197         support arrays.
3198
3199 2005-03-11  Colin Walters  <walters@verbum.org>
3200
3201         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3202         install it.
3203
3204         * bus/print-introspect.c: New file; prints introspection
3205         data for a given name and object path.
3206
3207         * bus/run-with-tmp-session-bus.sh: New file, refactored
3208         from test/glib/run-test.sh.  Creates a temporary session
3209         bus and runs another program.
3210
3211         * test/glib/run-test.sh: Refactor to invoke
3212         run-with-tmp-session-bus.sh.
3213
3214         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3215         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3216         macros instead of hardcoding.
3217
3218         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3219
3220 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3221
3222         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3223         this unref; it doesn't match up evenly in some codepaths.
3224         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3225         this evenly matches with the ref near the top of this function.
3226
3227 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3228
3229         * dbus/dbus-object-tree.c
3230         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3231         and we try to unregister a path that's not registered, still go
3232         through the process of unlocking and don't just return.
3233
3234 2005-03-09  Colin Walters  <walters@verbum.org>
3235
3236         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3237         to this are generated for client-side wrappers.  Invokes a
3238         D-BUS method and returns reply values.  
3239
3240         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3241         function; writes signature string for argument direction.
3242         (write_args_for_direction): Change to pass input values directly
3243         instead of via address, and fix indentation.
3244         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3245         make generated wrappers inlineable.
3246
3247         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3248         note about using dbus_type_is_fixed.
3249
3250         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3251         dbus/dbus-signature.c as dbus_type_is_fixed.
3252
3253         All callers updated.
3254
3255         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3256         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3257
3258         * dbus/dbus-signature.h: Prototype.
3259
3260         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3261         error printf code.
3262
3263         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3264         appropriate instead of just freeing it.
3265         (main): Free returned strings using g_free.
3266
3267         * test/glib/Makefile.am (test-service-glib-glue.h)
3268         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3269
3270         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3271         simply maps a simple D-BUS type to GType.
3272         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3273         GType.
3274         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3275         initialize the value with it.
3276         (dbus_gvalue_binding_type_from_type): Unused, delete.
3277         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3278         various types instead of unmarshalling to value data directly.
3279         Remove can_convert boolean.
3280         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3281         returning directly instead of using can_convert boolean.
3282         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3283         Stores a GValue in a pointer to a value of its corresponding C
3284         type.
3285
3286         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3287         add dbus_gvalue_store.
3288
3289 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3290
3291         Fix a bunch of lifecycle and memory management problems
3292         in the mono bindings.
3293
3294         * mono/Arguments.cs (Arguments): Implement IDisposable
3295
3296         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3297         strictly a static class.
3298
3299         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3300         delegates into this file.
3301         (Connection): Implement IDisposable.
3302         (Dispose): Disconnect the connection and set the raw connection
3303         pointer to IntPtr.Zero.
3304         (~Connection): Call Dispose().
3305         (RegisterObjectPath): Added.  Manages the registration of object
3306         paths so we can cleanly disconnect them at dispose/finalize time.
3307         (UnregisterObjectPath): Ditto.
3308         (set_RawConnection): Unregister all of the object paths when
3309         changing the underlying DBusConnection.  Add them back onto the
3310         new connection, if any.
3311
3312         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3313         more unmanaged resources anymore, so it's not necessary.  Move all
3314         the DBusObjectPathVTable stuff out of here.
3315         (Handler): Save references to our delegates so that they don't get
3316         finalized.  Call Connection.RegisterObjectPath() instead of
3317         dbus_connection_register_object_path() directly.
3318         (Message_Called): Dispose the message after we're finished with
3319         it.
3320
3321         * mono/Message.cs (Message): Implement IDisposable.
3322         (Dispose): Dispose the Arguments, and set the RawMessage to
3323         IntPtr.Zero.
3324         (SendWithReplyAndBlock): We own the ref to the reply that comes
3325         back from dbus_connection_send_with_reply_and_block() so add a
3326         comment about that and unref it after we've constructed a managed
3327         MethodReturn class around it.  Fixes a big, big leak.
3328
3329         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3330         method.
3331         (BuildSignalHandler): After we've sent the Signal message, dispose
3332         of it.
3333         (BuildMethod): Dispose of the method call and reply messages after
3334         we've sent the message and extracted the data we want from the
3335         reply.
3336
3337         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3338         anymore.
3339         (Service_FilterCalled): Dispose of the message after we're
3340         finished with it.
3341
3342 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3343
3344         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3345         After we attach our pending call to the connection, unref
3346         it.  Fixes a leak.
3347  
3348         * mono/Connection.cs (set_RawConnection): Disconnect our
3349         filter and match callbacks from the old connection and
3350         reconnect them to the new connection, if any.
3351
3352         * mono/DBusType/Array.cs: "Code" is a static member, so
3353         don't use "this" to refer to it.  Fix for stricter checking
3354         in Mono 1.1.4.
3355  
3356         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3357         object path that we pass into unmanaged code.
3358  
3359         * mono/DBusType/String.cs (Append): Don't leak the string
3360         that we pass into unmanged code.
3361
3362 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3363         * NEWS: Update for 0.31
3364
3365         * configure.in: Release 0.31
3366         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3367
3368         * qt/Makefile.am: fixed build
3369
3370         * dbus/Makefile.am: soname bump for libdbus
3371
3372         * glib/Makefile.am: soname bump for libdbus-glib
3373
3374 2005-03-05  Havoc Pennington  <hp@redhat.com>
3375
3376         * dbus/dbus-sysdeps.c:
3377         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3378         value
3379         (_dbus_generate_random_bytes_buffer): fix return value
3380
3381         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3382         checks actually work, from Tom Parker <fdo@tevp.net>
3383
3384 2005-03-01  Colin Walters  <walters@verbum.org>
3385
3386         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3387         functions copied from dbus-glib-tool.c.
3388         (main): Convert lots of error code to use them.
3389         Also add some testing for introspection bits.
3390
3391 2005-03-01  Colin Walters  <walters@verbum.org>
3392         
3393         * doc/TODO: Remove introspection signature TODO.
3394
3395 2005-02-27  Colin Walters  <walters@verbum.org>
3396
3397         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3398         Change return value to const char * instead of int so we can do
3399         full signatures.
3400         (struct PropertyInfo, struct ArgInfo): Store char *.
3401         (property_info_new, arg_info_new): Update parameters, strdup.
3402         (property_info_unref, arg_info_unref): Free.
3403
3404         * glib/dbus-gidl.h: Update prototypes.
3405
3406         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3407         (validate_signature): New function, just validates signature and
3408         sets GError.
3409         (parse_property, parse_arg): Invoke validate_signature.  Store
3410         signature instead of just type code.
3411
3412         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3413         function to return a primary type for a signature, dropping
3414         information about types in container types.
3415         (dbus_gvalue_genmarshal_name_from_type)
3416         (dbus_gvalue_binding_type_from_type)
3417         (dbus_gvalue_ctype_from_type): Update to take full signature
3418          instead of type code.
3419         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3420
3421         * glib/dbus-gvalue.h: Update prototypes for above.
3422
3423         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3424         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3425         (introspect_properties, introspect_signals, write_interface):
3426         Update to handle signatures, and remove usage of
3427         _dbus_gutils_type_to_string.
3428         (handle_introspect): Print out type codes instead of e.g. "string"
3429         in hardcoded introspection XML; also use x_AS_STRING constants
3430         instead of hardcoding in string.
3431
3432         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3433         to string.  Remove usage of _dbus_gutils_type_to_string.
3434
3435         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3436
3437         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3438         deletion.
3439         
3440         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3441         (compute_marshaller_name, generate_glue): Handle signature change
3442         to string.
3443         (write_formal_parameters, write_args_for_direction): Ditto, and
3444         remove FIXME.
3445
3446         * tools/dbus-tree-view.c (type_to_string): Delete.
3447         (info_set_func_text): Update to print full signatures.
3448
3449         * test/glib/test-service-glib.xml: Change types to new
3450         introspection format.
3451
3452 2005-02-26  Havoc Pennington  <hp@redhat.com>
3453
3454         * doc/TODO: remove the "guid" item
3455
3456         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3457         (with_bus_thread_func): use open_private
3458
3459         * dbus/dbus-connection.c (dbus_connection_open_private): new
3460         function that works like the old dbus_connection_open()
3461         (dbus_connection_open): now returns an existing connection if
3462         possible
3463
3464         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3465         through the GUID to the transport
3466
3467         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3468         GUID in hex-encoded form.
3469
3470         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3471         pass GUID argument in to the transport
3472
3473         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3474         guid argument
3475
3476         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3477
3478         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3479
3480 2005-02-25  Havoc Pennington  <hp@redhat.com>
3481
3482         * doc/dbus-specification.xml: document the GUID thing
3483
3484         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3485         globally unique ID for the server, and put a "guid=hexencoded"
3486         field in the address
3487
3488         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3489
3490         * dbus/dbus-message.c: ditto
3491
3492         * dbus/dbus-dataslot.c: ditto
3493
3494         * dbus/dbus-list.c: ditto
3495
3496         * dbus/dbus-internals.h: wait, just include
3497         dbus-threads-internal.h here
3498         
3499         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3500         use in main library
3501
3502         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3503
3504 2005-02-24  Colin Walters  <walters@verbum.org>
3505
3506         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3507
3508 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3509
3510         * glib/Makefile.am: added dbus-gobject.h to sources list
3511         so distcheck doesn't fail
3512         
3513 2005-02-24  Havoc Pennington  <hp@redhat.com>
3514
3515         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3516         you must disconnect before unref, since locking and other things
3517         are screwed up otherwise. Fix assorted other locking stuff.
3518
3519         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3520         fix compilation
3521
3522         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3523         into a private header and don't export from the library
3524
3525         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3526
3527 2005-02-24  Colin Walters  <walters@verbum.org>
3528         
3529         * dbus/dbus-signature.c: New file; implements various functions
3530         related to type signatures.  Includes an interator for parsing,
3531         validation functions.
3532         (dbus_type_is_basic): Moved here from
3533         dbus-marshal-basic.c:_dbus_type_is_basic.
3534         (dbus_type_is_container): Moved here from
3535         dbus-marshal-basic.c:_dbus_type_is_container.
3536
3537         All callers of _dbus_type_is_container and _dbus_type_is_basic
3538         updated, and include dbus-signature.h.
3539
3540         * dbus/dbus-signature.h: New file; prototypes for the above.
3541
3542         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3543         dbus-signature.h.
3544
3545         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3546         function factored out of _dbus_first_type_in_signature.
3547         (_dbus_first_type_in_signature_c_str): New function; returns first
3548         type code for a type signature character.
3549
3550         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3551         handle function moves.
3552
3553         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3554
3555         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3556         function; skips to next complete type in type signature.
3557         Implemented using previous skip_one_complete_type.  Now
3558         skip_one_complete_type just delegates to
3559         _dbus_type_signature_next.
3560
3561         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3562         to dbus-signature.c
3563         (_dbus_type_is_container): Ditto.
3564
3565         * doc/dbus-specification.xml: Update introspection sample to
3566         use real type signatures.
3567
3568         * dbus/dbus-test.h: Prototype signature test.
3569
3570         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3571         signature tests.
3572
3573         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3574
3575 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3576
3577         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3578         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3579
3580 2005-02-21  Colin Walters  <walters@verbum.org>
3581
3582         * dbus/dbus-test-main.c (main): Take optional specific test
3583         argument.
3584
3585         * dbus/dbus-test.c (run_test): New function, runs a test function
3586         with no data directory.
3587         (run_data_test): Like above, but takes data directory.
3588         (dbus_internal_do_not_use_run_tests): Take
3589         specific test argument.  Replace lots of cut n' paste code
3590         with run_test and run_data_test.
3591
3592         * dbus/dbus-test.h: Update prototype for
3593         dbus_internal_do_not_use_run_tests.
3594
3595 2005-02-20  Havoc Pennington  <hp@redhat.com>
3596
3597         Fix bugs reported by Daniel P. Berrange
3598         
3599         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3600         (protected_change_watch): new function
3601         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3602         (_dbus_server_add_watch): change to work like the
3603         dbus-connection.c equivalents; like those, probably kind of
3604         busted, but should at least mostly work for now
3605         (dbus_server_disconnect): drop the lock if we were already
3606         disconnected, patch from Daniel P. Berrange
3607
3608         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3609         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3610         same stuff
3611
3612         * doc/TODO: todo about unscrewing this mess
3613
3614 2005-02-19  Colin Walters  <walters@verbum.org>
3615
3616         * glib/dbus-binding-tool-glib.c
3617         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3618
3619         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3620         as errno.h and sys/stat.h.
3621         (lose): New function, prints error with
3622         newline and exits.
3623         (lose_gerror): Similar, but takes GError for message.
3624         (main): Add --output argument to specify output file to write to,
3625         instead of always printing to stdout.  In this mode, determine
3626         timestamps on source files to see whether any are newer than the
3627         target file.  If not, exit.  Also convert a number of error
3628         messages to use lose (since it's shorter), and switch to using
3629         g_io_channel_shutdown.
3630
3631 2005-02-19  Havoc Pennington  <hp@redhat.com>
3632
3633         * glib/dbus-gobject.c
3634         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3635
3636         * glib/dbus-glib.c: fix doxygen warnings
3637
3638         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3639         is found on an <arg>
3640
3641 2005-02-17  Colin Walters  <walters@verbum.org>
3642
3643         * glib/dbus-gobject.h: Don't export
3644         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3645         
3646         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3647         (invoke_object_method): Handle it.
3648
3649         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3650         Handle rename.
3651         
3652 2005-02-17  Colin Walters  <walters@verbum.org>
3653
3654         * bus/.cvsignore, doc/.cvsignore
3655         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3656         Update.
3657
3658 2005-02-17  Colin Walters  <walters@verbum.org>
3659         
3660         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3661         Rename to DBUS_SERVICE_DBUS.
3662         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3663         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3664         Change the value from "org.freedesktop.Local"
3665         to "org.freedesktop.DBus.Local".
3666         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3667         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3668         DBUS_INTERFACE_INTROSPECTABLE.
3669         Change the value from "org.freedesktop.Introspectable"
3670         to "org.freedesktop.DBus.Introspectable".
3671         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3672         DBUS_INTERFACE_PROPERTIES.
3673         Change the value from "org.freedesktop.Properties"
3674         to "org.freedesktop.DBus.Properties".
3675         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3676         DBUS_INTERFACE_PEER.
3677         Change the value from "org.freedesktop.Peer"
3678         to "org.freedesktop.DBus.Peer".
3679         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3680         DBUS_INTERFACE_LOCAL.
3681         Change the value from "org.freedesktop.Local"
3682         to "org.freedesktop.DBus.Local".
3683
3684         All other users of those constants have been changed.
3685
3686         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3687
3688         * glib/dbus-gobject.c (handle_introspect): Use constants.
3689
3690         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3691
3692 2005-02-17  Colin Walters  <walters@verbum.org>
3693
3694         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3695         (parse_node, parse_interface, parse_method, parse_signal)
3696         (parse_property, parse_annotation): Lose if we're currently in an
3697         annotation.
3698         (parse_annotation): New function.
3699         (parser_start_element, parser_end_element): Handle annotation.
3700         (parse_method, parse_interface): Remove support for c_name attribute,
3701         switch to annotations.
3702
3703         * glib/dbus-gidl.h (interface_info_get_binding_names)
3704         (method_info_get_binding_names)
3705         (interface_info_get_binding_name, method_info_get_binding_name)
3706         (interface_info_set_binding_name, method_info_set_binding_name):
3707         Remove.
3708         (interface_info_get_annotations, method_info_get_annotations)
3709         (interface_info_get_annotation, method_info_get_annotation)
3710         (interface_info_add_annotation, method_info_add_annotation):
3711         Prototype.
3712
3713         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3714         for "bindings".
3715         (struct MethodInfo): Ditto.
3716         Straightfoward conversion of binding methods into annotation methods
3717         as prototyped.
3718
3719         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3720
3721         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3722
3723         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3724         Use new annotation API.
3725
3726         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3727         annotation element.
3728         
3729         * doc/dbus-specification.xml: Discuss introspection annotations,
3730         include list of well-known annotations.
3731
3732         * test/glib/test-service-glib.xml: Make validate against new DTD.
3733
3734 2005-02-17  Colin Walters  <walters@verbum.org>
3735
3736         This patch is based on initial work from
3737         Paul Kuliniewicz <kuliniew@purdue.edu>.
3738
3739         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3740         initialization of GValue from dbus type to here.
3741         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3742         for the "glib-genmarshal" program from a DBus type.
3743         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3744         into the C name for it we use in the glib bindings.
3745         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3746         glib C type (not GValue).
3747         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3748
3749         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3750         from dbus-gobject.c.
3751
3752         * glib/dbus-gutils.h: Prototype it.
3753
3754         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3755         (marshal_dbus_message_to_g_marshaller): Use new shared function
3756         dbus_glib_marshal_dbus_message_to_gvalue_array.
3757
3758         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3759         Will be changed once we have annotations.
3760
3761         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3762         GStaticRWLock.  Callers updated.
3763         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
3764         (string_table_next): New function for iterating over zero-terminated
3765         string value array.
3766         (string_table_lookup): New function; retrieves specific entry in
3767         array.
3768         (get_method_data): New function; look up method data in object data chunk.
3769         (object_error_domain_prefix_from_object_info)
3770         (object_error_code_from_object_info): New functions, but not implemented yet.
3771         (method_interface_from_object_info): New function; retrieve interface name.
3772         (method_name_from_object_info): New function; retrieve method name.
3773         (method_arg_info_from_object_info): New function; retrieve argument data.
3774         (arg_iterate): New function; iterates over serialized argument data.
3775         (method_dir_signature_from_object_info): New function; returns a
3776         GString holding type signature for arguments for just one
3777         direction (input or output).
3778         (method_input_signature_from_object_info)
3779         (method_output_signature_from_object_info): New functions.
3780         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3781         converts dbus message arguments into a GValue array.  Used for both
3782         signal handling and method invocation.
3783         (struct DBusGlibWriteIterfaceData): New utility structure.
3784         (write_interface): New function; generate introspection XML for
3785         an interface.
3786         (introspect_interfaces): New function; gathers all interface->methods,
3787         generates introspection XML for them.
3788         (handle_introspect): Invoke introspect_interfaces.
3789         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3790         (lookup_object_and_method): New function; examines an incoming message
3791         and attempts to match it up (via interface, method name, and argument
3792         signature) with a known object and method.
3793         (gerror_domaincode_to_dbus_error_name): New function; converts a
3794         GError domain and code into a DBus error name.  Needs GError data
3795         added to object introspection to work well.
3796         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3797         GError.
3798         (invoke_object_method): New function to invoke an object method
3799         looked up via lookup_object_and_method.  Parses the incoming
3800         message, turns it into a GValue array, then invokes the marshaller
3801         specified in the DBusGMethodInfo.  Creates a new message with
3802         either return values or error message as appropriate.
3803         (gobject_message_function): Invoke lookup_object_and_method and
3804         invoke_object_method.
3805
3806         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3807         (enum DBusBindingOutputMode): New enum for binding output modes.
3808         (pretty_print): Print binding names.
3809         (dbus_binding_tool_error_quark): GError bits.
3810         (version): Fix typo.
3811         (main): Create GIOChannel for output.  Parse new --mode argument,
3812         possible values are "pretty-print", "glib-server", "glib-client".
3813         Use mode to invoke appropriate function.
3814         
3815         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3816
3817         * glib/dbus-glib-tool.h: New header, just includes GError bits
3818         for now.
3819
3820         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3821         maps binding style to name.
3822         (struct MethodInfo): Ditto.
3823         (get_hash_keys, get_hash_key): Utility function, returns keys for
3824         a GHashTable.
3825         (interface_info_new, method_info_new): Initialize bindings.
3826         (interface_info_unref, method_info_unref): Destroy bindings.
3827         (method_info_get_binding_names, method_info_get_binding_name)
3828         (interface_info_get_binding_names, interface_info_get_binding_name):
3829         Functions for retrieving binding names.
3830         (method_info_set_binding_name, interface_info_set_binding_name):
3831         Functions for setting binding names.
3832
3833         * glib/dbus-binding-tool-glib.h: New file, has prototypes
3834         for glib binding generation.
3835
3836         * glib/dbus-binding-tool-glib.c: New file, implements server-side
3837         and client-side glib glue generation.
3838
3839         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3840         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3841         dbus-glib-tool.h.
3842
3843         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3844         of using GClosureMarshal directly.
3845         (struct DBusGObjectInfo): Add n_infos member.
3846
3847         * test/glib/test-service-glib.xml: New file; contains introspection data
3848         for MyTestObject used in test-service-glib.c.
3849
3850         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3851         (my_object_do_nothing, my_object_increment, my_object_throw_error)
3852         (my_object_uppercase, my_object_many_args): New test methods.
3853         (main): Use dbus_g_object_class_install_info to include generated object
3854         info.
3855
3856         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3857         as well as client-side bindings.
3858
3859         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3860         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3861         using both the dbus_gproxy stuff directly as well as the generated bindings.
3862
3863 2005-02-15  Havoc Pennington  <hp@redhat.com>
3864
3865         * dbus/dbus-connection.c (dbus_connection_dispatch): always
3866         complete a pending call, don't run filters first.
3867
3868         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3869         dbus_pending_call_steal_reply
3870
3871         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3872         _dbus_connection_block_pending_call
3873         (dbus_pending_call_get_reply): change to steal_reply and return a
3874         ref
3875
3876         * dbus/dbus-connection.c
3877         (dbus_connection_send_with_reply_and_block): port to work in terms
3878         of DBusPendingCall
3879         (_dbus_connection_block_pending_call): replace block_for_reply
3880         with this
3881
3882 2005-02-14  Havoc Pennington  <hp@redhat.com>
3883
3884         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3885         properly handle looking up group information by name; fix 
3886         from j@bootlab.org
3887
3888 2005-02-13  Havoc Pennington  <hp@redhat.com>
3889
3890         * dbus/dbus-connection.c (dbus_connection_return_message) 
3891         (dbus_connection_borrow_message): hold dispatch lock while message
3892         is outstanding
3893         (_dbus_connection_block_for_reply): hold dispatch lock while we
3894         block for the reply, so nobody steals our reply
3895         (dbus_connection_pop_message): hold the dispatch lock while we
3896         pluck the message
3897
3898 2005-02-13  Havoc Pennington  <hp@redhat.com>
3899
3900         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3901         (_dbus_connection_release_dispatch)
3902         (_dbus_connection_acquire_io_path)
3903         (_dbus_connection_release_io_path): make the mutex and condvar
3904         control access to the "acquired" flag. Drop the connection lock
3905         while waiting on the condvar. Hopefully these are baby steps in
3906         roughly the right direction.
3907
3908 2005-02-13  Havoc Pennington  <hp@redhat.com>
3909
3910         * dbus/dbus-connection.c: use separate mutexes for the condition
3911         variables; this is some kind of baseline for sanity, but the
3912         condition variables still aren't used correctly afaict
3913
3914 2005-02-13  Havoc Pennington  <hp@redhat.com>
3915
3916         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3917         fix a double-unlock
3918
3919         * dbus/dbus-connection.c
3920         (_dbus_connection_detach_pending_call_unlocked): add this
3921
3922         Initial semi-correct pass through to fix thread locking; there are
3923         still some issues with the condition variable paths I'm pretty
3924         sure
3925         
3926         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3927         lock/unlock calls
3928
3929         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3930         rename to add _unlocked
3931         (struct DBusConnection): move "dispatch_acquired" and
3932         "io_path_acquired" to use only one bit each.
3933         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3934         (dbus_connection_set_watch_functions): hacky fix to reentrancy
3935         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
3936         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
3937         (_dbus_connection_remove_timeout) 
3938         (_dbus_connection_toggle_timeout): drop lock when calling out to
3939         user functions; done in a hacky/bad way.
3940         (_dbus_connection_send_and_unlock): add a missing unlock
3941         (_dbus_connection_block_for_reply): add a missing unlock
3942
3943         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3944         drop lock in a hacky probably unsafe way to call out to user
3945         function
3946
3947 2005-02-12  Havoc Pennington  <hp@redhat.com>
3948
3949         * tools/dbus-tree-view.c (info_set_func_text): display more
3950         details on args
3951
3952         * bus/driver.c (bus_driver_handle_list_services): list the bus
3953         driver
3954
3955         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3956
3957         * glib/dbus-gidl.c (signal_info_get_n_args): new function
3958         (method_info_get_n_args): new function
3959
3960 2005-02-12  Havoc Pennington  <hp@redhat.com>
3961
3962         * bus/driver.c (bus_driver_handle_introspect): add introspection
3963         for bus driver
3964
3965 2005-02-12  Havoc Pennington  <hp@redhat.com>
3966
3967         * bus/driver.c: put the signature of each bus driver method in the
3968         table of handlers and check it on incoming calls; this isn't
3969         really useful, but going to add introspect support in a minute.
3970
3971 2005-02-11  Joe Shaw  <joeshaw@novell.com>
3972
3973         * mono/Connection.cs: The unpredictability of finalizers in mono
3974         prevents us from deterministically disconnecting the filters from
3975         the Service class's finalizer, so move tracking of filters and
3976         matches here.  Add API for that.
3977
3978         * mono/Service.cs: Remove the code, add code which calls the
3979         methods now on the Connection class.
3980
3981 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
3982
3983         * python/dbus.py (class Sender): added to support dbus signals better
3984         (Bus::add_signal_receiver): added expand_args parameter which defaults
3985         to True.  When expand args is True the signal handler will pass the 
3986         message arguments as parameters to the signal handler.  If False
3987         revert to previous behavior where the signal handler must get the
3988         argument list from the message.  This is to help port applications
3989         like HAL that have a tendancy to send variable length argument lists.
3990         self._match_rule_to_receivers is now a dict of dicts.
3991         (Bus::remove_signal_receiver): pop handler off the dict intead of 
3992         removing it from a list
3993         (Bus::_signal_func): change signal handlers so that interface,
3994         signal_name, service, path and message are packed into a Sender
3995         object and that is passed to the handler.  If expand_args is True
3996         extract the args list from the message and append it to the parameter
3997         list
3998         
3999         * python/dbus_bindings.pyx.in (class Signature): added to support 
4000         signiature types
4001         (MessageIter::__init__): changed iteration limit to match D-BUS
4002         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4003         STRUCT and VARIENT type support
4004         (MessageIter::python_value_to_dbus_sig): made recursive to support
4005         recursive types
4006         (MessageIter::append*): added Signature, dict, tuple 
4007         support
4008
4009         * python/examples/example-client.py: added examples of getting tuples
4010         and dicts
4011
4012         * python/examples/example-service.py: added examples of sending tuples
4013         and dicts
4014
4015         * python/examples/example-signal-recipient.py: Fixed to handle new
4016         signal callback format
4017
4018 2005-02-10  Havoc Pennington  <hp@redhat.com>
4019
4020         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4021         (call dbus_g_proxy_add_signal)
4022
4023         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4024         escape the hostname
4025         (_dbus_server_new_for_domain_socket): escape the path
4026
4027         * dbus/dbus-address.c (dbus_address_escape_value): new
4028         (dbus_address_unescape_value): new
4029         (dbus_parse_address): unescape values
4030
4031         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4032
4033         * doc/dbus-specification.xml: explain how to escape values in
4034         addresses
4035
4036 2005-02-10  Havoc Pennington  <hp@redhat.com>
4037
4038         * dbus/dbus-message-factory.c (generate_special): modify test to
4039         avoid using a non-basic dict key
4040
4041         * dbus/dbus-marshal-validate-util.c: add test for the below
4042
4043         * doc/dbus-specification.xml: require that dict keys are a basic
4044         type
4045
4046         * dbus/dbus-marshal-validate.c
4047         (_dbus_validate_signature_with_reason): require that dict key is a
4048         basic type
4049
4050 2005-02-10  Havoc Pennington  <hp@redhat.com>
4051
4052         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4053         change to be _and_unlock instead of _unlocked
4054
4055         * dbus/dbus-connection.c
4056         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4057         have no_update so we can find this bug quickly in future
4058
4059 2005-02-10  Havoc Pennington  <hp@redhat.com>
4060
4061         * dbus/dbus-message-util.c (verify_test_message): tests for string
4062         array
4063
4064         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4065         support for arrays of string/signature/path
4066
4067 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4068
4069         * dbus/dbus-connection.c
4070         (_dbus_connection_queue_received_message_link,
4071         _dbus_connection_message_sent): Add the path to
4072         the verbose output.
4073         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4074         _dbus_connection_send_preallocated_unlocked(), updated the
4075         dispatch status, and unlocks.  Fixes a bug where certain
4076         situations (like a broken pipe) could cause a Disconnect message
4077         to not be sent, tricking the bus into thinking a service was still
4078         there when the process had quit.
4079         (_dbus_connection_send_preallocated): Call
4080         _dbus_connection_send_preallocated_and_unlock().
4081         (_dbus_connection_send_and_unlock): Added.  Calls
4082         _dbus_connection_send_preallocated_and_unlock().
4083         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4084         (dbus_connection_send_with_reply): Update the dispatch status and
4085         unlock.
4086
4087         * mono/Service.cs (~Service): Added.  Removes the filter so that
4088         we don't get unmanaged code calling back into a GCed delegate.
4089         (RemoveFilter); Added.
4090
4091 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4092
4093         * dbus/dbus-message.c (dbus_message_iter_open_container):
4094         - Removed check for iterator type being an array because
4095         get_arg_type does not work with writer iterators
4096         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4097
4098 2005-02-07  Havoc Pennington  <hp@redhat.com>
4099
4100         * doc/dbus-specification.xml: some more language cleanups; add
4101         stuff about how to deal with invalid protocol and extension
4102         points; add _ to allowed chars in auth commands; add EXTENSION_
4103         auth command prefix
4104
4105 2005-02-06  Havoc Pennington  <hp@redhat.com>
4106
4107         * s/expected/required/ in a couple places for clarity
4108
4109 2005-02-07  Colin Walters  <walters@verbum.org>
4110
4111         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4112         sender or proposed_recipient.
4113
4114 2005-02-06  Havoc Pennington  <hp@redhat.com>
4115
4116         * dbus/dbus-message-factory.c (generate_special): more tests
4117
4118         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4119         array length that exceeds the maximum
4120
4121 2005-02-05  Havoc Pennington  <hp@redhat.com>
4122
4123         * dbus/dbus-message-factory.c (generate_special): more test cases,
4124         increasing coverage
4125
4126         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4127         reason why a signature was invalid
4128
4129         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4130         skip the length of the string before we look at it in validation
4131
4132         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4133         equal_substring
4134
4135         * dbus/dbus-message.c (_dbus_message_loader_new): default
4136         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4137
4138 2005-02-05  Havoc Pennington  <hp@redhat.com>
4139
4140         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4141         if the signature of a variant was empty
4142         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4143         struct with no element type)
4144
4145         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4146         mangled messages to break things
4147
4148 2005-02-04  Havoc Pennington  <hp@redhat.com>
4149
4150         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4151         g_quark_try_string() so it actually can return 0
4152         (dbus_g_proxy_connect_signal): ditto
4153
4154 2005-02-04  Havoc Pennington  <hp@redhat.com>
4155
4156         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4157         bogus warning
4158         (tristring_from_message): assert cleanly on null path/interface
4159         (should not be possible though I decided later)
4160         (dbus_g_proxy_dispose): move proxy manager unregistration here
4161         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4162         g_return_if_fail() checks
4163
4164 2005-02-04  Havoc Pennington  <hp@redhat.com>
4165
4166         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4167
4168         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4169         (with some minor changes)
4170
4171         * doc/dbus-specification.xml: add deprecated attribute to
4172         introspection format
4173
4174 2005-01-31  Havoc Pennington  <hp@redhat.com>
4175
4176         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4177         think it's sort of right
4178
4179 2005-01-30  Havoc Pennington  <hp@redhat.com>
4180
4181         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4182
4183 2005-01-30  Havoc Pennington  <hp@redhat.com>
4184
4185         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4186
4187         * autogen.sh: change to autotools 1.9
4188
4189         * glib/dbus-gproxy.c: completely change how signals work
4190         (dbus_g_proxy_add_signal): new function to specify signature of a
4191         signal
4192         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4193         and g_warning if the incoming message has the wrong signature.
4194
4195 2005-01-30  Havoc Pennington  <hp@redhat.com>
4196
4197         * tools/dbus-names-model.c (have_names_notify): fix this
4198
4199         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4200         up the string array handling a bit 
4201
4202 2005-01-30  Havoc Pennington  <hp@redhat.com>
4203
4204         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4205         (dbus_g_pending_call_cancel): new function
4206
4207         * dbus/dbus-glib.h: move GType decls for connection/message here;
4208         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4209         here, just kind of rationalizing how we handle all that
4210
4211         * tools/dbus-names-model.c: new file for a tree model listing the
4212         services on a bus
4213
4214         * tools/dbus-tree-view.c (model_new): use proper typing on the
4215         model rows
4216
4217 2005-01-30  Havoc Pennington  <hp@redhat.com>
4218
4219         * glib/dbus-gmain.c: add a custom GSource back that just checks
4220         whether the message queue has anything in it; otherwise, there are 
4221         cases where we won't see messages in the queue since there was no 
4222         IO visible to the glib main loop
4223
4224         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4225         increase default message timeout to 25 seconds
4226
4227 2005-01-30  Havoc Pennington  <hp@redhat.com>
4228
4229         * test/glib/test-profile.c (no_bus_stop_server): remove the
4230         warning about the g_warning that I just fixed
4231
4232         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4233         custom source, seems to be a lot easier to understand and work
4234         better.
4235
4236 2005-01-30  Havoc Pennington  <hp@redhat.com>
4237
4238         I think this main loop thing is conceptually broken, but here are 
4239         some band aids. I'll maybe rewrite it in a minute.
4240         
4241         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4242         custom GSource, so don't pass it in; confusing
4243         (gsource_server_finalize, gsource_connection_finalize): add
4244         finalize handlers that remove all the watches.  
4245
4246 2005-01-30  Havoc Pennington  <hp@redhat.com>
4247
4248         * glib/dbus-gobject.c (introspect_properties): fix the XML
4249         generated
4250
4251         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4252         which effectively detects the use of freed messages
4253
4254         * glib/dbus-gobject.c (handle_introspect): modify and return the
4255         reply message instead of the incoming message
4256
4257         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4258         gee, maybe it should SEND THE XML instead of just making a string
4259         and freeing it again ;-)
4260
4261         * tools/dbus-print-message.c (print_message): improve printing of
4262         messages
4263
4264         * configure.in: add debug-glib.service to the output
4265
4266 2005-01-30  Havoc Pennington  <hp@redhat.com>
4267
4268         dbus-viewer introspected and displayed the bus driver
4269         
4270         * dbus/dbus-object-tree.c 
4271         (object_tree_test_iteration): add tests for a handler registered on "/"
4272
4273         * dbus/dbus-object-tree.c
4274         (_dbus_decompose_path): fix to handle path "/" properly
4275         (run_decompose_tests): add tests for path decomposition
4276         
4277         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4278         properly
4279
4280         * glib/dbus-gobject.c (handle_introspect): fix quotes
4281
4282         * test/glib/run-test.sh: support launching the bus, then running
4283         dbus-viewer
4284
4285         * test/glib/test-service-glib.c (main): put in a trivial gobject
4286         subclass and register it on the connection
4287
4288         * bus/driver.c (bus_driver_handle_introspect): implement
4289         introspection of the bus driver service
4290
4291         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4292         identifiers, doctype decl
4293
4294         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4295         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4296         returning the service unchanged.
4297         (bus_driver_handle_message): remove old check for reply_serial in
4298         method calls, now the message type deals with that
4299         (bus_driver_handle_message): handle NULL interface
4300
4301         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4302
4303         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4304         -1 for len
4305
4306         * tools/dbus-viewer.c: add support for introspecting a service on
4307         a bus
4308
4309         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4310         (dbus_g_pending_call_unref): add
4311
4312 2005-01-29  Havoc Pennington  <hp@redhat.com>
4313
4314         * tools/dbus-tree-view.c: add support for displaying properties.
4315         (run dbus-viewer with an introspect xml file as arg, then resize
4316         the window so the tree elements show up, not sure what that is)
4317
4318         * glib/dbus-gobject.c (handle_introspect): return
4319         org.freedesktop.Properties and org.freedesktop.Introspectable
4320         interfaces when we are introspected.
4321
4322         * doc/dbus-specification.xml: allow empty interface name when 
4323         Get/Set a property
4324
4325 2005-01-29  Havoc Pennington  <hp@redhat.com>
4326
4327         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4328         though it uses glib, it could be extended for any binding in
4329         principle
4330
4331         * glib/dbus-gobject.c (gobject_message_function): change to the
4332         new way properties work
4333
4334         * dbus/dbus-protocol.h: add the new interfaces
4335
4336         * doc/dbus-specification.xml: document the introspection format,
4337         Introspectable interface, and add an org.freedesktop.Properties
4338         interface.
4339
4340         * glib/dbus-gparser.c: add support for a <property> element
4341
4342         * glib/dbus-gidl.c: add PropertyInfo
4343
4344         * glib/dbus-gobject.c (handle_introspect): put the outermost
4345         <node> outside the signal and property descriptions.
4346         (introspect_properties): export properties as <property> rather
4347         than as method calls
4348
4349 2005-01-28  Havoc Pennington  <hp@redhat.com>
4350
4351         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4352         related to authentication protocol
4353
4354 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4355
4356         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4357                 - BUS_ACTIVATION -> BUS_STARTER
4358                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4359                 - class MessageIter (__init__): Added recursion checking 
4360                 so we throw a nice error instead of just disconnecting from the
4361                 bus.
4362                 (get): Added arg_type parameter for recursion.
4363                 Removed the nil type
4364                 Added signiture type placeholder (not implemented)
4365                 Added struct type placeholder (not implemented)
4366                 Added varient type placeholder (not implemented)
4367                 Commented out dict type for now     
4368                 (get_element_type): renamed from get_array_type
4369                 (get_*): changed to use the dbus_message_iter_get_basic API
4370                 (get_*_array): removed in favor of recursive get_array method
4371                 (get_array): new recursive method which calls get to marshal
4372                 the elements of the array
4373                 (value_to_dbus_sig): New method returns the corrasponding
4374                 dbus signiture to a python value
4375                 (append): Comment out dict handling for now
4376                 Handle lists with the new recursive API
4377                 Comment out None handling for now
4378                 (append_nil): removed
4379                 (append_*): changed to use dbus_message_iter_append_basic API
4380                 (append_*_array): removed in favor of recursive append_array 
4381                 method
4382                 (__str__): Make it easier to print out recursive iterators
4383                 for debugging
4384                 - class Message (__str__): moved type inspection to the
4385                 MessageIter class' __str__ method
4386                 (get_iter): Added an append parameter wich defaults to False
4387                 If True use the new API's to create an append iterator
4388
4389         * python/dbus.py: Update to use new bindings API
4390                 - TYPE_ACTIVATION -> TYPE_STARTER
4391                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4392                 - class ActivationBus -> class StarterBus
4393                 - class RemoteObject (__call__): get an append iterator
4394                 - (_dispatch_dbus_method_call): get an append iterator
4395                 - class Object (emit_signal): get an append iterator
4396
4397         * python/examples/: Fixed up the examples to work with the new API
4398                 
4399 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4400
4401         * configure.in: Bump version up to 0.30.
4402
4403         * HACKING: Add a release item to bump the version number up after 
4404         a release.
4405
4406 2005-01-28  Havoc Pennington  <hp@redhat.com>
4407
4408         * doc/dbus-specification.xml: update to describe 16-bit types and
4409         dict entries
4410
4411         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4412         assertion
4413
4414         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4415         type
4416
4417         * dbus/dbus-marshal-recursive.c: implement
4418
4419 2005-01-27  Havoc Pennington  <hp@redhat.com>
4420
4421         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4422
4423         * configure.in: find the right type for 16 and 32 bit ints as well
4424         as 64
4425
4426         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4427         the 16-bit types so people don't have to stuff them in 32-bit or
4428         byte arrays.
4429
4430 2005-01-27  Havoc Pennington  <hp@redhat.com>
4431
4432         * dbus/dbus-message.c: byteswap the message if you init an
4433         iterator to read/write from it
4434         
4435         * dbus/dbus-marshal-byteswap.c: new file implementing 
4436         _dbus_marshal_byteswap()
4437
4438         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4439
4440 2005-01-26  Havoc Pennington  <hp@redhat.com>
4441         
4442         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4443         build, apparently - nobody noticed?)
4444         
4445 2005-01-26  Havoc Pennington  <hp@redhat.com>
4446
4447         * dbus/dbus-marshal-recursive.h: remove todo comment
4448
4449 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4450
4451         * Land the mono binding changes to conform to the new APIs.
4452
4453         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4454         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4455
4456         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4457         type code as a string.
4458         (InitAppending): Rename dbus_message_append_iter_init() to
4459         dbus_message_iter_init_append().
4460
4461         * mono/BusDriver.cs: Rename ServiceEventHandler to
4462         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4463         Rename ServiceOwnerChanged to NameOwnerChanged.
4464
4465         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4466         underlying C call.
4467
4468         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4469
4470         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4471         dbus_bus_acquire_service() to dbus_bus_request_name().
4472
4473         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4474         of Type.UnderlyingSystemType to get the correct element type for
4475         the array.
4476         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4477         dbus_message_get_{element|arg}_type() instead of
4478         dbus_message_iter_init_array_iterator().
4479         (Append): Replace dbus_message_iter_append_array() with
4480         dbus_message_iter_open_container() and
4481         dbus_message_iter_close_container().
4482
4483         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4484         types have been removed.
4485         
4486         * mono/DBusType/*.cs: Replace calls of
4487         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4488         but specify the type in the DllImport extern declaration.  Ditto
4489         for dbus_message_iter_append_[type]() ->
4490         dbus_message_iter_append_basic().
4491
4492         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4493         NameOwnerChangedHandler.
4494
4495 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4496
4497         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4498                 - get_base_service -> get_unique_name
4499                 - bus_get_base_service -> bus_get_unique_name
4500                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4501                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4502                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4503                 - bus_activate_service -> bus_start_service_by_name
4504                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4505                 - bus_acquire_service -> bus_request_name
4506                 - dbus_bus_acquire_service -> dbus_bus_request_name
4507                 - bus_service_exists -> bus_name_has_owner
4508                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4509
4510         * python/dbus.py: Rename of methods
4511                 - activate_service -> start_service_by_name
4512                 - bus_acquire_service -> bus_request_name
4513                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4514                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4515
4516         
4517 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4518
4519         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4520         signature for the method that can't be found.
4521
4522         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4523         the message has any arguments, we need to call
4524         _dbus_type_reader_get_current_type(), not
4525         _dbus_type_reader_has_next().
4526
4527 2005-01-24  Havoc Pennington  <hp@redhat.com>
4528
4529         * dbus/dbus-message-factory.c: more testing of message validation
4530
4531         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4532         header
4533
4534 2005-01-23  Havoc Pennington  <hp@redhat.com>
4535
4536         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4537         get this all working, not many tests in the framework yet though
4538
4539 2005-01-22  Havoc Pennington  <hp@redhat.com>
4540
4541         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4542         tutorial, based on work from David Wheeler.
4543
4544 2005-01-21  Havoc Pennington  <hp@redhat.com>
4545
4546         * dbus/dbus-bus.c: add more return_if_fail checks
4547
4548         * dbus/dbus-message.c (load_message): have the "no validation"
4549         mode (have to edit the code to toggle the mode for now though)
4550
4551         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4552         skips all validation; I want to use this at least for benchmark
4553         baseline, I'm not sure if it should be a publicly-available switch.
4554
4555 2005-01-21  Havoc Pennington  <hp@redhat.com>
4556
4557         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4558         toplevel doxygen group as the low-level API stuff
4559
4560         * dbus/dbus.h: note that libdbus is the low-level API
4561
4562 2005-01-20  Havoc Pennington  <hp@redhat.com>
4563
4564         * update-dbus-docs.sh: script to update docs on the web site, only
4565         works for me though. neener.
4566
4567 2005-01-20  Havoc Pennington  <hp@redhat.com>
4568
4569         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4570         code can reveal bugs in it
4571
4572 2005-01-20  Havoc Pennington  <hp@redhat.com>
4573
4574         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4575         select() version, patches from Tor Lillqvist
4576
4577 2005-01-20  Havoc Pennington  <hp@redhat.com>
4578
4579         * doc/dbus-tutorial.xml: replace > with &gt;
4580
4581         * bus/services.c (bus_registry_acquire_service): validate the name
4582         and return a better error if it's no good.
4583
4584         * doc/dbus-specification.xml: note NO_AUTO_START change
4585
4586         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4587         from AUTO_START, we're toggling the default
4588
4589         * bus/dispatch.c: adapt the tests to change of auto-start default
4590
4591 2005-01-18  Havoc Pennington  <hp@redhat.com>
4592
4593         * rename dbus-daemon-1 to dbus-daemon throughout
4594
4595 2005-01-18  Havoc Pennington  <hp@redhat.com>
4596
4597         * Throughout, grand renaming to strip out the use of "service",
4598         just say "name" instead (or "bus name" when ambiguous).  Did not
4599         change the internal code of the message bus itself, only the
4600         programmer-facing API and messages.
4601         
4602         * doc/dbus-specification.xml: further update the message bus section
4603         
4604         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4605         in error case
4606
4607 2005-01-17  Havoc Pennington  <hp@redhat.com>
4608
4609         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4610         ever
4611
4612         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4613         "invalid name character" not only non-ASCII
4614
4615         * doc/dbus-specification.xml: further update spec, message bus 
4616         parts are still out-of-date but the marshaling etc. stuff is now
4617         accurate-ish
4618
4619 2005-01-17  Havoc Pennington  <hp@redhat.com>
4620
4621         * doc/dbus-specification.xml: partially update spec
4622
4623 2005-01-17  Havoc Pennington  <hp@redhat.com>
4624
4625         * Throughout, align variant bodies according to the contained
4626         type, rather than always to 8. Should save a fair bit of space in
4627         message headers.
4628         
4629         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4630         fix handling of case where p == end
4631
4632         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4633
4634 2005-01-17  Havoc Pennington  <hp@redhat.com>
4635
4636         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4637
4638         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4639         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4640         are marshaling/unmarshaling a boolean.
4641
4642 2005-01-16  Havoc Pennington  <hp@redhat.com>
4643
4644         This is about it on what can be disabled/deleted from libdbus
4645         easily, back below 150K anyhow. Deeper cuts are more work than 
4646         just turning the code off as I've done here.
4647         
4648         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4649         signed int convenience funcs
4650
4651         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4652         verbose mode
4653
4654         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4655         things out of libdbus
4656
4657         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4658         
4659         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4660         tests-enabled-only, though it should probably be deleted)
4661
4662         * dbus/dbus-message-util.c: same stuff
4663
4664         * dbus/dbus-auth-util.c: same stuff
4665
4666 2005-01-16  Havoc Pennington  <hp@redhat.com>
4667
4668         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4669
4670         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4671         way for stripping down dbus-userdb.c stuff included in libdbus.
4672         Rename _dbus_parse_uid for consistency.
4673
4674 2005-01-16  Havoc Pennington  <hp@redhat.com>
4675
4676         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4677         name the assertion failed in
4678
4679         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4680         (_dbus_return_val_if_fail): assert that the name of the function
4681         containing the check doesn't start with '_', since we only want to 
4682         use checks on public functions
4683         
4684         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4685         checks to assertions
4686
4687         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4688         change checks to asserts for private function
4689
4690         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4691         to asserts for private function
4692
4693         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4694         broken assertion that was breaking make check
4695         (_dbus_type_reader_array_is_empty): remove this rather than fix
4696         it, was only used in assertions
4697
4698 2005-01-16  Havoc Pennington  <hp@redhat.com>
4699
4700         * test/unused-code-gc.py: hacky script to find code that's used
4701         only by the bus (not libdbus) or used only by tests or not used at
4702         all. It has some false alarms, but looks like we can clean up a
4703         lot of size from libdbus.
4704
4705         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4706         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4707         
4708 2005-01-16  Havoc Pennington  <hp@redhat.com>
4709
4710         * Add and fix docs according to Doxygen warnings throughout
4711         source.
4712         
4713         * dbus/dbus-marshal-recursive.c
4714         (_dbus_type_reader_array_is_empty): change this to just call
4715         array_reader_get_array_len() and make it static
4716
4717         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4718         from get_array_type
4719         (dbus_message_iter_init_append): rename from append_iter_init
4720
4721         * dbus/dbus-marshal-recursive.c
4722         (_dbus_type_reader_get_element_type): rename from
4723         _dbus_type_reader_get_array_type
4724
4725 2005-01-15  Havoc Pennington  <hp@redhat.com>
4726
4727         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4728
4729         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4730         when DBUS_DISABLE_ASSERT
4731         (_dbus_marshal_set_basic): be sure we align for the string length
4732
4733         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4734         this look faster
4735
4736         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4737         inline macro version
4738         (_dbus_string_set_byte): provide inline macro version
4739
4740 2005-01-15  Havoc Pennington  <hp@redhat.com>
4741
4742         * Land the new message args API and type system.
4743
4744         This patch is huge, but the public API change is not 
4745         really large. The set of D-BUS types has changed somewhat, 
4746         and the arg "getters" are more geared toward language bindings;
4747         they don't make a copy, etc.
4748
4749         There are also some known issues. See these emails for details
4750         on this huge patch:
4751         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4752         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4753         
4754         * dbus/dbus-marshal-*: all the new stuff
4755
4756         * dbus/dbus-message.c: basically rewritten
4757
4758         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4759         freed blocks to be all non-nul bytes so using freed memory is less
4760         likely to work right
4761
4762         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4763         DBUS_FAIL_MALLOC=N environment variable, so you can do
4764         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4765         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4766         thorough.
4767
4768         * qt/message.cpp: port to the new message args API
4769         (operator<<): use str.utf8() rather than str.unicode()
4770         (pretty sure this is right from the Qt docs?)
4771
4772         * glib/dbus-gvalue.c: port to the new message args API
4773
4774         * bus/dispatch.c, bus/driver.c: port to the new message args API
4775
4776         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4777         "locked" flag to TRUE and align_offset to 0; I guess we never
4778         looked at these anyhow, but seems cleaner.
4779
4780         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4781         move allocation padding macro to this header; use it to implement
4782         (_DBUS_STRING_STATIC): ability to declare a static string.
4783
4784         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4785         change to return TRUE if the interface is not set.
4786
4787         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4788         to dbus-marshal-validate.[hc]
4789
4790         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4791         dbus-internals.c
4792
4793         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4794         to dbus-marshal-*.[hc]
4795
4796         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4797         function here from dbus-marshal.c
4798
4799 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4800
4801         * NEWS: Update for 0.23.
4802
4803         * configure.in: Release 0.23.
4804
4805 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4806
4807         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
4808         dbus DLL with --debug.  Clean up after the .mdb files this leaves
4809         behind.
4810
4811         * mono/doc/Makefile.am: Need to uninstall the docs on "make
4812         uninstall"
4813
4814         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4815         is an enum, get the enum's underlying type.  Another mono
4816         1.1.3 fix.
4817
4818 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4819
4820         Patch from Sjoerd Simons <sjoerd@luon.net>
4821
4822         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4823         DESTDIR.  It breaks stuff.
4824
4825 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4826
4827         Patch from Tambet Ingo <tambet@ximian.com>
4828
4829         * mono/DBusType/Array.cs (Get): Get the underlying element type by
4830         calling type.GetElementType().  The code previously depended on
4831         broken Mono behavior, which was fixed in Mono 1.1.3.
4832
4833         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4834         Activator.CreateInstance() so that the class's constructor is
4835         called with the right parameters.
4836
4837 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4838
4839         Patch from Timo Teräs <ext-timo.teras@nokia.com>
4840
4841         * dbus/dbus-connection.c
4842         (_dbus_connection_queue_received_message_link): Call
4843         _dbus_connection_remove_timeout() instead of the _locked()
4844         variant, since it's always called from
4845         _dbus_connection_handle_watch(), which handles the locking.
4846         Removed the _locked() variant since it's no longer used.
4847
4848 2005-01-03  Havoc Pennington  <hp@redhat.com>
4849
4850         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4851         return
4852         
4853 2004-12-26  Havoc Pennington  <hp@redhat.com>
4854
4855         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4856
4857 2005-01-03  Havoc Pennington  <hp@redhat.com>
4858
4859         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4860         floating point
4861
4862         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4863
4864 2005-01-02  Havoc Pennington  <hp@redhat.com>
4865
4866         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4867
4868 2005-01-01  Havoc Pennington  <hp@redhat.com>
4869
4870         * configure.in: add -Wfloat-equal
4871
4872 2005-01-01  Havoc Pennington  <hp@redhat.com>
4873
4874         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
4875         for a variety of reasons '==' doesn't do this.
4876
4877 2004-12-31  Havoc Pennington  <hp@redhat.com>
4878
4879         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4880         I keep wishing I had
4881
4882 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4883
4884         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4885
4886 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4887
4888         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4889         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4890         dbus-protocol.h.  Because they are defines and not enums they are not
4891         autogenerated.
4892
4893 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
4894
4895         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4896         dbus_bus_activate_service
4897
4898         * python/dbus.py (Bus.activate_service): activate a service on the
4899         bus.
4900
4901 2004-12-24  Havoc Pennington  <hp@redhat.com>
4902
4903         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4904         file format has also changed and I haven't adapted to that yet
4905         
4906         * Makefile.am: load .gcno files from latest gcc
4907
4908 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
4909         * Patch from Rob Taylor <robtaylor@fastmail.fm>
4910
4911         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4912         lowlevel binding
4913
4914         * python/dbus.py (get_unix_user): Added binding to 
4915         call dbus_bindings.bus_get_unix_user
4916
4917         * python/extract.py: Modified the proto_pat regex to
4918         handle unsigned long
4919
4920 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4921
4922         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4923         better POSIX compliance.
4924
4925 2004-12-19  Havoc Pennington  <hp@redhat.com>
4926
4927         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
4928         (_dbus_string_insert_8_aligned): new functions
4929
4930         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4931
4932 2004-12-18  Havoc Pennington  <hp@redhat.com>
4933
4934         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4935         macro
4936
4937         * dbus/dbus-message.c: fix a comment, and add a still-unused
4938         not-implemented function
4939
4940         * dbus/dbus-marshal.h: fix comment
4941
4942         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4943
4944 2004-12-17  Joe Shaw  <joeshaw@novell.com>
4945
4946         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4947         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4948         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4949         Type.UnderlyingSystemType to get the actual system type
4950         underneath.  This code previously depended on the broken Mono
4951         behavior, which was fixed in 1.1.3.
4952
4953 2004-11-27  Havoc Pennington  <hp@redhat.com>
4954
4955         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4956         are disabled
4957         (_dbus_string_get_const_data): inline when asserts are disabled
4958
4959         * dbus/dbus-message.c: record the _dbus_current_generation of
4960         creation so we can complain if dbus_shutdown() is used improperly.
4961         Do this only if checks are enabled.
4962
4963         * dbus/dbus-connection.c: ditto
4964         
4965 2004-11-26  Havoc Pennington  <hp@redhat.com>
4966
4967         * test/glib/test-profile.c: add with_bus mode to profile echoes
4968         that go through the bus.
4969
4970         * test/glib/run-test.sh: add ability to run test-profile
4971
4972         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4973         config file reload.
4974
4975 2004-11-26  Havoc Pennington  <hp@redhat.com>
4976
4977         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4978         thing was implemented
4979
4980 2004-11-26  Havoc Pennington  <hp@redhat.com>
4981
4982         * test/glib/test-profile.c: tweak a bit, add support for some
4983         made-up minimal malloc overhead with plain sockets, since in 
4984         real life some sort of buffers are unavoidable thus we could 
4985         count them in the theoretical best case
4986
4987 2004-11-26  Havoc Pennington  <hp@redhat.com>
4988
4989         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
4990         where I was trying to cache one too many messages
4991
4992 2004-11-26  Havoc Pennington  <hp@redhat.com>
4993
4994         * dbus/dbus-message.c: reimplement message cache as an array which 
4995         makes the cache about twice as fast and saves maybe 1.5% overall
4996
4997 2004-11-26  Havoc Pennington  <hp@redhat.com>
4998
4999         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5000         message cache lock here
5001
5002 2004-11-26  Havoc Pennington  <hp@redhat.com>
5003
5004         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5005         the "char byte_order" next to each other to save 4 bytes
5006         (dbus_message_new_empty_header): reduce preallocation, since the
5007         message cache should achieve a similar effect
5008         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5009         message cache that keeps a few DBusMessage around in a pool,
5010         another 8% speedup or so.
5011
5012         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5013
5014 2004-11-25  Havoc Pennington  <hp@redhat.com>
5015
5016         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5017         to write, without reading or blocking, try it before the poll()
5018         and skip the poll() if nothing remains to write. This is about a
5019         3% speedup in the echo client/server
5020
5021 2004-11-25  Havoc Pennington  <hp@redhat.com>
5022
5023         The primary change here is to always write() once before adding
5024         the write watch, which gives us about a 10% performance increase.
5025         
5026         * dbus/dbus-transport-unix.c: a number of modifications to cope
5027         with removing messages_pending
5028         (check_write_watch): properly handle
5029         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5030         messages_pending stuff
5031         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5032         AUTHENTICATED cases
5033         (unix_handle_watch): after writing, see if the write watch can be
5034         removed
5035         (unix_do_iteration): assert that write_watch/read_watch are
5036         non-NULL rather than testing that they aren't, since they 
5037         aren't allowed to be NULL. check_write_watch() at the end so 
5038         we add the watch if we did not finish writing (e.g. got EAGAIN)
5039
5040         * dbus/dbus-transport-protected.h: remove messages_pending call,
5041         since it resulted in too much inefficient watch adding/removing; 
5042         instead we now require that the transport user does an iteration 
5043         after queueing outgoing messages, and after trying the first
5044         write() we add a write watch if we got EAGAIN or exceeded our 
5045         max bytes to write per iteration setting
5046
5047         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5048         function
5049
5050         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5051         freed and then accessed, valgrind flagged this bug, fix it
5052
5053         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5054         as the last valid field plus 1, where really it is equal to the
5055         last valid field. Corrects some message corruption issues.
5056
5057         * dbus/dbus-mainloop.c: verbosity changes
5058
5059         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5060         instead of aborting in one of the test codepaths
5061
5062         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5063         caused not printing the pid ever again if a verbose was missing
5064         the newline at the end
5065         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5066
5067         * dbus/dbus-connection.c: verbosity changes; 
5068         (dbus_connection_has_messages_to_send): new function
5069         (_dbus_connection_message_sent): no longer call transport->messages_pending
5070         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5071         try to write() immediately, so we can avoid the write watch. This
5072         is the core purpose of this patchset
5073         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5074         dump the outgoing message queue, so nobody will get confused
5075         trying to send them or thinking stuff is pending to be sent
5076
5077         * bus/test.c: verbosity changes
5078
5079         * bus/driver.c: verbosity/assertion changes
5080
5081         * bus/dispatch.c: a bunch of little tweaks to get it working again
5082         because this patchset changes when/where you need to block.
5083
5084 2004-11-23  Havoc Pennington  <hp@redhat.com>
5085
5086         * test/glib/test-profile.c: modify to accept a plain_sockets
5087         argument in which case it will bench plain sockets instead of
5088         libdbus, for comparison purposes.
5089
5090 2004-11-22  Havoc Pennington  <hp@redhat.com>
5091
5092         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5093         threads for more time, so sysprof can get a grip on it.
5094
5095         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5096         pointless variable
5097
5098 2004-11-13  Havoc Pennington  <hp@redhat.com>
5099
5100         * test/glib/test-profile.c: fix this thing up a bit
5101
5102         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5103         preallocation sizes by a fair bit; not sure if this will be an
5104         overall performance win or not, but it does reduce reallocs.
5105
5106         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5107         the test hack that forced constant realloc if asserts are
5108         disabled, so we can profile sanely. Sprinkle in some
5109         _DBUS_UNLIKELY() which are probably pointless, but before I
5110         noticed the real performance problem I put them in.
5111         (_dbus_string_validate_utf8): micro-optimize this thing a little
5112         bit, though callgrind says it didn't help; then special-case
5113         ascii, which did help a lot; then be sure we detect nul bytes as
5114         invalid, which is a bugfix.
5115         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5116         superstition; use memset to nul the padding instead of a manual
5117         loop.
5118         (_dbus_string_get_length): inline this as a
5119         macro; it showed up in the profile because it's used for loop
5120         tests and so forth
5121
5122 2004-11-10  Colin Walters  <walters@verbum.org>
5123
5124         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5125         for extra paranoia.
5126
5127 2004-11-09  Colin Walters  <walters@verbum.org>
5128
5129         * dbus/dbus-string.c (_dbus_string_get_length): New
5130         function, writes DBusString to C buffer.
5131
5132         * dbus/dbus-string.h: Prototype it.
5133
5134         * dbus/dbus-message.c (dbus_message_type_to_string): New
5135         function, converts message type into C string.
5136
5137         * dbus/dbus-message.h: Prototype it.
5138
5139         * bus/selinux.c (bus_selinux_check): Take source pid,
5140         target pid, and audit data.  Pass audit data to
5141         avc_has_perm.
5142         (log_audit_callback): New function, appends extra
5143         audit information.
5144         (bus_selinux_allows_acquire_service): Also take
5145         service name, add it to audit data.
5146         (bus_selinux_allows_send): Also take message
5147         type, interface, method member, error name,
5148         and destination, and add them to audit data.
5149         (log_cb): Initialize func_audit.
5150         
5151         * bus/selinux.h (bus_selinux_allows_acquire_service)
5152         (bus_selinux_allows_send): Update prototypes 
5153
5154         * bus/services.c (bus_registry_acquire_service): Pass
5155         service name to bus_selinux_allows_acquire_service.
5156
5157         * bus/bus.c (bus_context_check_security_policy): Pass
5158         additional audit data.  Move assignment of dest
5159         to its own line.
5160
5161 2004-11-07  Colin Walters  <walters@verbum.org>
5162
5163         * dbus/dbus-transport-unix.c (do_authentication): Always
5164         initialize auth_completed.
5165         
5166 2004-11-07  Colin Walters  <walters@verbum.org>
5167
5168         * bus/bus.c (load_config): Break into three
5169         separate functions: process_config_first_time_only,
5170         process_config_every_time, and process_config_postinit.
5171         (process_config_every_time): Move call of
5172         bus_registry_set_service_context_table into
5173         process_config_postinit.
5174         (process_config_postinit): New function, does
5175         any processing that needs to happen late
5176         in initialization (and also on reload).
5177         (bus_context_new): Instead of calling load_config,
5178         open config parser here and call process_config_first_time_only
5179         and process_config_every_time directly.  Later, after
5180         we have forked but before changing UID,
5181         invoke bus_selinux_full_init, and then call
5182         process_config_postinit.
5183         (bus_context_reload_config): As in bus_context_new,
5184         load parse file inside here, and call process_config_every_time
5185         and process_config_postinit.
5186
5187         * bus/services.h, bus/services.c
5188         (bus_registry_set_service_context_table): Rename
5189         from bus_registry_set_sid_table.  Take string hash from config
5190         parser, and convert them here into SIDs.
5191
5192         * bus/config-parser.c (struct BusConfigParser): Have
5193         config parser only store a mapping of service->context
5194         string.
5195         (merge_service_context_hash): New function.
5196         (merge_included): Merge context string hashes instead
5197         of using bus_selinux_id_table_union.
5198         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5199         simply create a new string hash.
5200         (bus_config_parser_unref): Unref it.
5201         (start_selinux_child): Simply insert strings into hash,
5202         don't call bus_selinux_id_table_copy_over.
5203
5204         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5205         (bus_selinux_id_table_copy_over): Delete.
5206
5207 2004-11-03  Colin Walters  <walters@verbum.org>
5208
5209         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5210         variables.
5211         
5212 2004-11-03  Colin Walters  <walters@verbum.org>
5213
5214         * bus/test-main.c (test_pre_hook): Fix test logic,
5215         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5216
5217 2004-11-02  Colin Walters  <walters@redhat.com>
5218
5219         * bus/selinux.c (bus_selinux_init): Split into two functions,
5220         bus_selinux_pre_init and bus_selinux_post_init.
5221         (bus_selinux_pre_init): Just determine whether SELinux is
5222         enabled.
5223         (bus_selinux_post_init): Do everything else.
5224
5225         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5226         config file, and bus_selinux_post_init after.  This ensures that
5227         we don't lose the policyreload notification thread that
5228         bus_selinux_init created before forking previously.
5229         
5230         * bus/test-main.c (test_pre_hook): Update for split.
5231
5232 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5233
5234         Patch from Johan Fischer <linux@fischaz.com>
5235         
5236         * mono/doc/Makefile.am (install-data-local): Added directory
5237         install for DESTDIR
5238
5239 2004-10-29  Colin Walters  <walters@redhat.com>
5240
5241         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5242         parameter for fd to write pid to.       
5243
5244         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5245         
5246         * bus/bus.c (bus_context_new): Pass print_pid_fd
5247         to _dbus_become_daemon (bug #1720)
5248
5249 2004-10-29  Colin Walters  <walters@redhat.com>
5250
5251         Patch from Ed Catmur <ed@catmur.co.uk>
5252
5253         * mono/doc/Makefile.am (install-data-local): Handle
5254         DESTDIR.
5255
5256 2004-10-29  Colin Walters  <walters@redhat.com>
5257
5258         * bus/.cvsignore, qt/.cvsignore: Update.
5259
5260 2004-10-29  Colin Walters  <walters@redhat.com>
5261
5262         Patch from Kristof Vansant <de_lupus@pandora.be>
5263
5264         * configure.in: Detect Slackware.
5265         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5266         * bus/rc.messagebus.in: New file.
5267
5268 2004-10-29  Colin Walters  <walters@redhat.com>
5269
5270         * tools/dbus-monitor.c (filter_func): Return
5271         DBUS_HANDLER_RESULT_HANDLED in filter function
5272         for now.  See:
5273         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5274
5275 2004-10-29  Colin Walters  <walters@redhat.com>
5276
5277         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5278
5279         * bus/services.c (bus_registry_acquire_service): 
5280         Correctly retrieve service name from DBusString
5281         for printing.
5282
5283 2004-10-29  Colin Walters  <walters@redhat.com>
5284
5285         * dbus/dbus-glib.h: Update documentation to not
5286         refer to internal APIs.
5287
5288 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5289
5290         * mono/Arguments.cs (GetDBusTypeConstructor):
5291         type.UnderlyingSystemType will return "System.Byte" if you do it
5292         on "byte[]", which is not what we want.  So check the type.IsArray
5293         property and use System.Array instead.
5294
5295 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5296
5297         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5298         the DBusUserInfo structure since this is passed into the function.
5299         This would cause a double free when the function that allocated
5300         the structure would try to free it when an error occured.
5301
5302         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5303         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5304         for service activation to avoid 32bit/64bit parallel install issues
5305
5306 2004-10-21  Colin Walters  <walters@verbum.org>
5307
5308         * AUTHORS: Fix my email address, the @gnu.org one
5309         has been bouncing for some time.  Also add J5.
5310         
5311 2004-10-21  Colin Walters  <walters@verbum.org>
5312
5313         * dbus/dbus-transport-unix.c (do_authentication): Return
5314         authentication status to callers.
5315         (unix_handle_watch): If we completed authentication this round,
5316         don't do another read.  Instead wait until the next iteration,
5317         after we've read any pending data in the auth buffer.
5318         (unix_do_iteration): Ditto.
5319         (unix_handle_watch): Updated for new do_authentication prototype.
5320
5321 2004-10-18  Colin Walters  <walters@verbum.org>
5322
5323         * bus/selinux.c (bus_selinux_enabled): Handle
5324         --disable-selinux case.
5325         
5326 2004-10-18  Colin Walters  <walters@verbum.org>
5327
5328         * bus/selinux.h: Add bus_selinux_enabled.
5329         
5330         * bus/selinux.c (bus_selinux_enabled): Implement it.
5331         
5332         * bus/config-parser.c (struct include): Add
5333         if_selinux_enabled member.
5334         (start_busconfig_child): Parse if_selinux_enabled
5335         attribute for include.
5336         (bus_config_parser_content): Handle it.
5337
5338         * bus/session.conf.in, bus/system.conf.in: Add
5339         inclusion of context mapping to default config files;
5340         conditional on SELinux being enabled.
5341         
5342         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5343         
5344         * test/data/invalid-config-files/badselinux-1.conf, 
5345         test/data/invalid-config-files/badselinux-2.conf:
5346         Test files for bad syntax.
5347         
5348 2004-10-17  Colin Walters  <walters@verbum.org>
5349
5350         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5351         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5352         format specifier mismatches.
5353
5354 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5355
5356         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5357         format string.
5358
5359         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5360         pointer (bug #1540, Leonardo Boiko).
5361
5362 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5363
5364         * mono/BusDriver.cs: Changed BusDriver struct to remove
5365         the ServiceCreated and ServiceDeleted events and replace them
5366         with the new ServiceOwnerChanged event.
5367
5368         * mono/example/BusListener.cs: Added a new example program,
5369         which listens for and reports any ServiceOwnerChanged events
5370         on the bus driver.
5371
5372         * mono/example/Makefile.am (DESTDIR): Build changes for the
5373         new BusListener.cs example.
5374
5375 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5376
5377         * bus/signals.c (bus_match_rule_parse): validate the components of
5378         match rules (bug #1439).
5379
5380         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5381
5382 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5383
5384         * doc/dbus-specification.xml: document ServiceOwnerChanged
5385         signal.
5386         
5387         * bus/driver.c, bus/driver.h, bus/services.c: Use
5388         ServiceOwnerChanged signal instead of ServiceCreated and
5389         ServiceDeleted.
5390         
5391         * bus/dispatch.c: update testcase for the new signal.
5392
5393 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5394
5395         Patch from Nat Friedman <nat@novell.com>
5396
5397         * mono/Makefile.am: A number of small build fixes to allow "make
5398         distcheck" to succeed.
5399
5400         * mono/example/Makefile.am: "make distcheck" fixes.
5401
5402         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5403         key in @srcdir@.
5404
5405         * test/Makefile.am: "make distcheck" fixes.
5406
5407 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5408
5409         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5410
5411         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5412
5413         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5414         messages after the first one (bug #1389).
5415         
5416         * bus/dispatch.c (check_double_hello_message): add a test case for
5417         the double hello message bug.
5418         (check_existent_service_activation): fix check of spawning error.
5419         
5420 2004-09-16  David Zeuthen  <david@fubar.dk>
5421
5422         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5423
5424 2004-09-12  David Zeuthen  <david@fubar.dk>
5425
5426         Patch from Kay Sievers <kay.sievers@vrfy.org>
5427
5428         * bus/bus.c (bus_context_new):
5429         * bus/bus.h:
5430         * bus/main.c (usage)
5431         (main):
5432         Add commandline option --nofork to override configuration file
5433         setting.
5434
5435 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5436
5437         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5438         compilers don't like it (bug #974).
5439
5440 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5441
5442         * qt/connection.*: Applied patch by Jérôme Lodewyck
5443         <lodewyck@clipper.ens.fr> to integrate an existing
5444         connection into the Qt eventloop
5445
5446 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5447
5448         * mono/BusDriver.cs: Added.  This is a class for interacting with
5449         the org.freedesktop.DBus service.
5450
5451         * mono/Message.cs: Added a mechanism to expose the message that is
5452         currently being dispatched via the static Message.Current
5453         property.  Added Message.Sender and Message.Destination
5454         properties.
5455
5456         * mono/Handler.cs: Expose the dispatched message via
5457         Message.Current when handling method calls.
5458
5459         * mono/Service.cs: Expose the dispatched message via
5460         Message.Current when handling signal emissions.
5461         
5462         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5463         Connection.BaseService property.
5464
5465 2004-08-28  Havoc Pennington  <hp@redhat.com>
5466
5467         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5468
5469         More fixes from Steve Grubb
5470         
5471         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5472         (_dbus_listen_tcp_socket): fix fd leak
5473
5474         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5475         EINTR to a bit lower in the code
5476
5477 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5478
5479         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5480         TRUE if we are inquiring about the existence of the built-in
5481         org.freedesktop.DBus service.
5482
5483 2004-08-25  John Palmieri  <johnp@redhat.com>
5484         * bus/config-parser.c:
5485         (struct PolicyType): Add POLICY_CONSOLE
5486         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5487         (start_busconfig_child): Sets up console element when
5488         <policy at_console=""> is encountered in a policy file
5489         (append_rule_from_element): Convert console elements to console
5490         rules.
5491
5492         * bus/policy.c: 
5493         (bus_policy_create_client_policy): Add console rules to the client
5494         policy based on if the client is at the console
5495         (bus_policy_append_console_rule): New function for adding a
5496         console rule to a policy
5497         (bus_policy_merge): Handle console rule merging
5498
5499         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5500         where we check for console user files
5501         
5502         * dbus/dbus-sysdeps.c:
5503         (_dbus_file_exists): New function which checks if the given
5504         file exists
5505         (_dbus_user_at_console): New function which does the system
5506         specific process of checking if the user is at the console
5507
5508         * dbus/dbus-userdb.c:
5509         (_dbus_is_console_user): New function converts a UID to user name
5510         and then calls the system specific _dbus_user_at_console to 
5511         see if the user is at the console and therefor a console user
5512
5513 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5514
5515         * bus/config-parser.c (set_limit):
5516         * bus/dbus-daemon-1.1.in:
5517         * test/data/valid-config-files/many-rules.conf: set the
5518         max_match_rules_per_connection limt from the config file. 
5519
5520         * doc/busconfig.dtd: update the DTD.
5521
5522         * bus/driver.c: remove some unused variables.
5523
5524 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5525
5526         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5527         it's been replaced by dbus_g_bus_get
5528
5529 2004-08-23  Colin Walters  <walters@redhat.com>
5530
5531         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5532
5533         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5534
5535         * bus/selinux.c: Create a thread for policy reload notification.
5536         (bus_selinux_get_policy_root): Implement.
5537
5538         * bus/config-parser.c (start_busconfig_child)
5539         (bus_config_parser_content): Support SELinux-root relative
5540         inclusion.
5541
5542         * configure.in <HAVE_SELINUX>: Add -lpthread.
5543         
5544         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5545         (test_post_hook): Move memory checking into here.
5546         (test_pre_hook, test_post_hook): Move SELinux checks in
5547         here, but conditional on a DBUS_TEST_SELINUX environment
5548         variable.  Unfortunately we can't run the SELinux checks
5549         as a normal user, since they won't have any permissions
5550         for /selinux.  So this will have to be tested manually
5551         for now, until we have virtualization for most of
5552         libselinux.
5553         
5554 2004-08-23  Havoc Pennington  <hp@redhat.com>
5555
5556         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5557         drop supplementary groups, suggested by Steve Grubb
5558
5559 2004-08-20  Colin Walters  <walters@redhat.com>
5560
5561         * bus/config-parser.c (start_busconfig_child): Remove some unused
5562         variables.
5563         
5564         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5565         warning.
5566
5567 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5568
5569         * configure.in: If --enable-mono is passed in, if we can't find
5570         mono error out.
5571
5572         * mono/Makefile.am: Use /gacutil to install assemblies into the
5573         GAC and not /root.
5574
5575 2004-08-12  Havoc Pennington  <hp@redhat.com>
5576
5577         * NEWS: update for 0.22
5578
5579         * configure.in: release 0.22
5580
5581 2004-08-11  Colin Walters  <walters@redhat.com>
5582
5583         * tools/dbus-send.c (main, usage): Add --reply-timeout
5584         argument.
5585
5586 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5587
5588         * bus/bus.c (process_config_first_time_only): get rid of an unused
5589         DBusError that was causing a memoy leak (bug #989).
5590
5591         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5592         fix compilation on Solaris/Forte C (bug #974)
5593
5594         * bus/main.c (main): plug two minuscule memleaks.
5595
5596 2004-08-10  Havoc Pennington  <hp@redhat.com>
5597
5598         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5599
5600 2004-08-09  Havoc Pennington  <hp@redhat.com>
5601
5602         * COPYING: switch to Academic Free License version 2.1 instead of
5603         2.0, to resolve complaints about patent termination clause.
5604
5605 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5606
5607         * README: added documentation for the --enable-python 
5608         configure switch.
5609
5610 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5611
5612         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5613         _unref in the SELinux support.
5614
5615         * doc/busconfig.dtd: update DTD for SELinux support.
5616
5617         * bus/config-loader-libxml.c: fix error handler and parser
5618         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5619
5620         * configure.in: remove the warning about libxml2.
5621
5622         * dbus/dbus-bus.c: silence doxygen warning.
5623
5624 2004-07-31  Colin Walters  <walters@redhat.com>
5625
5626         * configure.in: Move #error in SELinux check to its own line.
5627
5628 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5629
5630         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5631         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5632         dbus_error_set.
5633
5634         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5635         broken by the change in the _SET_OOM macros.
5636
5637 2004-07-31  Colin Walters  <walters@redhat.com>
5638
5639         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5640         BUS_SET_OOM.
5641
5642 2004-07-31  Colin Walters  <walters@redhat.com>
5643
5644         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5645         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5646         AC_MSG_CHECKING.
5647
5648 2004-07-24  Havoc Pennington  <hp@redhat.com>
5649
5650         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5651
5652         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5653         functionality
5654
5655         * configure.in: add --enable-selinux
5656         
5657         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5658
5659         * bus/main.c (main): initialize and shut down selinux
5660
5661         * bus/connection.c: store SELinux ID on each connection, to avoid 
5662         repeated getting of the string context and converting it into 
5663         an ID
5664
5665         * bus/bus.c (bus_context_get_policy): new accessor, though it
5666         isn't used
5667         (bus_context_check_security_policy): check whether the security
5668         context of sender connection can send to the security context of
5669         recipient connection
5670
5671         * bus/config-parser.c: add parsing for <selinux> and <associate>
5672         
5673         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5674         implement dbus_connection_get_unix_fd()
5675
5676         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5677         function, used by the selinux stuff
5678         
5679 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5680
5681         * bus/config-loader-libxml.c: complete the implementation of
5682         libxml backend for config file loader. Doesn't work with full OOM
5683         test yet. 
5684         
5685         * configure.in: change error when selecting libxml into a warning.
5686         
5687         * test/data/invalid-config-files: add two non-well-formed XML
5688         files. 
5689         
5690         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5691         
5692         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5693         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5694         be necessary to read all the buffer. (bug #894)
5695
5696         * bus/activation.c (bus_activation_activate_service): fix a
5697         potential assertion failure (bug #896). Small optimization in the
5698         case of auto-activation messages.
5699
5700         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5701         add test case for byte-through-vararg bug (#901). patch by Kimmo
5702         Hämäläinen. 
5703
5704 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5705
5706         * python/dbus.py:
5707         * python/dbus_bindings.pyx.in:
5708         Add dbus.init_gthreads (), allow emit_signal to pass
5709         arguments to the signal.
5710         
5711 2004-07-24  Havoc Pennington  <hp@redhat.com>
5712
5713         * AUTHORS: add some people, not really comprehensively, let me
5714         know if I missed you
5715
5716 2004-07-24  Havoc Pennington  <hp@redhat.com>
5717
5718         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5719         Owen
5720
5721         * test/Makefile.am (DIST_SUBDIRS): here also
5722
5723 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5724
5725         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5726         breaking build on Solaris, reported by Farhad Saberi on the ML.
5727
5728         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5729         va_arg invocation to account for integer promotion in the case of
5730         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5731
5732         * bus/services.c (bus_service_remove_owner): fix bug #902, use
5733         _dbus_list_get_first_link, not _dbus_list_get_first.
5734
5735         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5736
5737         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5738         handler functions so that the asserts in _dbus_object_subtree_unref
5739         do not fail.
5740
5741         * dbus/dbus-transport-unix.c (do_reading):
5742         _dbus_transport_queue_messages return value is of type
5743         dbus_bool_t, not DBusDispatchStatus.
5744         
5745 2004-07-19  David Zeuthen  <david@fubar.dk>
5746
5747         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5748
5749         * bus/dispatch.c:
5750         (check_get_connection_unix_user): Debug says GetProperty; but the
5751         method is called GetConnectionUnixUser
5752         (check_get_connection_unix_process_id): New function
5753         (bus_dispatch_test): Actually call check_get_connection_unix_user();
5754         also call check_get_connection_unix_process_id()
5755         
5756         * bus/driver.c:
5757         (bus_driver_handle_get_connection_unix_process_id): New function,
5758         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5759         interface
5760         
5761         * dbus/dbus-auth.c:
5762         (handle_server_data_external_mech): Set pid from the credentials
5763         obtained from the socket
5764         
5765         * dbus/dbus-connection.c:
5766         (dbus_connection_get_unix_process_id): New function
5767         
5768         * dbus/dbus-connection.h: 
5769         Add prototype for dbus_connection_get_unix_process_id
5770         
5771         * dbus/dbus-transport.c:
5772         (_dbus_transport_get_unix_process_id): New function
5773         
5774         * dbus/dbus-transport.h:
5775         Add prototype for _dbus_transport_get_unix_process_id
5776         
5777 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5778
5779         * dbus/dbus-message.c: Message counter fix, patch by Christian
5780         Hammond <chipx86@gnupdate.org>
5781
5782 2004-07-18  Seth Nickell  <seth@gnome.org>
5783
5784         * python/dbus.py:
5785         * python/dbus_bindings.pyx.in:
5786         * python/tests/test-client.py:
5787
5788         Add dbus.ByteArray and dbus_bindings.ByteArray
5789         types so that byte streams can be passed back.
5790
5791         Give jdahlin the heaps of credit that are so
5792         rightfully his.
5793         
5794 2004-07-12  Seth Nickell  <seth@gnome.org>
5795
5796         * python/dbus.py:
5797
5798         Add message argument to the default object_method_handler
5799         function.
5800         
5801         * python/dbus_bindings.pyx.in:
5802
5803         Automatically return NIL when passed an empty list
5804         (we can't pass back a list since lists are typed
5805         and we don't have any idea what type the the client
5806         intended the list to be... :-( )
5807         
5808 2004-07-10  Seth Nickell  <seth@gnome.org>
5809
5810         * python/examples/Makefile.am:
5811
5812         Fix distcheck breakage caused by new examples.
5813
5814 2004-07-10  Seth Nickell  <seth@gnome.org>
5815
5816         * python/dbus.py:
5817
5818         Add "message" argument to service-side dbus.Object
5819         methods. This will break existing services written
5820         using the python bindings, but will allow extraction
5821         of all the message information (e.g. who its from).
5822
5823         Add improved "object oriented" signal handling/emission.
5824         
5825         * python/examples/example-service.py:
5826
5827         Nix this example.
5828         
5829         * python/examples/example-signal-emitter.py:
5830         * python/examples/example-signal-recipient.py:
5831
5832         Two new examples that show how to emit and receive
5833         signals using the new APIs.
5834         
5835         * python/examples/example-signals.py:
5836         * python/examples/gconf-proxy-service.py:
5837         * python/examples/gconf-proxy-service2.py:
5838
5839         Add "message" argument to service methods.
5840
5841 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
5842
5843         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5844         * dbus/bus.c (dbus_bus_get_unix_user)
5845         * doc/dbus-specification.xml: implement GetConnectionUnixUser
5846         method of org.freedesktop.DBus interface.
5847
5848         * bus/dispatch.c: test case
5849
5850 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
5851
5852         * python/Makefile.am: switched include directory from glib/ to dbus/
5853         since dbus-glib.h moved
5854  
5855 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5856
5857         * configure.in: prevent building the gcj stuff and libxml loader
5858         since they are broken.
5859
5860 2004-06-20  Havoc Pennington  <hp@redhat.com>
5861
5862         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
5863         codes from the dbus error names
5864         
5865         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
5866         as dbus/dbus-glib.h and that breakage is now visible due to 
5867         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5868         
5869         * glib/dbus-glib.h: s/gproxy/g_proxy/
5870
5871         * dbus/dbus-shared.h: new header to hold stuff shared with
5872         binding APIs
5873         
5874         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5875         than dbus-errors.h
5876
5877         * glib/dbus-glib.h (dbus_set_g_error): move to
5878         dbus-glib-lowlevel.h
5879
5880         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5881         of stuff to enable this
5882
5883         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5884
5885         * a bunch of other changes with the same basic "separate glib 
5886         bindings from dbus.h" theme
5887         
5888 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
5889
5890         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5891
5892         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5893
5894 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5895
5896         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5897         the reply value of the ServiceExists message.
5898
5899 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
5900
5901         * python/dbus_bindings.pyx.in: No longer need to parse path
5902         elements and pass them as arrays of strings.  The C API now
5903         accepts plain path strings.
5904         (_build_parsed_path): removed 
5905
5906 2004-06-07  Havoc Pennington  <hp@redhat.com>
5907
5908         * doc/TODO: remove auto-activation item since it's done; sort
5909         items by importance/milestone
5910
5911 2004-06-07  Havoc Pennington  <hp@redhat.com>
5912
5913         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5914         random signature when using REQUIRED_FIELDS (this hack won't work
5915         in the long term)
5916
5917         * dbus/dbus-message.c: change the signature to be a header field,
5918         instead of message->signature special-case string. Incremental
5919         step forward. Then we can fix up code to send the signature in the
5920         message, then fix up code to validate said signature, then fix up
5921         code to not put the typecodes inline, etc.
5922         (load_one_message): don't make up the signature after the fact
5923         (decode_header_data): require signature field for the known
5924         message types
5925
5926         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5927
5928         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5929
5930 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
5931
5932         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5933
5934         * mono/Handler.cs: Updated to follow new path argument for
5935         (un-)registering objects.
5936
5937         * mono/example/Makefile.am:
5938         * mono/Makefile.am:
5939         * configure.in: Bumped required version for mono and use new -pkg
5940         syntax for deps
5941
5942 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5943
5944         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5945         registration functions take the path argument as char* instead of
5946         char**.
5947
5948         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5949         split off the path decompostion part of
5950         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5951         warnings. 
5952
5953         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5954         
5955 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5956  
5957         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5958         machine approach.  A state is implemented as a function that
5959         handles incoming events as specified for that state.
5960         
5961         * doc/dbus-specification.xml: Update auth protocol state machine
5962         specification to match implementation.  Remove some leftover
5963         base64 examples.
5964
5965 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5966
5967         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5968         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5969         quiet doxygen.
5970
5971         * Doxyfile.in: remove deprecated options.
5972
5973         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5974         glib/test-thread.h, glib/test-thread-client.c,
5975         glib/test-thread-server.c, glib/test-profile.c,
5976         glib/test-dbus-glib.c: remove these unused files.
5977
5978 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5979
5980         * dbus/dbus-object-tree.c
5981         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5982         non-fallback handlers (bug #684).
5983         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5984         (find_subtree_recurse): report wether the returned subtree is an
5985         exact match or a "fallback" match higher up in the tree.
5986         (object_tree_test_iteration): update test case.
5987
5988 2004-06-01  Seth Nickell  <seth@gnome.org>
5989
5990         * python/dbus_bindings.pyx.in:
5991         * python/tests/test-client.py:
5992
5993         Round off basic type support. Add dicts (yay!), and 
5994         remaining array types.
5995
5996         Make MessageIter more general so it works for dicts too.
5997
5998         Mark all loop variables as C integers.
5999         
6000 2004-05-31  Havoc Pennington  <hp@redhat.com>
6001
6002         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6003         "in" before "out"
6004
6005         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6006
6007         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6008         option that runs the tests, and start filling in some code
6009         including for starters just dumping the interfaces to stdout
6010
6011         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6012
6013         * test/data/valid-introspection-files/lots-of-types.xml: test of
6014         an example introspection file
6015
6016         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6017         "node" (I think...)
6018
6019 2004-05-31  Seth Nickell  <seth@gnome.org>
6020
6021         * python/dbus_bindings.pyx.in:
6022         * python/tests/test-client.py:
6023
6024         Test Suite: 1
6025         Python Bindings: 0
6026
6027         Fix string array memory trashing bug... oops...
6028
6029 2004-05-30  Seth Nickell  <seth@gnome.org>
6030
6031         * python/dbus.py:
6032
6033         Add a nicer-but-less-flexible alternate API for handling 
6034         calls to virtual objects in dbus.ObjectTree.
6035
6036         Screw up the argument order to the dbus.Object constructor
6037         for consistency with dbus.ObjectTree (and to make dbus_methods
6038         optional for future extension)
6039         
6040         * python/examples/Makefile.am:
6041         * python/examples/gconf-proxy-service.py:
6042         * python/examples/gconf-proxy-service2.py:
6043
6044         Alternate implementation of gconf-proxy-service using the
6045         nicer dbus.ObjectTree API.
6046         
6047         * python/examples/example-service.py:
6048         * python/tests/test-server.py
6049
6050         Reverse the argument order to deal with dbus.Object constructor
6051         changes.
6052         
6053 2004-05-30  Seth Nickell  <seth@gnome.org>
6054
6055         * python/examples/example-client.py:
6056         * python/examples/example-service.py:
6057
6058         Take it back. Lists seem to work but they're broken
6059         in the test suite. Make the base examples use
6060         lists (works fine).
6061
6062 2004-05-30  Seth Nickell  <seth@gnome.org>
6063
6064         * python/dbus_bindings.pyx.in:
6065         * python/tests/test-client.py:
6066
6067         Add some more tests and fix errors that crop up.
6068         Unfortunately, currently it seems like marshalling
6069         and unmarshalling of lists is completely broken :-(
6070
6071 2004-05-30  Seth Nickell  <seth@gnome.org>
6072
6073         * python/dbus_bindings.pyx.in:
6074
6075         Add support for ObjectPath type.
6076
6077         * python/dbus.py:
6078
6079         Refactor message handling code to a common function.
6080         
6081         * python/tests/test-client.py:
6082         * python/tests/test-server.py:
6083
6084         Add tests that check to make sure values of all types
6085         can be echoed from a service w/o mangling.
6086         
6087 2004-05-29  Seth Nickell  <seth@gnome.org>
6088
6089         * python/dbus.py:
6090
6091         Add ObjectTree class which allows implementation
6092         of trees of "virtual" objects. Basically the python
6093         wrapper for "register_fallback".
6094         
6095         * python/examples/Makefile.am
6096         * python/examples/gconf-proxy-client.py:
6097         * python/examples/gconf-proxy-service.py:
6098
6099         Implement a simple GConf proxy service that supports
6100         get/set on string and int GConf keys using the ObjectTree.
6101         
6102 2004-05-29  Seth Nickell  <seth@gnome.org>
6103
6104         * python/dbus.py:
6105         * python/examples/example-client.py:
6106         * python/examples/example-service.py:
6107         * python/examples/list-system-services.py:
6108
6109         Add SessionBus, SystemBus and ActivationBus classes
6110         so you don't need to know the special little BUS_TYPE
6111         flag.
6112         
6113 2004-05-29  Havoc Pennington  <hp@redhat.com>
6114
6115         * bus/config-parser.c (process_test_valid_subdir): temporarily
6116         stop testing config parser OOM handling, since expat has issues
6117         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6118
6119         * bus/dbus-daemon-1.1.in: change requested_reply to
6120         send_requested_reply/receive_requested_reply so we can send the
6121         replies, not just receive them.
6122
6123         * bus/config-parser.c: parse the new
6124         send_requested_reply/receive_requested_reply
6125
6126         * bus/policy.c (bus_client_policy_check_can_send): add
6127         requested_reply argument and use it
6128
6129         * bus/bus.c (bus_context_check_security_policy): pass through
6130         requested_reply status to message send check
6131
6132         * bus/system.conf.in: adapt to requested_reply change
6133         
6134 2004-05-28  Havoc Pennington  <hp@redhat.com>
6135
6136         * test/glib/test-service-glib.c (main): remove unused variable
6137
6138         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6139
6140         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6141         from the enum, no longer in use.
6142
6143         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6144         works right.
6145
6146         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6147         whether error_name passed in is a valid error name.
6148
6149 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6150
6151         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6152         OBJECT_PATH and OBJECT_PATH_ARRAY
6153
6154 2004-05-28  Seth Nickell  <seth@gnome.org>
6155
6156         * python/examples/Makefile.am:
6157
6158         Forget to add Makefile.am. Do not pass go.
6159
6160 2004-05-28  Michael Meeks  <michael@ximian.com>
6161
6162         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6163         fix no int64 case.
6164
6165         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6166
6167         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6168         (_dbus_message_iter_get_basic_type_array): impl.
6169         drastically simplify ~all relevant _get methods to use these.
6170         (_dbus_message_iter_append_basic_array),
6171         (dbus_message_iter_append_basic): impl
6172         drastically simplify ~all relevant _append methods to use these.
6173
6174         * dbus/dbus-message-builder.c (parse_basic_type) 
6175         (parse_basic_array, lookup_basic_type): impl.
6176         (_dbus_message_data_load): prune scads of duplicate /
6177         cut & paste coding.
6178
6179         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6180         (_dbus_demarshal_basic_type): implement,
6181         (demarshal_and_validate_len/arg): beef up debug.
6182         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6183
6184 2004-05-27  Seth Nickell  <seth@gnome.org>
6185
6186         * configure.in:
6187         * python/Makefile.am:
6188
6189         Include the example python apps in the tarball.
6190         
6191         * python/examples/list-system-services.py
6192
6193         Add a python new example that fetches the list of services
6194         from the system bus.
6195         
6196 2004-05-27  Seth Nickell  <seth@gnome.org>
6197
6198         * python/dbus.py:
6199         * python/dbus_bindings.pyx.in:
6200
6201         Fix failure to notify that a signal was not handled,
6202         resulted in hung functions.
6203         
6204 2004-05-25  Colin Walters  <walters@redhat.com>
6205
6206         * tools/dbus-monitor.c (main): Monitor all types of messages.
6207
6208 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6209
6210         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6211         which unregisters the object path and disposes the handler.
6212
6213 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6214  
6215         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6216          
6217         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6218         operands to && so we call dbus_message_iter_next () for the last
6219         argument also.
6220
6221 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6222
6223         * dbus/dbus-object-tree.c
6224         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6225         children even if the requested path isn't registered.
6226         (object_tree_test_iteration): test object_tree_list_registered.
6227
6228         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6229         it to 0.
6230         
6231 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6232
6233         * doc/TODO: Remove resolved items.
6234
6235         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6236         field.
6237         
6238         * bus/connection.c (bus_connections_expect_reply): Enforce the
6239         per-connection limit on pending replies.
6240         
6241         Patch from Jon Trowbridge <trow@ximian.com>:
6242  
6243         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6244         up a watch that triggers a config reload when one end of the pipe
6245         becomes readable.
6246         (signal_handler): Instead of doing the config reload in our SIGHUP
6247         handler, just write to the reload pipe and let the associated
6248         watch handle the reload when control returns to the main loop.
6249  
6250         * bus/driver.c (bus_driver_handle_reload_config): Added.
6251         Implements a ReloadConfig method for requesting a configuration
6252         file reload via the bus driver.
6253  
6254 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6255
6256         * HACKING: Updated release instructions concerning the wiki page.
6257
6258 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6259
6260         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6261         filter against auth->allowed_mechs; we only add allowed mechs in
6262         record_mechanisms().
6263  
6264         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6265         ALLOWED_MECHS to auth-script format so we can set the list of
6266         allowed mechanisms.
6267  
6268         * data/auth/client-out-of-mechanisms.auth-script: New test to
6269         check client disconnects when it is out of mechanisms to try.
6270  
6271         * dbus/dbus-auth.c (process_command): Remove check for lines
6272         longer that 1 MB; we only buffer up maximum 16 kB.
6273  
6274         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6275         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6276         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6277         assume there might be unused bytes.
6278  
6279         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6280         client-out-of-mechs, it is handled in process_reject(). Move check
6281         for max failures to send_rejected(), as it's a server-only thing.
6282
6283         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6284         send_auth(), send_data(), send_rejected(), send_error(),
6285         send_ok(), send_begin() and send_cancel().
6286
6287 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6288
6289         Remove base64 encoding, replace with hex encoding. Original patch
6290         from trow@ximian.com, added error handling.
6291
6292         * dbus/dbus-string.c (_dbus_string_base64_encode)
6293         (_dbus_string_base64_decode): Remove.
6294         (_dbus_string_hex_decode): Add end_return argument so we can
6295         distinguish between OOM and invalid hex encoding.
6296         (_dbus_string_test): Remove base64 tests and add test case for
6297         invalid hex.
6298
6299         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6300         Replace base64 with hex.
6301
6302         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6303         for invalid hex encoded data in auth protocol.
6304
6305 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6306
6307         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6308         leak.
6309
6310 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6311
6312         * mono/dbus-sharp.dll.config.in: Added for GAC
6313         * mono/dbus-sharp.snk: Added for GAC
6314         * mono/Assembly.cs.in: Added for GAC
6315         * mono/Makefile.am: Changes for GAC installation        
6316         * configure.in: Added refs for dbus-sharp.dll.config.in and
6317         Assembly.cs.in. More fixes for mono testing
6318         * mono/example/Makefile.am: Changed var to CSC
6319         * Makefile.am: Changed flag name to DBUS_USE_CSC
6320
6321 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6322
6323         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6324         * mono/doc/*: Added documentation framework
6325         * configure.in: Added monodoc check
6326         * README: Added description of mono configure flags
6327
6328 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6329
6330         * doc/dbus-specification.xml: Added a "Required" column to the 
6331         header fields table and changed the "zero or more" verbage in
6332         the above paragraph to read "The header must contain the required 
6333         named header fields and zero or more of the optional named header 
6334         fields".
6335         * test/data/invalid-messages/*.message: Added the required PATH 
6336         named header field to the tests so that they don't fail on 
6337         'Missing path field'
6338
6339 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6340
6341         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6342         the stack by implicitly defining variable and parameter types and
6343         removing the hack of defining C pointers as python objects and later
6344         casting them.
6345
6346 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6347
6348         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6349
6350 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6351
6352         * mono/DBusType/Dict.cs: Handle empty dicts
6353         * mono/DBusType/Array.cs: Handle empty arrays
6354         * mono/Arguments.cs: Handle empty arguments
6355
6356 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6357
6358         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6359         field
6360
6361 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6362
6363         * test/data/valid-messages/standard-*.message: Update message
6364         test scripts to new header field names.
6365
6366 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6367
6368         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6369         overflow to times_we_did_each_thing array which would chop off the
6370         first character of the failure_dir string. Increased the size of
6371         the array to 7 to reflect the number of random mutation functions
6372         we have.
6373
6374 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6375
6376         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6377         unix_server->watch here, it is unreffed in disconnect.
6378         (_dbus_server_new_for_tcp_socket): convert NULL host to
6379         "localhost" here so we don't append NULL to address.
6380         
6381         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6382         various addresses, including tcp with no explicit host.
6383
6384 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6385
6386         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6387         fix incorrect setting of .name_offset in the HeaderField (it was
6388         off by two bytes, positioned right after the name and typecode)
6389
6390         * bus/bus.c (bus_context_new, bus_context_unref): test before
6391         calling dbus_server_free_data_slot and _dbus_user_database_unref
6392         in case of an error.
6393
6394         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6395         by libdbus-gtool.
6396
6397 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6398
6399         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6400         _dbus_poll() instead of select().
6401
6402 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6403
6404         * bus/main.c (signal_handler): Reload the configuration files
6405         on SIGHUP.
6406         (main): Set up our SIGHUP handler.
6407
6408         * bus/bus.c (struct BusContext): Store the config file, user and
6409         fork flag in the BusContext.
6410         (process_config_first_time_only): Added.  Contains the code
6411         (previously in bus_context_new) for setting up the BusContext from
6412         the BusConfigParser that should only be run the first time the
6413         config files are read.
6414         (process_config_every_time): Added.  Contains the code (previously
6415         in bus_context_new) for setting up the BusContext from the
6416         BusConfigParser that should be run every time the config files are
6417         read.
6418         (load_config): Added.  Builds a BusConfigParser from the config
6419         files and passes the resulting structure off to
6420         process_config_first_time_only (assuming this is the first time)
6421         and process_config_every_time.
6422         (bus_context_new): All of the config-related code has been moved
6423         to process_config_first_time_only and process_config_every_time.
6424         Now this function just does the non-config-related initializations
6425         and calls load_config.
6426         (bus_context_reload_config): Added.
6427
6428 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6429
6430         * bus/driver.c (bus_driver_handle_get_service_owner):
6431         implement a GetServiceOwner method.
6432         * doc/dbus-specification.xml: document it.
6433         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6434         
6435         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6436         implement, using the bus GetServiceOwner method.
6437
6438         * test/glib/test-dbus-glib.c:
6439         use dbus_gproxy_new_for_service_owner so that we can receive the
6440         signal. 
6441
6442 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6443
6444         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6445         dbus/dbus-message.c, dbus/dbus-protocol.h
6446         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6447
6448         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6449         dbus/dbus-message.c, dbus/dbus-protocol.h
6450         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6451
6452         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6453         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6454         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6455
6456         * doc/dbus-specification.xml (Header Fields Table):
6457         s/SERVICE/DESTINATION
6458         s/SENDER_SERVICE/SENDER
6459
6460
6461 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6462
6463         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6464         a few seconds.
6465
6466 2004-04-13  Michael Meeks  <michael@ximian.com>
6467
6468         * glib/dbus-gobject.c (handle_introspect): split out
6469         (introspect_properties): this.
6470         (handle_introspect): implement this.
6471
6472         * test/glib/Makefile.am: use the absolute path so the bus
6473         daemon's chdir ("/") doesn't kill us dead.
6474
6475         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6476
6477 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6478
6479         * bus/config-parser.c (struct BusConfigParser): Added
6480         included_files field.
6481         (seen_include): Added.  Checks whether or not a file has already
6482         been included by any parent BusConfigParser.
6483         (bus_config_parser_new): Copy the parent's included_files.
6484         (include_file): Track which files have been included, and fail on
6485         circular inclusions.
6486         (process_test_valid_subdir): Changed printf to report if we are
6487         testing valid or invalid conf files.
6488         (all_are_equiv): Changed printf to be a bit clearer about
6489         what we are actually doing.
6490         (bus_config_parser_test): Test invalid configuration files.
6491
6492 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6493
6494         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6495         argument.  If non-null, the newly-constructed BusConfigParser will
6496         be initialized with the parent's BusLimits instead of the default
6497         values.
6498         (include_file): When including a config file, pass in
6499         the current parser as the parent and then copy the BusLimits
6500         from the included BusConfigParser pack to the current parser.
6501         (process_test_valid_subdir): Renamed from process_test_subdir.
6502         (process_test_equiv_subdir): Added.  Walks through a directory,
6503         descending into each subdirectory and loading the config files
6504         it finds there.  If any subdirectory contains two config files
6505         that don't produce identical BusConfigParser structs, fail.
6506         For now, the BusConfigParser's BusPolicies are not compared.
6507         (bus_config_parser_test): Call both process_test_valid_subdir and
6508         process_test_equiv_subdir.
6509
6510         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6511         argument and pass it along to the call to bus_config_parser_new.
6512         Also made a few small changes to allow this code to compile.
6513
6514         * bus/config-loader-expat.c (bus_config_load): Take a parent
6515         argument and pass it along to the call to bus_config_parser_new.
6516
6517         * bus/bus.c (bus_context_new): Load the config file
6518         with a NULL parent argument.
6519
6520 2004-03-29  Michael Meeks  <michael@ximian.com>
6521
6522         * glib/dbus-gobject.c (introspect_properties): split
6523         out, fix mangled 'while' flow control.
6524         (introspect_signals): implement.
6525         (handle_introspect): update.
6526
6527 2004-03-29  Michael Meeks  <michael@ximian.com>
6528
6529         * glib/dbus-gobject.c (set_object_property): split out / 
6530         re-work, use the property type, and not the message type(!)
6531         (get_object_property): ditto.
6532
6533         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6534         (dbus_gvalue_marshal): make this code re-usable, needed
6535         for signals too, also on both proxy and server side.
6536         Re-write for more efficiency / readability.
6537
6538 2004-03-29  Michael Meeks  <michael@ximian.com>
6539
6540         * dbus/dbus-message.c
6541         (dbus_message_new_error_printf): impl.
6542
6543         * dbus/dbus-connection.c
6544         (dbus_connection_unregister_object_path): fix warning.
6545
6546         * configure.in: fix no-mono-installed situation.
6547
6548 2004-03-27  Havoc Pennington  <hp@redhat.com>
6549
6550         Patch from Timo Teräs:
6551         
6552         * tools/dbus-send.c (main): if --print-reply, assume type is
6553         method call; support boolean type args
6554         
6555         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6556         bunch of memleak and logic bugs
6557         
6558 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6559
6560         * mono/Arguments.cs:
6561         * mono/Introspector.cs:
6562         * mono/Handler.cs:
6563         * mono/InterfaceProxy.cs:
6564         * mono/Message.cs
6565         * mono/ProxyBuilder.cs:
6566         * mono/Service.cs:
6567         Added InterfaceProxy class to avoid building proxies for every
6568         object.
6569
6570         * dbus-message.h:
6571         * dbus-message.c (dbus_message_append_args_valist)
6572         (dbus_message_iter_get_object_path)
6573         (dbus_message_iter_get_object_path_array)
6574         (dbus_message_iter_append_object_path)
6575         (dbus_message_iter_append_object_path_array):
6576         Added object_path iter functions to handle OBJECT_PATH arguments
6577         
6578 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6579
6580         First checkin of mono bindings.
6581         * configure.in:
6582         * Makefile.am:
6583         Build stuff for the bindings
6584         * dbus-sharp.pc.in: Added for pkgconfig
6585         
6586 2004-03-21  Havoc Pennington  <hp@redhat.com>
6587
6588         * test/test-service.c (main): remove debug spew
6589
6590 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6591
6592         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6593         arrays
6594
6595         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6596         (dbus_message_iter_init_array_iterator)
6597         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6598         indicate whether the iterator is empty
6599
6600         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6601         warnings
6602
6603 2004-03-19  Havoc Pennington  <hp@redhat.com>
6604
6605         * NEWS: 0.21 updates
6606
6607         * configure.in: 0.21
6608
6609         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6610         
6611         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6612         you don't need pyrex to make dist
6613
6614         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6615         sources; run moc
6616         
6617 2004-03-18  Richard Hult  <richard@imendio.com>
6618
6619         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6620         (dbus_message_set_auto_activation): Add doxygen docs.
6621
6622 2004-03-16  Richard Hult  <richard@imendio.com>
6623
6624         * bus/activation.c: (bus_activation_service_created),
6625         (bus_activation_send_pending_auto_activation_messages),
6626         (bus_activation_activate_service):
6627         * bus/activation.h:
6628         * bus/dispatch.c: (bus_dispatch),
6629         (check_nonexistent_service_auto_activation),
6630         (check_service_auto_activated),
6631         (check_segfault_service_auto_activation),
6632         (check_existent_service_auto_activation), (bus_dispatch_test):
6633         * bus/driver.c: (bus_driver_handle_activate_service):
6634         * bus/services.c: (bus_registry_acquire_service):
6635         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6636         (dbus_message_get_auto_activation):
6637         * dbus/dbus-message.h:
6638         * dbus/dbus-protocol.h: Implement auto-activation.
6639         
6640         * doc/dbus-specification.xml: Add auto-activation to the spec.
6641
6642 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6643
6644         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6645         fix a bug with CUSTOM types.
6646
6647         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6648         a unit test for this bug (used to fail).
6649
6650 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6651
6652         * bus/activation.c:
6653         (babysitter_watch_callback): notify all pending activations waiting for
6654           the same exec that the activation failed.
6655         (bus_activation_activate_service): shortcut the activation if we 
6656           already waiting for the same executable to start up.
6657
6658 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6659
6660         * bus/activation.c: 
6661         - Added service file reloading. 
6662           Each service files directory is kept in an hash table in 
6663           BusActivation and each BusActivationEntry knows what .service-file it
6664           was read from. So when you try to activate a service the bus will 
6665           check if it's been updated, removed or if new .service-files has 
6666           been installed.
6667         - Test code at the bottom for the service file reloading.
6668         * bus/test-main.c: (main):
6669         * bus/test.h:
6670         - added service reloading test.
6671         * dbus/dbus-sysdeps.c: 
6672         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6673
6674 2004-03-08  Michael Meeks  <michael@ximian.com>
6675
6676         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6677         bail immediately if disconnected, to avoid busy loop.
6678
6679         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6680         cleanup cut/paste/inefficiency.
6681
6682 2004-03-01  David Zeuthen  <david@fubar.dk>
6683
6684         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6685         bug where args were used twice. This bug resulted in a segfault
6686         on a Debian/PPC system when starting the messagebus daemon. Include
6687         dbus-sysdeps.h for DBUS_VA_COPY
6688
6689         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6690
6691         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6692         appropriate va_copy implementation. From GLib
6693         
6694 2004-02-24  Joe Shaw  <joe@ximian.com>
6695
6696         * bus/services.c (bus_registry_acquire_service): We need to pass
6697         in the service name to dbus_set_error() to prevent a crash.
6698
6699 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6700
6701         * AUTHORS: Reveal my True identity.
6702
6703 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6704
6705         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6706         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6707
6708 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6709
6710         * doc/TODO: Added not about better error check of configuration files.
6711
6712 2003-12-02  Richard Hult  <richard@imendio.com>
6713
6714         * Update AFL version to 2.0 throughout the source files to reflect
6715         the update that was done a while ago.
6716
6717 2003-12-02  Richard Hult  <richard@imendio.com>
6718
6719         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6720         wrote_dict_key to FALSE on the iter that the dict is appended to,
6721         just like when appending other types. Fixes a bug where a dict
6722         couldn't be put inside a dict.
6723         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6724         (message_iter_test, _dbus_message_test): Add test case for dict
6725         inside dict.
6726
6727 2003-12-01  David Zeuthen  <david@fubar.dk>
6728
6729         * python/dbus.py: Add the actual message when calling the reciever
6730         of a signal such that parameters can be inspected. Add the method
6731         remove_signal_receiver
6732         
6733 2003-11-26  Mikael Hallendal  <micke@imendio.com>
6734
6735         * bus/*.[ch]:
6736         * dbus/*.[ch]:
6737         * glib/*.[ch]: Made ref functions return the pointer
6738
6739 2003-11-25  Zack Rusin  <zack@kde.org>
6740
6741         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6742
6743         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
6744         wrappers,
6745
6746         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
6747         the Integrator and to better fit with the server,
6748
6749 2003-11-24  Zack Rusin  <zack@kde.org>
6750
6751         * qt/connection.h, qt/connection.cpp: removing initDbus method since
6752         the integrator handles it now
6753
6754         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6755         since QTimer wasn't really meant to be used the way DBusTimeout is
6756
6757 2003-11-24  Zack Rusin  <zack@kde.org>
6758
6759         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
6760         Integrator class which integrates D-BUS with the Qt event loop,
6761
6762         * qt/connection.h, qt/connection.cpp: Move all the code which
6763         was dealing with D-BUS integration to the Integrator class,
6764         and start using Integrator,
6765
6766 2003-11-23  Zack Rusin  <zack@kde.org>
6767
6768         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
6769         wrapper
6770
6771         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6772         switching namespaces to DBusQt, reworking the class,
6773
6774         * Makefile.cvs: switching dependencies so that it matches KDE 
6775         schematics,
6776         
6777         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
6778         the library
6779
6780 2003-11-19  Havoc Pennington  <hp@redhat.com>
6781
6782         * NEWS: update
6783
6784         * configure.in: bump version to 0.20
6785
6786         * configure.in (have_qt): add yet another place to look for qt
6787         (someone hand trolltech a .pc file...)
6788
6789 2003-11-01  Havoc Pennington  <hp@redhat.com>
6790
6791         * doc/dbus-specification.xml: add state machine docs on the auth
6792         protocol; just a first draft, I'm sure it's wrong.      
6793
6794 2003-10-28  David Zeuthen  <david@fubar.dk>
6795
6796         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6797         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6798         
6799 2003-10-28  Havoc Pennington  <hp@redhat.com>
6800
6801         * dbus/dbus-message.c (get_next_field): delete unused function
6802
6803 2003-10-28  Havoc Pennington  <hp@redhat.com>
6804
6805         * bus/expirelist.c (do_expiration_with_current_time): detect
6806         failure of the expire_func due to OOM
6807
6808         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6809
6810         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6811         NoReply error that's now created by the bus when the service exits
6812
6813 2003-10-28  Havoc Pennington  <hp@redhat.com>
6814
6815         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6816         tests for set_path, set_interface, set_member, etc.
6817
6818         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6819
6820         * dbus/dbus-message.c (set_string_field): always just delete and
6821         re-append the field; accept NULL for deletion
6822         (re_align_fields_recurse): reimplement
6823         
6824 2003-10-26  Havoc Pennington  <hp@redhat.com>
6825
6826         * dbus/dbus-connection.c: fix docs to properly describe the
6827         disconnected message
6828         (_dbus_connection_notify_disconnected): remove this function; 
6829         we can't synchronously add the disconnected message, we have to 
6830         do it after we've queued any remaining real messages
6831         (_dbus_connection_get_dispatch_status_unlocked): queue the
6832         disconnect message only if the transport has finished queueing all
6833         its real messages and is disconnected.
6834         (dbus_connection_disconnect): update the dispatch status here
6835
6836 2003-10-22  Havoc Pennington  <hp@redhat.com>
6837
6838         * bus/bus.c (bus_context_check_security_policy): fix up assertion
6839
6840         * bus/connection.c (bus_transaction_send_from_driver): set the
6841         destination to the connection's base service
6842
6843 2003-10-20  Havoc Pennington  <hp@redhat.com>
6844
6845         hmm, make check is currently not passing.
6846         
6847         * doc/dbus-specification.xml: add requirement that custom type
6848         names follow the same rules as interface names.
6849
6850         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6851         duplication and allow 'c' to be 'custom'; dict is now 'm' for
6852         'map'
6853
6854         * doc/dbus-specification.xml: update type codes to match
6855         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6856         CUSTOM. Add type OBJECT_PATH to the spec.
6857
6858 2003-10-17  Havoc Pennington  <hp@redhat.com>
6859
6860         * bus/driver.c (create_unique_client_name): use "." as separator
6861         in base service names instead of '-'
6862
6863         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6864         byte at the end of the string
6865
6866         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6867         optimization macros since string validation seems to be a slow
6868         point.
6869         
6870         * doc/dbus-specification.xml: restrict valid
6871         service/interface/member/error names. Add test suite code for the
6872         name validation.
6873
6874         * dbus/dbus-string.c: limit service/interface/member/error names 
6875         to [0-9][A-Z][a-z]_
6876
6877         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6878         format arg to verbose spew
6879
6880         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6881         memory, return instead of g_error
6882
6883         * test/test-service.c (path_message_func): support emitting a
6884         signal on request
6885
6886         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6887         activation bus type if DBUS_BUS_ACTIVATION was set; default to
6888         assuming the activation bus was the session bus so that services
6889         started manually will still register.
6890         (init_connections_unlocked): fix so that in OOM situation we get
6891         the same semantics when retrying the function
6892         
6893         * test/test-service.c (main): change to use path registration, to
6894         test those codepaths; register with DBUS_BUS_ACTIVATION rather
6895         than DBUS_BUS_SESSION
6896
6897 2003-10-16  Havoc Pennington  <hp@redhat.com>
6898
6899         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6900
6901         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6902         coverage of the tests
6903         (coverage-report.txt): don't move the .da and .bbg files around
6904
6905 2003-10-16  Havoc Pennington  <hp@redhat.com>
6906
6907         * bus/bus.c (struct BusContext): remove struct field I didn't mean
6908         to put there
6909
6910 2003-10-16  Havoc Pennington  <hp@redhat.com>
6911
6912         * bus/connection.c (bus_pending_reply_expired): either cancel or
6913         execute, not both
6914         (bus_connections_check_reply): use unlink, not remove_link, as we
6915         don't want to free the link; fixes double free mess
6916
6917         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6918         where no reply was received
6919
6920         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6921         fix a refcount leak
6922
6923         * bus/signals.c (match_rule_matches): add special cases for the
6924         bus driver, so you can match on sender/destination for it.
6925
6926         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6927         DBUS_PRINT_BACKTRACE is set
6928
6929         * dbus/dbus-internals.c: add pid to assertion failure messages
6930
6931         * dbus/dbus-connection.c: add message type code to the debug spew
6932
6933         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6934         sender=foo not service=foo
6935
6936         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6937         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
6938         DBUS_ACTIVATION_ADDRESS instead
6939
6940         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6941         DBUS_SYSTEM_BUS_ADDRESS if appropriate
6942
6943         * bus/bus.c (bus_context_new): handle OOM copying bus type into
6944         context struct
6945
6946         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6947         (dbus_message_iter_get_object_path_array): new function (half
6948         finished, disabled for the moment)
6949         
6950         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6951         DBUS_MESSAGE_TYPE_ERROR
6952
6953         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6954         avoid redirecting stderr to /dev/null
6955         (babysit): close stdin if not doing the "exit_with_session" thing
6956
6957         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6958         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6959         stdout/stdin, so things don't get confused
6960         
6961         * bus/system.conf.in: fix to allow replies, I modified .conf
6962         instead of .conf.in again.
6963
6964 2003-10-14  David Zeuthen  <david@fubar.dk>
6965
6966         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6967         argtype to arg_type when raising unknown arg type exception.
6968         Changed type list to reflect the changes in dbus-protocol.h so 
6969         the bindings actually work.
6970
6971 2003-10-14  Havoc Pennington  <hp@redhat.com>
6972
6973         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6974         to have a bug keeping it from outputting the .da files sometimes
6975         (string_get_string): don't append garbage nul bytes to the string.
6976
6977 2003-10-15  Seth Nickell  <seth@gnome.org>
6978
6979         * python/Makefile.am:
6980
6981         Include dbus_h_wrapper.h in the dist tarball.
6982
6983 2003-10-14  Havoc Pennington  <hp@redhat.com>
6984
6985         * bus/bus.c (bus_context_check_security_policy): revamp this to
6986         work more sanely with new policy-based requested reply setup
6987
6988         * bus/connection.c (bus_transaction_send_from_driver): set bus
6989         driver messages as no reply
6990
6991         * bus/policy.c (bus_client_policy_check_can_receive): handle a
6992         requested_reply attribute on allow/deny rules
6993
6994         * bus/system.conf: add <allow requested_reply="true"/>
6995
6996         * bus/driver.c (bus_driver_handle_message): fix check for replies
6997         sent to the bus driver, which was backward. How did this ever work
6998         at all though? I think I'm missing something.
6999
7000         * dbus/dbus-message.c (decode_header_data): require error and
7001         method return messages to have a reply serial field to be valid
7002         (_dbus_message_loader_queue_messages): break up this function;
7003         validate that reply serial and plain serial are nonzero; 
7004         clean up the OOM/error handling.
7005         (get_uint_field): don't return -1 from this
7006         (dbus_message_create_header): fix signed/unsigned bug
7007
7008         * bus/connection.c (bus_connections_expect_reply): save serial of
7009         the incoming message, not reply serial
7010
7011 2003-10-14  Havoc Pennington  <hp@redhat.com>
7012
7013         * bus/connection.c: implement pending reply tracking using
7014         BusExpireList
7015
7016         * bus/bus.c (bus_context_check_security_policy): verify that a
7017         reply is pending in order to allow a reply to be sent. Deny 
7018         messages of unknown type.
7019
7020         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7021
7022         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7023         (bus_context_get_reply_timeout): new
7024
7025 2003-10-13  Seth Nickell  <seth@gnome.org>
7026
7027         * python/Makefile.am:
7028
7029         Pass "make distcheck": remove a couple files from DIST_FILES
7030         that weren't included in the final version.
7031
7032 2003-10-12  Havoc Pennington  <hp@pobox.com>
7033
7034         Added test code that 1) starts an actual bus daemon and 2) uses
7035         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7036         more testing possible, but this is the basic framework.
7037         
7038         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7039         empty proxy lists from the proxy list hash
7040
7041         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7042         couple of return_if_fail checks
7043
7044         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7045         to allocate, so everything is cleared to NULL as it should be.
7046
7047         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7048         source as data to dbus_connection_set_timeout_functions() as the 
7049         timeout functions expected
7050
7051         * test/glib/run-test.sh: add a little script to start up a message
7052         bus and run tests using it
7053
7054         * tools/dbus-launch.1: updates
7055
7056         * tools/dbus-launch.c (main): add --config-file option
7057
7058         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7059         that could never be reached.
7060
7061         * dbus/dbus-message.c (dbus_message_new_method_return) 
7062         (dbus_message_new_error, dbus_message_new_signal): set the
7063         no-reply-expected flag on all these. Redundant, but may
7064         as well be consistent.
7065
7066 2003-10-11  Havoc Pennington  <hp@pobox.com>
7067
7068         * test/decode-gcov.c (function_solve_graph): make broken block
7069         graph a nonfatal error since it seems to be broken. Need to debug
7070         this.
7071
7072         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7073         can't just check type > INVALID < LAST anymore
7074
7075         * dbus/dbus-message.c (dbus_message_get_signature): new function
7076         (dbus_message_has_signature): new function
7077         (struct DBusMessage): add signature field (right now it isn't sent
7078         over the wire, just generated on the fly)
7079         (dbus_message_copy): copy the signature, and init strings to
7080         proper length to avoid some reallocs
7081         (dbus_message_iter_init_array_iterator): return void, since it
7082         can't fail
7083         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7084         (_dbus_message_loader_queue_messages): add silly temporary hack to
7085         fill in message->signature on load
7086
7087         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7088         characters, so they are relatively human-readable.
7089
7090 2003-10-11  Havoc Pennington  <hp@pobox.com>
7091
7092         * dbus/dbus-message.c (_dbus_message_test): add more test
7093         coverage, but #if 0 for now since they uncover a bug 
7094         not fixed yet; I think in re_align_field_recurse()
7095         (re_align_field_recurse): add FIXME about broken assertion
7096
7097         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7098
7099         * bus/connection.c: share a couple code bits with expirelist.c
7100
7101         * bus/expirelist.h, bus/expirelist.c: implement a generic
7102         expire-items-after-N-seconds facility, was going to share between
7103         expiring connections and replies, decided not to use for expiring
7104         connections for now.
7105
7106         * COPYING: include AFL 2.0 (still need to change all the file headers)
7107
7108 2003-10-09  Havoc Pennington  <hp@redhat.com>
7109
7110         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7111         gcc 3.3. Not that we do anything about it yet.
7112
7113         * bus/signals.c (bus_match_rule_parse): impose max length on the
7114         match rule text
7115
7116         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7117
7118 2003-10-09  Havoc Pennington  <hp@redhat.com>
7119
7120         Make matching rules theoretically work (add parser).
7121         
7122         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7123         the case where destination is explicitly specified as bus driver
7124         and someone else is eavesdropping.
7125         
7126         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7127         definition of eavesdropping and assertion
7128
7129         * tools/dbus-send.c (main): use dbus_message_type_from_string
7130
7131         * bus/signals.c (bus_match_rule_parse): implement
7132
7133         * dbus/dbus-message.c (dbus_message_type_from_string): new
7134
7135         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7136
7137 2003-10-02  Havoc Pennington  <hp@pobox.com>
7138
7139         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7140         dbus_gproxy_oneway_call
7141
7142         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7143         (dbus_server_setup_with_g_main): fix to allow calling them more
7144         than once on the same args
7145         (dbus_bus_get_with_g_main): new function
7146
7147 2003-10-02  Havoc Pennington  <hp@redhat.com>
7148
7149         * doc/dbus-tutorial.xml: write some stuff
7150
7151 2003-09-29  Havoc Pennington  <hp@pobox.com>
7152
7153         * configure.in: split checks for Doxygen from XML docs, check for
7154         xmlto
7155
7156         * doc/Makefile.am: XML-ify all the docs, and add a blank
7157         dbus-tutorial.xml
7158
7159 2003-09-29  Havoc Pennington  <hp@pobox.com>
7160
7161         * Merge dbus-object-names branch. To see the entire patch 
7162         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7163         it's huuuuge though.
7164         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7165         
7166 2003-09-28  Havoc Pennington  <hp@pobox.com>
7167
7168         * HACKING: update to reflect new server
7169
7170 2003-09-26  Seth Nickell  <seth@gnome.org>
7171
7172         * python/dbus.py:
7173         * python/examples/example-signals.py:
7174
7175         Start implementing some notions of signals. The API
7176         is really terrible, but they sort of work (with the
7177         exception of being able to filter by service, and to
7178         transmit signals *as* a particular service). Need to
7179         figure out how to make messages come from the service
7180         we registered :-(
7181         
7182         * python/dbus_bindings.pyx.in:
7183
7184         Removed duplicate message_handler callbacks.
7185         
7186 2003-09-25  Havoc Pennington  <hp@redhat.com>
7187
7188         * bus/session.conf.in: fix my mess
7189
7190 2003-09-25  Havoc Pennington  <hp@pobox.com>
7191
7192         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7193
7194 2003-09-25  Seth Nickell  <seth@gnome.org>
7195
7196         * python/examples/example-service.py:
7197
7198         Johan notices complete wrong code in example-service, but
7199         completely wrong in a way that works exactly the same (!).
7200         Johan is confused, how could this possibly work? Example
7201         code fails to serve purpose of making things clear.
7202         Seth fixes.
7203
7204 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7205
7206         * doc/dbus-specification.sgml: don't require header fields
7207         to be 4-byte aligned and specify that fields should be
7208         distinguished from padding by the fact that zero is not
7209         a valid field name.
7210         
7211         * doc/TODO: remove re-alignment item and add item to doc
7212         the OBJECT_PATH type.
7213         
7214         * dbus/dbus-message.c:
7215         (HeaderField): rename the original member to value_offset
7216         and introduce a name_offset member to keep track of where
7217         the field actually begins.
7218         (adjust_field_offsets): remove.
7219         (append_int_field), (append_uint_field),
7220         (append_string_field): don't align the start of the header
7221         field to a 4-byte boundary.
7222         (get_next_field): impl finding the next marhsalled field
7223         after a given field.
7224         (re_align_field_recurse): impl re-aligning a number of
7225         already marshalled fields.
7226         (delete_field): impl deleting a field of any type and
7227         re-aligning any following fields.
7228         (delete_int_or_uint_field), (delete_string_field): remove.
7229         (set_int_field), (set_uint_field): no need to re-check
7230         that we have the correct type for the field.
7231         (set_string_field): ditto and impl re-aligning any
7232         following fields.
7233         (decode_header_data): update to take into account that
7234         the fields aren't 4-byte aligned any more and the new
7235         way to distinguish padding from header fields. Also,
7236         don't exit when there is too much header padding.
7237         (process_test_subdir): print the directory.
7238         (_dbus_message_test): add test to make sure a following
7239         field is re-aligned correctly after field deletion.
7240         
7241         * dbus/dbus-string.[ch]:
7242         (_dbus_string_insert_bytes): rename from insert_byte and
7243         allow the insert of multiple bytes.
7244         (_dbus_string_test): test inserting multiple bytes.
7245
7246         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7247         warning note to docs about having to re-align any
7248         marshalled values following the string.
7249         
7250         * dbus/dbus-message-builder.c:
7251         (append_string_field), (_dbus_message_data_load):
7252         don't align the header field.
7253         
7254         * dbus/dbus-auth.c: (process_test_subdir): print the
7255         directory.
7256         
7257         * test/break-loader.c: (randomly_add_one_byte): upd. for
7258         insert_byte change.
7259         
7260         * test/data/invalid-messages/bad-header-field-alignment.message:
7261         new test case.
7262         
7263         * test/data/valid-messages/unknown-header-field.message: shove
7264         a dict in the unknown field.
7265
7266 2003-09-25  Seth Nickell  <seth@gnome.org>
7267
7268         * python/dbus.py:
7269         * python/dbus_bindings.pyx.in:
7270
7271         Handle return values.
7272         
7273         * python/examples/example-client.py:
7274         * python/examples/example-service.py:
7275
7276         Pass back return values from the service to the client.
7277         
7278 2003-09-24  Seth Nickell  <seth@gnome.org>
7279
7280         * python/dbus.py:
7281
7282         Connect Object methods (when you are sharing an object) up... pass
7283         in a list of methods to be shared. Sharing all the methods just
7284         worked out too weird. You can now create nice Services over the
7285         DBus in Python. :-)
7286         
7287         * python/dbus_bindings.pyx.in:
7288
7289         Keep references to user_data tuples passed into C functions so 
7290         Python doesn't garbage collect on us.
7291
7292         Implement MethodReturn and Error subclasses of Message for creating
7293         DBusMessage's of those types.
7294         
7295         * python/examples/example-client.py:
7296         * python/examples/example-service.py:
7297
7298         Simple example code showing both how create DBus services and objects,
7299         and how to use them.
7300
7301 2003-09-23  Havoc Pennington  <hp@pobox.com>
7302
7303         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7304
7305 2003-09-23  Havoc Pennington  <hp@redhat.com>
7306
7307         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7308         (dbus_gproxy_disconnect_signal): implement
7309         (dbus_gproxy_manager_remove_signal_match): implement
7310         (dbus_gproxy_manager_add_signal_match): implement
7311         (dbus_gproxy_oneway_call): implement
7312
7313 2003-09-23  Havoc Pennington  <hp@pobox.com>
7314
7315         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7316         subclass. This means dropping the transparent thread safety of the
7317         proxy; you now need a separate proxy per-thread, or your own
7318         locking on the proxy. Probably right anyway.
7319         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7320
7321 2003-09-22  Havoc Pennington  <hp@redhat.com>
7322
7323         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7324
7325 2003-09-21  Seth Nickell  <seth@gnome.org>
7326
7327         First checkin of the Python bindings.
7328         
7329         * python/.cvsignore:
7330         * python/Makefile.am:
7331         * python/dbus_bindings.pyx.in:
7332         * python/dbus_h_wrapper.h:
7333
7334         Pieces for Pyrex to operate on, building a dbus_bindings.so
7335         python module for low-level access to the DBus APIs.
7336         
7337         * python/dbus.py:
7338
7339         High-level Python module for accessing DBus objects.
7340
7341         * configure.in:
7342         * Makefile.am:
7343
7344         Build stuff for the python bindings.
7345
7346         * acinclude.m4:
7347
7348         Extra macro needed for finding the Python C header files.
7349
7350 2003-09-21  Havoc Pennington  <hp@pobox.com>
7351
7352         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7353         implementing the proxy manager, didn't get very far.
7354
7355         * dbus/dbus-bus.c (dbus_bus_add_match): new
7356         (dbus_bus_remove_match): new
7357
7358         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7359         path_name argument; adjust the other not-yet-implemented 
7360         gproxy constructors to be what I think they should be.
7361
7362 2003-09-21  Havoc Pennington  <hp@pobox.com>
7363
7364         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7365         by default for message bus connections.
7366
7367         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7368         exit_on_disconnect flag is set and we process the disconnected
7369         signal.
7370         (dbus_connection_set_exit_on_disconnect): new function
7371
7372 2003-09-21  Havoc Pennington  <hp@pobox.com>
7373
7374         Get matching rules mostly working in the bus; only actually
7375         parsing the rule text remains. However, the client side of
7376         "signal connections" hasn't been started, this patch is only the
7377         bus side.
7378         
7379         * dbus/dispatch.c: fix for the matching rules changes
7380         
7381         * bus/driver.c (bus_driver_handle_remove_match)
7382         (bus_driver_handle_add_match): send an ack reply from these
7383         method calls
7384
7385         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7386         arguments, reported by Seth Nickell
7387
7388         * bus/config-parser.c (append_rule_from_element): support
7389         eavesdrop=true|false attribute on policies so match rules 
7390         can be prevented from snooping on the system bus.
7391
7392         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7393         and "destination" in attribute names; fix some docs bugs; 
7394         add eavesdrop=true|false attribute
7395
7396         * bus/driver.c (bus_driver_handle_add_match)
7397         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7398         messages
7399
7400         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7401         rid of broadcast service concept, signals are just always broadcast
7402
7403         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7404         mostly implement matching rules stuff (currently only exposed as signal
7405         connections)
7406
7407 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7408
7409         * doc/dbus-specification.sgml: Change the header field name
7410         to be an enum and update the rest of the spec to reference
7411         the fields using the conventinal name.
7412
7413         * dbus/dbus-protocol.h: update to reflect the spec.
7414
7415         * doc/TODO: add item to remove the 4 byte alignment requirement.
7416         
7417         * dbus/dbus-message.c: Remove the code to generalise the
7418         header/body length and serial number header fields as named
7419         header fields so we can reference field names using the 
7420         protocol values.
7421         (append_int_field), (append_uint_field), (append_string_field):
7422         Append the field name as a byte rather than four chars.
7423         (delete_int_or_uint_field), (delete_string_field): reflect the
7424         fact that the field name and typecode now occupy 4 bytes instead
7425         of 8.
7426         (decode_string_field), (decode_header_data): update to reflect
7427         protocol changes and move the field specific encoding from
7428         decode_string_field() back into decode_header_data().
7429         
7430         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7431         Add utility to aid debugging.
7432         
7433         * dbus/dbus-message-builder.c:
7434         (append_string_field), (_dbus_message_data_load): Update to
7435         reflect protocol changes; Change the FIELD_NAME directive
7436         to HEADER_FIELD and allow it to take the field's conventional
7437         name rather than the actual value.
7438         
7439         * test/data/*/*.message: Update to use HEADER_FIELD instead
7440         of FIELD_NAME; Always align the header on an 8 byte boundary
7441         *before* updating the header length.
7442
7443 2003-09-15  Havoc Pennington  <hp@pobox.com>
7444
7445         * dbus/dbus-pending-call.c: add the get/set object data
7446         boilerplate as for DBusConnection, etc. Use generic object data
7447         for the notify callback.
7448
7449         * glib/dbus-gparser.c (parse_node): parse child nodes
7450
7451         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7452         
7453         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7454         contain functions shared between the convenience lib and the
7455         installed lib
7456
7457         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7458         -export-symbols-regex to the GLib library
7459
7460         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7461         fix the locking in here, and add a default handler for
7462         Introspect() that just returns sub-nodes.
7463
7464 2003-09-14  Havoc Pennington  <hp@pobox.com>
7465
7466         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7467         rather than gfoo consistent
7468
7469         * glib/dbus-gproxy.h: delete for now, move contents to
7470         dbus-glib.h, because the include files don't work right since we
7471         aren't in the dbus/ subdir.
7472         
7473         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7474         (dbus_gproxy_end_call): finish
7475         (dbus_gproxy_begin_call): finish
7476
7477         * glib/dbus-gmain.c (dbus_set_g_error): new
7478
7479         * glib/dbus-gobject.c (handle_introspect): include information
7480         about child nodes in the introspection
7481
7482         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7483         function to help in implementation of introspection
7484
7485         * dbus/dbus-object-tree.c
7486         (_dbus_object_tree_list_registered_and_unlock): new function
7487
7488 2003-09-12  Havoc Pennington  <hp@pobox.com>
7489
7490         * glib/dbus-gidl.h: add common base class for all the foo_info
7491         types
7492
7493         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7494         similar to kdcop
7495
7496         * test/Makefile.am: try test srcdir -ef . in addition to test
7497         srcdir = ., one of them should work (yeah lame)
7498         
7499         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7500         library
7501         
7502         * glib/dbus-gparser.h: make description_load routines return
7503         NodeInfo* not Parser*
7504
7505         * Makefile.am (SUBDIRS): build test dir after all library dirs
7506
7507         * configure.in: add GTK+ detection
7508
7509 2003-09-07  Havoc Pennington  <hp@pobox.com>
7510
7511         * Make Doxygen contented.
7512
7513 2003-09-07  Havoc Pennington  <hp@pobox.com>
7514
7515         * doc/dbus-specification.sgml: more updates
7516
7517 2003-09-06  Havoc Pennington  <hp@pobox.com>
7518
7519         * doc/dbus-specification.sgml: partial updates
7520
7521         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7522         zillionth time; hopefully I edited the right file this time.
7523
7524         * bus/config-parser.c (append_rule_from_element): support
7525         send_type, send_path, receive_type, receive_path
7526
7527         * bus/policy.c: add message type and path to the list of things
7528         that can be "firewalled"
7529
7530 2003-09-06  Havoc Pennington  <hp@pobox.com>
7531
7532         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7533         (dbus_connection_register_object_path): make this not handle
7534         messages to paths below the given path
7535
7536 2003-09-03  Havoc Pennington  <hp@pobox.com>
7537
7538         * test/glib/Makefile.am: add this with random glib-linked test
7539         programs
7540
7541         * glib/Makefile.am: remove the random test programs from here,
7542         leave only the unit tests
7543
7544         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7545         uscore/javacaps conversion, and fix     
7546         (get_object_property, set_object_property): change to .NET
7547         convention for mapping props to methods, set_FooBar/get_FooBar, 
7548         since one language has such a convention we may as well copy it. 
7549         Plus real methods in either getFooBar or get_foo_bar style won't 
7550         collide with this convention.
7551
7552 2003-09-01  Havoc Pennington  <hp@pobox.com>
7553
7554         * glib/dbus-gparser.c: implement
7555
7556         * glib/dbus-gobject.c: start implementing skeletons support
7557
7558         * configure.in: when disabling checks/assert, also define
7559         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7560
7561 2003-09-01  Havoc Pennington  <hp@pobox.com>
7562
7563         * glib/Makefile.am: rearrange a bunch of files and get "make
7564         check" framework set up
7565
7566 2003-08-31  Havoc Pennington  <hp@pobox.com>
7567
7568         * fix build with --disable-tests
7569
7570 2003-08-30  Havoc Pennington  <hp@pobox.com>
7571
7572         * dbus/dbus-connection.c: purge DBusMessageHandler
7573
7574         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7575         use callbacks everywhere
7576
7577 2003-08-30  Havoc Pennington  <hp@pobox.com>
7578
7579         * test/data/valid-config-files/system.d/test.conf: change to 
7580         root for the user so warnings don't get printed
7581
7582         * dbus/dbus-message.c: add dbus_message_get_path,
7583         dbus_message_set_path
7584         
7585         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7586         dispatching to a path
7587
7588         * dbus/dbus-string.c (_dbus_string_validate_path): add
7589
7590         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7591         (_dbus_marshal_object_path): implement
7592
7593         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7594         to contain the path to the target object
7595         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7596         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7597
7598 2003-08-30  Havoc Pennington  <hp@pobox.com>
7599
7600         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7601
7602 2003-08-29  Havoc Pennington  <hp@pobox.com>
7603
7604         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7605         registered
7606         (struct DBusObjectSubtree): shrink this
7607         a lot, since we may have a lot of them
7608         (_dbus_object_tree_free_all_unlocked): implement
7609         (_dbus_object_tree_dispatch_and_unlock): implement
7610
7611 2003-08-29  Havoc Pennington  <hp@pobox.com>
7612
7613         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7614
7615 2003-08-28  Havoc Pennington  <hp@pobox.com>
7616
7617         purge DBusObjectID
7618         
7619         * dbus/dbus-connection.c: port to no ObjectID, create a
7620         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7621
7622         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7623         everything except UnregisterFunction and MessageFunction
7624         
7625         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7626         add DBUS_TYPE_OBJECT_PATH
7627         
7628         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7629         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7630         path-based object IDs
7631
7632 2003-08-25  Havoc Pennington  <hp@pobox.com>
7633
7634         Just noticed that dbus_message_test is hosed, I wonder when I
7635         broke that. I thought make check was passing earlier...
7636         
7637         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7638         container tree, will replace most of dbus-object-registry
7639
7640         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7641         screwup
7642
7643 2003-08-19  Havoc Pennington  <hp@pobox.com>
7644
7645         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7646         (dbus_message_is_error): fix this function
7647
7648         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7649         match
7650
7651         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7652         reflect clarified man page
7653         (bus_client_policy_check_can_send): ditto
7654         
7655         * bus/session.conf.in: fixup
7656
7657         * bus/system.conf.in: fixup
7658
7659 2003-08-18  Havoc Pennington  <hp@redhat.com>
7660
7661         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7662
7663         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7664         dumb bug created earlier (wrong order of args to
7665         decode_header_data())
7666         
7667         * tools/dbus-send.c: port
7668
7669         * tools/dbus-print-message.c (print_message): port
7670
7671         * test/data/*messages: port all messages over
7672         
7673         * dbus/dbus-message-builder.c: support including 
7674         message type
7675         
7676         * bus/driver.c: port over
7677         
7678         * bus/dispatch.c: port over to new stuff
7679
7680         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7681         rename disconnect signal to "Disconnected"
7682
7683 2003-08-17  Havoc Pennington  <hp@pobox.com>
7684
7685         This doesn't compile yet, but syncing up so I can hack on it from
7686         work. What are branches for if not broken code? ;-)
7687         
7688         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7689         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7690         DBUS_HEADER_FIELD_ERROR_NAME
7691         
7692         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7693         for the interface+member pairs
7694         (string_hash): change to use g_str_hash algorithm
7695         (find_direct_function, find_string_function): refactor these to
7696         share most code.
7697         
7698         * dbus/dbus-message.c: port all of this over to support 
7699         interface/member fields instead of name field
7700
7701         * dbus/dbus-object-registry.c: port over
7702         
7703         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7704         from _dbus_string_validate_name
7705
7706         * bus/dbus-daemon-1.1: change file format for the 
7707         <deny>/<allow> stuff to match new message naming scheme
7708
7709         * bus/policy.c: port over
7710
7711         * bus/config-parser.c: parse new format
7712         
7713 2003-08-16  Havoc Pennington  <hp@pobox.com>
7714
7715         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7716         broken assertion
7717
7718         * glib/dbus-gproxy.c: some hacking
7719
7720 2003-08-15  Havoc Pennington  <hp@redhat.com>
7721
7722         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7723
7724         * dbus/dbus-connection.c
7725         (dbus_connection_send_with_reply_and_block): factor out internals;
7726         change to convert any error replies to DBusError instead of 
7727         returning them as a message
7728
7729 2003-08-15  Havoc Pennington  <hp@pobox.com>
7730
7731         * dbus/dbus-connection.c, 
7732         dbus/dbus-pending-call.c: Finish the pending call stuff
7733
7734 2003-08-14  Havoc Pennington  <hp@redhat.com>
7735
7736         * dbus/dbus-pending-call.c: start on new object that will replace
7737         DBusMessageHandler and ReplyHandlerData for tracking outstanding
7738         replies
7739
7740         * dbus/dbus-gproxy.c: start on proxy object used to communicate
7741         with remote interfaces
7742
7743         * dbus/dbus-gidl.c: do the boring boilerplate in here
7744         
7745 2003-08-12  Havoc Pennington  <hp@pobox.com>
7746
7747         * bus/dispatch.c (bus_dispatch): make this return proper 
7748         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7749
7750         * dbus/dbus-errors.c (dbus_set_error): use
7751         _dbus_string_append_printf_valist
7752
7753         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7754         (_dbus_string_append_printf): new
7755
7756         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7757         UNKNOWN_METHOD
7758
7759         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7760         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7761         message is unhandled.
7762
7763 2003-08-11  Havoc Pennington  <hp@pobox.com>
7764
7765         * bus/test.c (client_disconnect_handler): change to return
7766         HANDLED (would have been REMOVE_MESSAGE)
7767
7768         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7769         HANDLED/NOT_YET_HANDLED instead of
7770         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
7771         should be used.
7772
7773 2003-08-10  Havoc Pennington  <hp@pobox.com>
7774
7775         * tools/dbus-send.c (main): add --type argument, for now
7776         supporting only method_call and signal types.
7777
7778         * tools/dbus-print-message.c: print message type
7779
7780         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7781         init connection->objects
7782
7783         * doc/dbus-specification.sgml: fix sgml
7784
7785         * bus/*.c: port over to object-instance API changes
7786
7787         * test/test-service.c: ditto
7788         
7789         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7790         name, we will have to fix up the rest of the code to also handle
7791         this
7792         (dbus_message_new): generic message-creation call
7793         (set_string_field): allow appending name field
7794
7795 2003-08-06  Havoc Pennington  <hp@pobox.com>
7796
7797         * dbus/dbus-object-registry.c: implement signal connection 
7798         and dispatch
7799
7800         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7801
7802         * dbus/dbus-internals.c (_dbus_memdup): new function
7803
7804 2003-08-02  Havoc Pennington  <hp@pobox.com>
7805
7806         * dbus/dbus-message.c (dbus_message_get_no_reply)
7807         (dbus_message_set_no_reply): add these and remove
7808         set_is_error/get_is_error
7809
7810         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
7811         remove the ERROR flag, since there's now an ERROR type
7812
7813 2003-08-01  Havoc Pennington  <hp@pobox.com>
7814
7815         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7816         implement
7817
7818         * dbus/dbus-message.c (dbus_message_get_type): new function
7819
7820         * doc/dbus-specification.sgml: add "type" byte to messages
7821
7822 2003-08-01  Havoc Pennington  <hp@pobox.com>
7823
7824         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7825         a message type enum to distinguish kinds of message
7826         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
7827         that need not be replied to
7828
7829 2003-08-01  Havoc Pennington  <hp@pobox.com>
7830
7831         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7832         (unpack_8_octets): fix no-64-bit-int bug
7833
7834         * dbus/dbus-object-registry.c (validate_id): validate the 
7835         connection ID bits, not just the instance ID.
7836
7837         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7838         the connection-global 33 bits of the object ID
7839
7840         * dbus/dbus-object-registry.c (info_from_entry): fill in 
7841         object ID in the new way
7842
7843         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
7844         define server/client/instance bits.
7845
7846 2003-07-30  Havoc Pennington  <hp@pobox.com>
7847
7848         * dbus/dbus-connection.c (dbus_connection_register_object): fix
7849         build
7850
7851 2003-07-13  Havoc Pennington  <hp@pobox.com>
7852
7853         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7854         fields to DBusObjectVTable and DBusObjectInfo
7855
7856 2003-07-12  Havoc Pennington  <hp@pobox.com>
7857
7858         * dbus/dbus-object-registry.c: implement unit test,
7859         fix bugs discovered in process
7860
7861         * dbus/dbus-connection.c: remove handler_table and
7862         register_handler(), add DBusObjectRegistry usage
7863
7864         * dbus/dbus-objectid.c (dbus_object_id_is_null)
7865         (dbus_object_id_set_null): new functions
7866
7867 2003-07-08  Havoc Pennington  <hp@pobox.com>
7868
7869         * dbus/dbus-object.c: implement some of this
7870
7871         * dbus/dbus-object-registry.c
7872         (_dbus_object_registry_add_and_unlock): fill in the object_id out
7873         param
7874         (_dbus_object_registry_new): handle OOM
7875
7876 2003-07-08  Havoc Pennington  <hp@pobox.com>
7877
7878         * dbus/dbus-object.h: sketch out an API for registering objects
7879         with a connection, that allows us to use as little as 24 bytes
7880         per object and lets application code represent an object in 
7881         any conceivable way.
7882
7883         * dbus/dbus-object-registry.c: implement the hard bits of the
7884         DBusConnection aspect of object API. Not yet wired up.
7885         
7886 2003-07-06  Havoc Pennington  <hp@pobox.com>
7887
7888         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7889         (_dbus_marshal_object_id): new
7890         (_dbus_demarshal_object_id): new
7891         (_dbus_marshal_get_arg_end_pos): support object ID type, and
7892         consolidate identical switch cases. Don't conditionalize handling
7893         of DBUS_TYPE_UINT64, need to handle the type always.
7894         (_dbus_marshal_validate_arg): consolidate identical cases, and
7895         handle DBUS_TYPE_OBJECT_ID
7896
7897         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7898
7899         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7900
7901 2003-09-28  Havoc Pennington  <hp@pobox.com>
7902
7903         * real 0.13 release
7904
7905 2003-09-28  Havoc Pennington  <hp@pobox.com>
7906
7907         * doc/Makefile.am (dbus-specification.html): testing a funky hack
7908         to work with Debian db2html
7909
7910 2003-09-28  Havoc Pennington  <hp@pobox.com>
7911
7912         * configure.in: 0.13
7913
7914         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7915         stylesheet-images for benefit of Debian
7916         
7917         Change back to using filesystem-linked sockets for the system
7918         bus, so only root can create the default system bus address.
7919         
7920         * bus/system.conf.in: change to use
7921         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7922
7923         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7924         from here.
7925
7926         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7927         here, and AC_DEFINE DBUS_SYSTEM_PATH
7928
7929 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7930
7931         * doc/TODO:
7932         * doc/busconfig.dtd:
7933         Add busconfig DTD.
7934         
7935 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7936
7937         * doc/dbus-specification.sgml:
7938         Add activation reply values.
7939         
7940 2003-08-05  Havoc Pennington  <hp@redhat.com>
7941
7942         * configure.in: 0.12
7943
7944 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
7945
7946         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7947         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7948         (add_watch), (remove_watch), (create_source):
7949         Refcount fds, fixes some reentrancy issues.
7950         
7951 2003-07-30  Havoc Pennington  <hp@redhat.com>
7952
7953         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7954         bus address to be abstract if we have abstract sockets
7955
7956         * NEWS: update
7957
7958 2003-07-28  Havoc Pennington  <hp@redhat.com>
7959
7960         * bus/messagebus.in: fix to avoid processname/servicename 
7961         confusion, from Michael Kearey
7962         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7963         
7964 2003-07-23  Havoc Pennington  <hp@pobox.com>
7965
7966         * dbus/dbus-message.c (dbus_message_iter_get_named): 
7967         fix from Andy Hanton to remove broken "+1"
7968
7969 2003-07-16  Havoc Pennington  <hp@pobox.com>
7970
7971         * tools/dbus-launch.c (babysit): close stdout/stderr in the
7972         babysitter process, as suggested by Thomas Leonard, so 
7973         an "eval `dbus-launch --exit-with-session`" will actually 
7974         return
7975
7976 2003-07-16  Havoc Pennington  <hp@pobox.com>
7977
7978         * configure.in: print out EXPANDED_* variables in the summary at
7979         the end; clean up the code that computes EXPANDED_ variables and
7980         get the ones using exec_prefix right. Should make things work
7981         when you build without --prefix
7982
7983 2003-06-29  Havoc Pennington  <hp@pobox.com>
7984
7985         * mono/Test.cs (class Test): fire up a main loop and run it
7986
7987         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
7988         done once, the app has to do it
7989
7990 2003-06-26  Havoc Pennington  <hp@pobox.com>
7991
7992         * mono/Connection.cs: set up connection with the glib main loop
7993
7994 2003-07-01  Havoc Pennington  <hp@redhat.com>
7995
7996         * doc/dbus-specification.sgml: clarify the format of a type code,
7997         change suggested by Jim Blandy
7998
7999 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8000
8001         * doc/Makefile.am:
8002         * tools/Makefile.am: Don't assume srcdir == builddir.
8003
8004         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8005         the allocated block.
8006         (_dbus_memory_test): New function.
8007         * dbus/dbus-test.h: Add _dbus_memory_test ().
8008         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8009
8010         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8011         of %c%c%c%c.
8012         (dbus_message_new): Remove obsolete @todo.
8013
8014         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8015         (_dbus_marshal_set_uint64): Fix comment.
8016
8017         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8018         hardcode FIELD_REPLY_SERIAL.
8019
8020         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8021         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8022
8023         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8024         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8025
8026 2003-06-24  Havoc Pennington  <hp@pobox.com>
8027
8028         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8029
8030 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8031
8032         * configure.in:
8033         * gcj/.cvsignore:
8034         * gcj/Hello.java:
8035         * gcj/Makefile.am:
8036         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8037         * gcj/org/.cvsignore:
8038         * gcj/org/Makefile.am:
8039         * gcj/org/freedesktop/.cvsignore:
8040         * gcj/org/freedesktop/Makefile.am:
8041         * gcj/org/freedesktop/dbus/.cvsignore:
8042         * gcj/org/freedesktop/dbus/Makefile.am:
8043         * gcj/org/freedesktop/dbus/Message.java: (Message),
8044         (Message.Message):
8045         * gcj/org/freedesktop/dbus/natMessage.cc:
8046         Fix the build system.
8047
8048 2003-06-22  Havoc Pennington  <hp@pobox.com>
8049
8050         * mono/Connection.cs: add more bindings
8051
8052         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8053         more than once.
8054
8055 2003-06-22  Havoc Pennington  <hp@pobox.com>
8056
8057         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8058         Start wrapping more stuff.
8059
8060 2003-06-22  Havoc Pennington  <hp@pobox.com>
8061
8062         * mono/Message.cs: implement Message.Wrap() that ensures we only
8063         have a single C# wrapper per DBusMessage, assuming it works which
8064         it probably doesn't.
8065
8066         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8067         (dbus_message_free_data_slot): new
8068         (dbus_message_set_data): new
8069         (dbus_message_get_data): new
8070
8071 2003-06-22  Havoc Pennington  <hp@pobox.com>
8072
8073         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8074         (_dbus_data_slot_allocator_alloc): rework these to keep a
8075         reference count on each slot and automatically manage a global
8076         slot ID variable passed in by address
8077
8078         * bus/bus.c: convert to new dataslot API
8079
8080         * dbus/dbus-bus.c: convert to new dataslot API
8081
8082         * dbus/dbus-connection.c: convert to new dataslot API
8083
8084         * dbus/dbus-server.c: convert to new dataslot API
8085
8086         * glib/dbus-gmain.c: ditto
8087
8088         * bus/test.c: ditto
8089
8090         * bus/connection.c: ditto
8091
8092 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8093
8094         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8095         after the gcj checks so that the correct configuration tags
8096         will be added to libtool.
8097
8098         * dbus-glib-1.pc.in: No need to specify any includes since
8099         dbus-1.pc.in has those.
8100
8101 2003-06-22  Havoc Pennington  <hp@pobox.com>
8102
8103         * mono/*, gcj/*, configure.in, Makefile.am:
8104         Check in makefiles and subdirs for mono and gcj bindings.
8105         Neither binding actually exists, just trying to get through
8106         all the build and other boring bits.
8107
8108 2003-06-21  Philip Blundell  <philb@gnu.org>
8109
8110         * tools/dbus-monitor.1: Updated.
8111
8112         * tools/dbus-send.1: Likewise.
8113
8114 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8115
8116         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8117         for hangup and error after checking read so we won't discard
8118         pending data if both hangup and read are set.
8119
8120 2003-06-19  Philip Blundell  <philb@gnu.org>
8121
8122         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8123
8124         * tools/dbus-send.c: Accept both --system and --session.
8125
8126         * tools/dbus-monitor.c: Same here.
8127
8128 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8129
8130         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8131         from C++ (Patch by Miloslav Trmac).
8132
8133 2003-06-15  Joe Shaw  <joe@assbarn.com>
8134
8135         * configure.in: Check for socklen_t.
8136
8137         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8138
8139         * test/test-segfault.c: Add #include <sys/time.h>
8140
8141         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8142         dbus-launch needs it.
8143
8144 2003-06-09  Havoc Pennington  <hp@redhat.com>
8145
8146         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8147         SUN_LEN, it breaks abstract socket usage
8148
8149         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8150         starts of lines.
8151
8152 2003-06-04  Havoc Pennington  <hp@pobox.com>
8153
8154         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8155         using unix:abstract=/foo, and when listening in a tmpdir
8156         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8157
8158         * dbus/dbus-transport.c (_dbus_transport_open): support
8159         unix:abstract=/foo
8160
8161         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8162         support abstract sockets
8163
8164         * dbus/dbus-transport-unix.c
8165         (_dbus_transport_new_for_domain_socket): support abstract sockets
8166
8167         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8168         toggle as an argument, implement abstract namespace support
8169         (_dbus_listen_unix_socket): ditto
8170
8171         * configure.in: add --enable-abstract-sockets and implement
8172         a configure check for autodetection of the right value.
8173
8174 2003-06-01  Havoc Pennington  <hp@pobox.com>
8175
8176         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8177         in /tmp (though on Linux this will end up being useless,
8178         when we add abstract namespace support)
8179
8180         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8181         subst'ing it
8182
8183 2003-05-28  Colin Walters  <walters@verbum.org>
8184
8185         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8186
8187 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8188
8189         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8190
8191 2003-05-17  Colin Walters  <walters@gnu.org>
8192
8193         * tools/dbus-send.c: Don't exit with an error code if --help was
8194         passed.  Default to using the session bus instead of the system
8195         one.
8196
8197         * tools/dbus-launch.c: Ditto.
8198
8199         * tools/dbus-monitor.c: Ditto.
8200
8201         * tools/dbus-send.1: Update with new arguments.
8202
8203         * tools/dbus-launch.c: Emit code to export variables.  New
8204         arguments -s and -c to specify shell syntax, and a bit of code to
8205         autodetect syntax.  Also, allow specifying a program to run.
8206
8207         * tools/dbus-launch.1: Update with new arguments.
8208
8209         * tools/dbus-send.1: Ditto.
8210
8211         * tools/dbus-monitor.1: Ditto.
8212
8213 2003-05-17  Havoc Pennington  <hp@pobox.com>
8214
8215         * bus/config-parser.c (merge_included): merge in policies from
8216         child configuration file.
8217
8218         * bus/policy.c (bus_policy_merge): function to merge two policies
8219         together
8220
8221 2003-05-16  Havoc Pennington  <hp@redhat.com>
8222
8223         * dbus/dbus-connection.c: disable verbose lock spew
8224
8225         * tools/dbus-send.c: add --print-reply command line option
8226
8227         * tools/dbus-print-message.h (print_message): new util function
8228         shared by dbus-send and dbus-monitor
8229
8230         * tools/dbus-monitor.c (handler_func): exit on disconnect
8231
8232         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8233         disconnected, don't try to use the read_watch
8234
8235         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8236         so we can find this bug more easily
8237
8238 2003-05-16  Havoc Pennington  <hp@redhat.com>
8239
8240         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8241         NULL as DBusHashTable is annoyingly likely to do.
8242
8243 2003-05-16  Colin Walters  <walters@verbum.org>
8244
8245         * tools/dbus-monitor.c: Add --session argument and usage()
8246         function.
8247
8248         * tools/dbus-monitor.1: Update with new --session arg.
8249
8250         * bus/Makefile.am (install-data-hook): Create
8251         $(libdir)/dbus-1.0/services so that the session bus is happy.
8252
8253 2003-05-15  Havoc Pennington  <hp@redhat.com>
8254
8255         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8256         on non-x86. ifdef's are evil.
8257
8258 2003-05-15  Havoc Pennington  <hp@redhat.com>
8259
8260         * configure.in: 0.11
8261
8262         * NEWS: update
8263
8264         * bus/Makefile.am (initddir): apparently we are supposed to put
8265         init scripts in /etc/rc.d/init.d not /etc/init.d
8266
8267         * bus/Makefile.am: remove the "you must --enable-tests to make
8268         check" as it broke distcheck
8269
8270         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8271
8272 2003-05-13  James Willcox  <jwillcox@gnome.org>
8273
8274         * configure.in:
8275         * bus/activation.c: (bus_activation_service_created),
8276         (bus_activation_activate_service):
8277         * bus/driver.c: (bus_driver_send_service_deleted),
8278         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8279         (bus_driver_send_service_acquired),
8280         (bus_driver_send_welcome_message),
8281         (bus_driver_handle_list_services):
8282         * bus/session.conf.in:
8283         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8284         (dbus_bus_service_exists), (dbus_bus_activate_service):
8285         * dbus/dbus-bus.h:
8286
8287         Add some convenience API which lets you activate a service, and did a
8288         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8289         and dbus_message_get_args()
8290
8291 2003-05-11  Havoc Pennington  <hp@pobox.com>
8292
8293         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8294         calling _dbus_marshal_validate_arg() for every byte in a byte
8295         array, etc.
8296
8297         * dbus/dbus-message-handler.c: use atomic reference counting to
8298         reduce number of locks slightly; the global lock in here sucks
8299
8300         * dbus/dbus-connection.c
8301         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8302         update_dispatch_status that can be called with lock held; then use
8303         in a couple places to reduce locking/unlocking
8304         (dbus_connection_send): hold the lock over the whole function
8305         instead of acquiring it twice.
8306
8307         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8308
8309         * bus/connection.c (bus_connections_setup_connection): fix access
8310         to already-freed memory.
8311
8312         * dbus/dbus-connection.c: keep a little cache of linked list
8313         nodes, to avoid using the global linked list alloc lock in the
8314         normal send-message case. Instead we just use the connection lock
8315         that we already have to take.
8316
8317         * dbus/dbus-list.c (_dbus_list_find_last): new function
8318
8319         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8320         change to use a struct for the atomic type; fix docs,
8321         they return value before increment, not after increment.
8322
8323         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8324         (_dbus_string_append_8_aligned): new functions to try to
8325         microoptimize this operation.
8326         (reallocate_for_length): break this out of set_length(), to
8327         improve profile info, and also so we can consider inlining the
8328         set_length() part.
8329
8330         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8331         strings with some preallocation, cuts down on our calls to realloc
8332         a fair bit. Though if we can get the "move entire string to empty
8333         string" optimization below to kick in here, it would be better.
8334
8335         * dbus/dbus-string.c (_dbus_string_move): just call
8336         _dbus_string_move_len
8337         (_dbus_string_move_len): add a special case for moving
8338         an entire string into an empty string; we can just
8339         swap the string data instead of doing any reallocs.
8340         (_dbus_string_init_preallocated): new function
8341
8342 2003-05-11  Havoc Pennington  <hp@pobox.com>
8343
8344         Write a "test-profile" that does echo client-server with threads;
8345         profile reveals lock contention, memcpy/realloc of buffers, and
8346         UTF-8 validation as hot spots. 20% of lock contention eliminated
8347         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8348         contention is global mempool locks for GList and DBusList.
8349
8350         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8351         x86 implementation
8352
8353         * dbus/dbus-connection.c (struct DBusConnection): use
8354         dbus_atomic_t for the reference count
8355
8356         * dbus/dbus-message.c (struct DBusMessage): declare
8357         dbus_atomic_t values as volatile
8358
8359         * configure.in: code to detect ability to use atomic integer
8360         operations in assembly, from GLib patch
8361
8362         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8363         time, tired of it being wrong in threads and forked processes
8364
8365         * glib/test-profile.c: a little program to bounce messages back
8366         and forth between threads and eat CPU
8367
8368         * dbus/dbus-connection.c: add debug spew macros for debugging
8369         thread locks; include config.h at top; fix deadlock in
8370         dbus_connection_flush()
8371
8372 2003-05-08  Havoc Pennington  <hp@pobox.com>
8373
8374         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8375         data from getting written, and there wasn't a good reason to
8376         use _exit really.
8377
8378         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8379         dbus_verbose lines in test coverage
8380         (main): add list of functions sorted by # of untested blocks
8381         to the coverage report
8382
8383         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8384
8385         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8386
8387         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8388         extend test coverage
8389
8390         * test/data/auth/cancel.auth-script: test canceling an
8391         authentication
8392
8393         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8394         aren't used. in CVS history if we end up needing them.
8395
8396 2003-05-04  Havoc Pennington  <hp@pobox.com>
8397
8398         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8399         unit test
8400
8401         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8402         function, which assumed length was in # of strings, not bytes
8403
8404         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8405         missing coverage
8406
8407         * dbus/dbus-connection.c
8408         (_dbus_connection_queue_received_message): disable function for
8409         now, we are only using it in test mode
8410
8411         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8412         remove a mistaken FIXME
8413
8414 2003-05-04  Havoc Pennington  <hp@pobox.com>
8415
8416         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8417         unlock mutex on successful return, patch from Anders Gustafsson
8418
8419 2003-05-04  Havoc Pennington  <hp@pobox.com>
8420
8421         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8422         Anders Gustafsson
8423
8424 2003-05-04  Havoc Pennington  <hp@pobox.com>
8425
8426         * tools/dbus-launch.c: implement
8427
8428         * bus/main.c (main), bus/bus.c (bus_context_new):
8429         implement --print-pid and --fork
8430
8431 2003-05-03  Havoc Pennington  <hp@redhat.com>
8432
8433         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8434         the address had no value, and add to test suite. Fix and
8435         regression test from Miloslav Trmac
8436
8437 2003-05-03  Havoc Pennington  <hp@pobox.com>
8438
8439         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8440         watch is invalid when handled
8441
8442         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8443         dbus-launch utility to launch the bus from a shell script.  Didn't
8444         actually implement dbus-launch yet, it's just a placeholder still.
8445
8446 2003-05-03  Havoc Pennington  <hp@pobox.com>
8447
8448         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8449         daemon; also documents daemon config file, so replaces
8450         doc/config-file.txt. Corrected some stuff from config-file.txt in
8451         the process of moving it.
8452
8453 2003-05-03  Havoc Pennington  <hp@pobox.com>
8454
8455         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8456         add some man pages
8457
8458 2003-05-03  Colin Walters  <walters@verbum.org>
8459
8460         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8461         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8462
8463         * Makefile.am: Update to use new .pc versioning scheme.
8464
8465 2003-05-02  Havoc Pennington  <hp@redhat.com>
8466
8467         * bus/system.conf.in: allow send/receive to/from message bus
8468         service
8469
8470 2003-04-30  Havoc Pennington  <hp@redhat.com>
8471
8472         * configure.in: print a note when building with unit tests and
8473         without assertions
8474
8475 2003-04-30  Havoc Pennington  <hp@redhat.com>
8476
8477         * Makefile.am: add a check-local that complains if you didn't
8478         configure with --enable-tests
8479
8480 2003-04-29  Havoc Pennington  <hp@redhat.com>
8481
8482         * glib/dbus-gmain.c: docs cleanups
8483
8484         * dbus/dbus-types.h: add docs on int64 types
8485
8486         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8487         public API docs section
8488
8489 2003-04-29  Havoc Pennington  <hp@redhat.com>
8490
8491         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8492         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8493         parallel install API version, not with the D-BUS package version.
8494
8495         * HACKING: move some of README over here
8496
8497         * README: updates, and document API/ABI policy
8498
8499         * configure.in: reindentation
8500
8501 2003-04-29  Havoc Pennington  <hp@redhat.com>
8502
8503         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8504         to use this library" to be sure people have the right
8505         expectations.
8506
8507 2003-04-28  Havoc Pennington  <hp@redhat.com>
8508
8509         * configure.in: add --enable-docs which by default is auto yes if
8510         doxygen and db2html found, no otherwise; but can be forced on/off
8511
8512         * doc/Makefile.am: conditionalize whether to build docs on
8513         --enable-docs
8514
8515 2003-04-28  Havoc Pennington  <hp@redhat.com>
8516
8517         * configure.in: 0.10
8518
8519         * NEWS: update
8520
8521         * bus/system.conf.in: add <includedir>system.d</includedir>
8522
8523         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8524         username was provided but not uid
8525
8526         * bus/config-parser.c (struct BusConfigParser): keep track of
8527         whether the parser is toplevel or was included; change some
8528         of the error handling if it's included.
8529
8530 2003-04-27  Havoc Pennington  <hp@pobox.com>
8531
8532         Unbreak my code...
8533
8534         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8535         report correct status if we finish processing authentication
8536         inside this function.
8537
8538         * bus/activation.c (try_send_activation_failure): use
8539         bus_transaction_send_error_reply
8540
8541         * bus/connection.c (bus_connection_get_groups): return an error
8542         explaining the problem
8543
8544         * bus/bus.c (bus_context_check_security_policy): implement
8545         restriction here that inactive connections can only send the
8546         hello message. Also, allow bus driver to send anything to
8547         any recipient.
8548
8549         * bus/connection.c (bus_connection_complete): create the
8550         BusClientPolicy here instead of on-demand.
8551         (bus_connection_get_policy): don't return an error
8552
8553         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8554         sender field in message being replied to
8555
8556         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8557         causing it to return FALSE always
8558
8559         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8560         we checked sender rather than destination
8561
8562 2003-04-25  Havoc Pennington  <hp@redhat.com>
8563
8564         test suite is slightly hosed at the moment, will fix soon
8565
8566         * bus/connection.c (bus_connections_expire_incomplete): fix to
8567         properly disable the timeout when required
8568         (bus_connection_set_name): check whether we can remove incomplete
8569         connections timeout after we complete each connection.
8570
8571         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8572         probably still broken.
8573
8574         * bus/services.c (bus_registry_acquire_service): implement max
8575         number of services owned, and honor allow/deny rules on which
8576         services a connection can own.
8577
8578         * bus/connection.c (bus_connection_get_policy): report errors here
8579
8580         * bus/activation.c: implement limit on number of pending
8581         activations
8582
8583 2003-04-25  Havoc Pennington  <hp@redhat.com>
8584
8585         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8586         where we used >= 0 instead of != DBUS_UID_UNSET.
8587
8588 2003-04-25  Havoc Pennington  <hp@redhat.com>
8589
8590         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8591         were toggled without add/remove, fix from Anders Gustafsson
8592
8593 2003-04-24  Havoc Pennington  <hp@redhat.com>
8594
8595         * test/data/valid-config-files/basic.conf: add <limit> tags to
8596         this test
8597
8598         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8599         <limit> tag in configuration file.
8600
8601 2003-04-24  Havoc Pennington  <hp@redhat.com>
8602
8603         * bus/dispatch.c: somehow missed some name_is
8604
8605         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8606         (_dbus_timeout_set_interval): new
8607
8608         * bus/connection.c (bus_connections_setup_connection): record time
8609         when each connection is first set up, and expire them after the
8610         auth timeout passes.
8611
8612 2003-04-24  Havoc Pennington  <hp@redhat.com>
8613
8614         * dbus/dbus-message.c (dbus_message_name_is): rename
8615         (dbus_message_service_is): rename
8616         (dbus_message_sender_is): rename
8617         (dbus_message_get_service): rename
8618
8619 2003-04-24  Havoc Pennington  <hp@redhat.com>
8620
8621         * configure.in: add --enable-checks
8622
8623         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8624
8625         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8626         to use thread locks.
8627         (_dbus_connection_handler_destroyed_locked): move some private
8628         functions into proper docs group
8629
8630         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8631         _dbus_return_val_if_fail
8632
8633         Throughout: use dbus_return_if_fail
8634
8635 2003-04-23  James Willcox  <jwillcox@gnome.org>
8636
8637         * glib/dbus-glib.h:
8638         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8639         (dbus_connection_setup_with_g_main),
8640         (dbus_server_setup_with_g_main):
8641         * glib/test-dbus-glib.c: (main):
8642         * glib/test-thread-client.c: (main):
8643         * glib/test-thread-server.c: (new_connection_callback), (main):
8644         * tools/dbus-monitor.c: (main):
8645
8646         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8647         and dbus_server_setup_with_g_main().
8648
8649 2003-04-20  Havoc Pennington  <hp@pobox.com>
8650
8651         * doc/dbus-specification.sgml: document the restrictions on
8652         message and service names
8653
8654 2003-04-22  Havoc Pennington  <hp@redhat.com>
8655
8656         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8657         support, and do some code cleanups to share more code and
8658         speed up array marshal/demarshal.
8659
8660         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8661
8662         * configure.in: generate dbus-arch-deps.h
8663
8664         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8665         64-bit typecodes
8666
8667 2003-04-22  Havoc Pennington  <hp@redhat.com>
8668
8669         * test/data/valid-messages/opposite-endian.message: fix test
8670         to use proper type for rply field
8671
8672         * test/data/invalid-messages: add tests for below validation
8673
8674         * dbus/dbus-message.c (decode_header_data): validate field types,
8675         and validate that named fields are valid names
8676         (decode_name_field): consider messages in the
8677         org.freedesktop.Local. namespace to be invalid.
8678
8679         * dbus/dbus-string.c (_dbus_string_validate_name): new
8680
8681 2003-04-19  Havoc Pennington  <hp@pobox.com>
8682
8683         * bus/driver.c (bus_driver_handle_hello): check limits and
8684         return an error if they are exceeded.
8685
8686         * bus/connection.c: maintain separate lists of active and inactive
8687         connections, and a count of each. Maintain count of completed
8688         connections per user. Implement code to check connection limits.
8689
8690         * dbus/dbus-list.c (_dbus_list_unlink): export
8691
8692         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8693         number of bytes in the message queue for a connection
8694
8695 2003-04-18  Havoc Pennington  <hp@pobox.com>
8696
8697         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8698
8699         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8700         memleaks
8701
8702         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8703         on realloc be sure to update the pointer in the keyring
8704
8705         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8706         offset to avoid writing to unallocated memory
8707
8708         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8709         try the next mechanism, so we properly handle OOM
8710
8711         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8712         on OOM.
8713         (_dbus_keyring_new): fix OOM bug
8714         (_dbus_keyring_new_homedir): always set error; impose a maximum
8715         number of keys we'll load from the file, mostly to speed up the
8716         test suite and make its OOM checks more useful, but also for
8717         general sanity.
8718
8719         * dbus/dbus-auth.c (process_error_server): reject authentication
8720         if we get an error from the client
8721         (process_cancel): on cancel, send REJECTED, per the spec
8722         (process_error_client): send CANCEL if we get an error from the
8723         server.
8724
8725 2003-04-18  Havoc Pennington  <hp@pobox.com>
8726
8727         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8728         debug spew
8729
8730         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8731         handling problem
8732
8733         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8734         about DBUS_TEST_HOMEDIR once
8735
8736         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8737         the environment
8738
8739         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8740         config file so we test the right thing
8741
8742         Throughout: assorted docs improvements
8743
8744 2003-04-18  Havoc Pennington  <hp@pobox.com>
8745
8746         * glib/dbus-gmain.c: adapt to watch changes
8747
8748         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8749
8750         * dbus/dbus-server.h: remove dbus_server_handle_watch
8751
8752         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8753
8754         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8755         like DBusTimeout, so we don't need dbus_connection_handle_watch
8756         etc.
8757
8758 2003-04-17  Havoc Pennington  <hp@redhat.com>
8759
8760         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8761         database usage so it all goes via the DBusUserDatabase cache.
8762
8763 2003-04-17  Havoc Pennington  <hp@redhat.com>
8764
8765         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8766         there was an OOM watch we skipped, we always return TRUE so we
8767         iterate again to have a look at it again. Fixes test suite hang.
8768         Code rearrangement also lets us lose some memset and only iterate
8769         over callbacks once.
8770
8771         * bus/driver.c (bus_driver_handle_message): sense of test for
8772         reply was backward
8773
8774 2003-04-16  Havoc Pennington  <hp@pobox.com>
8775
8776         * doc/dbus-specification.sgml: make spec say serials are unsigned
8777
8778         * dbus/dbus-message.h: change message serials to unsigned
8779
8780         * dbus/dbus-connection.c: adapt to message serials being unsigned
8781
8782 2003-04-15  Havoc Pennington  <hp@pobox.com>
8783
8784         * bus/bus.c: create and keep around a shared DBusUserDatabase
8785         object.
8786
8787         * bus/connection.c (bus_connection_get_groups): don't cache
8788         groups for user in the connection object, since user database
8789         object now does that.
8790
8791 2003-04-16  Havoc Pennington  <hp@redhat.com>
8792
8793         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8794         list of size counters
8795         (_dbus_message_loader_putback_message_link): put back a popped link
8796
8797         * dbus/dbus-connection.c
8798         (dbus_connection_set_max_live_messages_size): rename
8799         max_received_size
8800         (dbus_connection_get_outgoing_size): get size of outgoing
8801         queue
8802         (_dbus_connection_set_connection_counter): remove this cruft
8803
8804 2003-04-14  Havoc Pennington  <hp@redhat.com>
8805
8806         * dbus/dbus-userdb.c: user database abstraction, mostly to get
8807         caching, but at some point we might want to be able to use a
8808         different database.
8809
8810         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8811         SHA1 conf file to test the sha1 auth mechanism, since the regular
8812         test always uses EXTERNAL when available.
8813
8814         * configure.in,
8815         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8816         add conf file that requires use of sha1 auth
8817
8818 2003-04-13  Havoc Pennington  <hp@pobox.com>
8819
8820         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8821         from Philip Blundell to send messages and monitor them.
8822
8823 2003-04-13  Havoc Pennington  <hp@pobox.com>
8824
8825         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8826         callbacks
8827
8828         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8829         users
8830
8831         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8832         fix to only recover unused bytes if we're already authenticated
8833         (_dbus_transport_get_is_authenticated): fix to still mark us
8834         authenticated if there are unused bytes.
8835
8836         * bus/dispatch.c: implement security policy checking
8837
8838         * bus/connection.c (bus_transaction_send_from_driver): new
8839
8840         * bus/bus.c (bus_context_check_security_policy): new
8841
8842         * bus/dispatch.c (send_service_nonexistent_error): delete this,
8843         now we just set the DBusError and it gets converted to an error
8844         reply.
8845
8846         * bus/connection.c (allow_user_function): enable code using actual
8847         data from the config file
8848
8849         * bus/policy.c (list_allows_user): handle wildcard rules for
8850         user/group connection perms
8851
8852 2003-04-13  Havoc Pennington  <hp@pobox.com>
8853
8854         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8855
8856         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8857
8858         * bus/policy.c (bus_policy_append_mandatory_rule)
8859         (bus_policy_append_default_rule, bus_policy_append_user_rule)
8860         (bus_policy_append_group_rule): new functions
8861
8862 2003-04-12  Havoc Pennington  <hp@pobox.com>
8863
8864         * bus/config-parser.c (bus_config_parser_new): fix a memleak
8865
8866         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8867         the pid/gid/uid, just for paranoia.
8868
8869         * test/break-loader.c (randomly_do_n_things): find a byte
8870         containing a type code, and randomly change it to a different
8871         type code.
8872
8873 2003-04-12  Havoc Pennington  <hp@pobox.com>
8874
8875         * bus/policy.h: change BusPolicy to be the thing from the config
8876         file, and rename old BusPolicy to BusClientPolicy
8877
8878         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8879         match change in how policy works
8880
8881         * dbus/dbus-internals.h: mark assert_not_reached as
8882         __attribute((noreturn))__
8883
8884 2003-04-11  Havoc Pennington  <hp@redhat.com>
8885
8886         * doc/dbus-specification.sgml: fix a spot with the wrong name for
8887         the broadcast service. Use boolean return for ServiceExists.
8888
8889 2003-04-11  Havoc Pennington  <hp@redhat.com>
8890
8891         * configure.in: add another directory to look for qt in.
8892
8893 2003-04-11  Havoc Pennington  <hp@redhat.com>
8894
8895         * AUTHORS: add Colin Walters
8896
8897 2003-04-11  Havoc Pennington  <hp@redhat.com>
8898
8899         * NEWS: update
8900
8901         * configure.in: 0.9
8902
8903 2003-04-11  Havoc Pennington  <hp@redhat.com>
8904
8905         * bus/messagebus.in: remove pid file when stopping the
8906         message bus, since the bus won't have privileges to remove it
8907         itself.
8908
8909 2003-04-11  Havoc Pennington  <hp@redhat.com>
8910
8911         * bus/bus.c (bus_context_new): move credentials change after
8912         creating pidfile
8913
8914 2003-04-11  Havoc Pennington  <hp@pobox.com>
8915
8916         * test/decode-gcov.c: add "below average functions" to the
8917         coverage report, and change how some of the code works.
8918
8919         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8920         not in the coverage stats.
8921
8922         * test/test-service.c (main): use _dbus_verbose not fprintf in a
8923         couple places so running the test suite doesn't result in megaspam.
8924
8925 2003-04-11  Havoc Pennington  <hp@pobox.com>
8926
8927         * bus/dispatch.c (check_existent_service_activation): accept a no
8928         memory error in a place we didn't before
8929
8930         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8931         in case the first one failed," since the test suite is less
8932         broken now.
8933
8934 2003-04-10  Havoc Pennington  <hp@pobox.com>
8935
8936         * bus/dispatch.c (check_segfault_service_activation): add test
8937         for launching an executable that just crashes.
8938
8939         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8940         don't leave a million cores. We'll see how portable this is.
8941
8942 2003-04-10  Havoc Pennington  <hp@pobox.com>
8943
8944         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8945         the possible parent failures before we fork, so that we don't
8946         fail to create a babysitter after creating the child.
8947
8948         * bus/activation.c (bus_activation_activate_service): kill child
8949         if we don't successfully complete the activation.
8950
8951 2003-04-10  Havoc Pennington  <hp@redhat.com>
8952
8953         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8954         the connection if it's disconnected
8955
8956         * bus/activation.c (bus_activation_service_created): use new
8957         transaction features to roll back removal of pending activation if
8958         we don't successfully create the service after all. Don't remove
8959         pending activation if the function fails.
8960
8961         * dbus/dbus-list.c (_dbus_list_insert_before_link)
8962         (_dbus_list_insert_after_link): new code to facilitate
8963         services.c fixes
8964
8965         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8966         new functionality, so we can preallocate the ability to insert
8967         into a hash table.
8968
8969         * bus/connection.c (bus_transaction_add_cancel_hook): new function
8970         allowing us to put custom hooks in a transaction to be used for
8971         cancelling said transaction
8972
8973         * doc/dbus-specification.sgml: add some discussion of secondary
8974         service owners, and disallow zero-length service names
8975
8976         * bus/services.c (bus_registry_acquire_service): new function,
8977         splits out part of bus_driver_handle_acquire_service() and fixes
8978         a bug where we didn't remove the service doing the acquiring
8979         from the secondary queue if we failed to remove the current owner
8980         from the front of the queue.
8981
8982 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8983
8984         * doc/dbus-specification.sgml:
8985         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
8986
8987 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8988
8989         * bus/.cvsignore:
8990         * glib/.cvsignore:
8991         * test/.cvsignore:
8992         Added files to cvsignore
8993
8994         * dbus/dbus-message.h:
8995         * dbus/dbus-message.c: (dbus_message_iter_get_named):
8996         Make get_named() take two out argument and return a boolean.
8997         (dbus_message_iter_get_args_valist):
8998         Update usage of get_named().
8999         (dbus_message_iter_append_byte):
9000         Fix typo
9001         (dbus_message_iter_append_named)
9002         Fix typo
9003         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9004         More tests.
9005
9006 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9007
9008         * dbus/dbus-marshal.[ch]:
9009         Add array_type_pos argument to _dbus_marshal_validate_arg.
9010         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9011
9012         * dbus/dbus-message.[ch]:
9013         Multi-dimensional arrays have full type specification in the
9014         outermost array. Iter code re-arranged to handle this.
9015         Added some more iter tests.
9016
9017         * doc/dbus-specification.sgml:
9018         Add me to authors.
9019         Remove old FIXME.
9020         Update new array encoding description.
9021         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9022
9023         * test/data/invalid-messages/array-with-mixed-types.message:
9024         * test/data/valid-messages/array-of-array-of-uint32.message:
9025         Change to the new array format.
9026
9027         * test/data/invalid-messages/too-short-dict.message:
9028         Fix bug in test.
9029
9030         * test/data/valid-messages/recursive-types.message:
9031         Fix up and extend test.
9032
9033 2003-04-10  Havoc Pennington  <hp@pobox.com>
9034
9035         * bus/dispatch.c: lots of fixes
9036
9037         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9038         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9039         that was crack, broke the test service.
9040
9041         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9042         handling to avoid piling up errors if we get a failure on the
9043         first address.
9044
9045         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9046         pid in assertion failures.
9047
9048         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9049         to some fixed size of file descriptor array. Don't return TRUE
9050         anytime a timeout exists, that led to lots of busy loop silliness
9051         in the tests.
9052
9053 2003-04-09  Havoc Pennington  <hp@redhat.com>
9054
9055         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9056         I'd checked this in earlier but hadn't.
9057
9058 2003-04-09  Havoc Pennington  <hp@redhat.com>
9059
9060         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9061         the activation test (man this is getting old!)
9062
9063 2003-04-09  Havoc Pennington  <hp@redhat.com>
9064
9065         * test/test-utils.c: use dispatch status function to fix this up
9066
9067         * bus/connection.c (connection_watch_callback): don't dispatch
9068         from here
9069         (connection_timeout_callback): don't dispatch from here
9070         (bus_connections_setup_connection): set the dispatch status function
9071         (bus_connection_disconnected): unset it
9072
9073         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9074         used to add a connection to be dispatched
9075         (_dbus_loop_iterate): do the dispatching at the end of each
9076         iteration
9077
9078         * dbus/dbus-connection.c
9079         (dbus_connection_set_dispatch_status_function): new function
9080         allowing us to fix up main loop usage
9081         (_dbus_connection_last_unref): free all the various function
9082         user data
9083         (dbus_connection_dispatch): call the DispatchStatusFunction
9084         whenever this function returns
9085         (dbus_connection_handle_watch): call DispatchStatusFunction
9086         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9087         (reply_handler_timeout): call DispatchStatusFunction
9088         (dbus_connection_flush): call DispatchStatusFunction
9089
9090 2003-04-09  Havoc Pennington  <hp@redhat.com>
9091
9092         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9093         a memory leak
9094
9095         * bus/dispatch.c (check_service_activated): fix bug in test
9096
9097         * dbus/dbus-mainloop.c (check_timeout): fix this up
9098
9099         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9100         verbose output so we can sort out output from different processes,
9101         e.g. in the activation case.
9102
9103 2003-04-08  Colin Walters  <walters@gnu.org>
9104
9105         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9106         the pid file.
9107         (bus_context_new): Set it.
9108         (bus_context_unref): Use it to delete the pid file.
9109
9110 2003-04-08  Havoc Pennington  <hp@redhat.com>
9111
9112         * test/data/invalid-messages/array-with-mixed-types.message:
9113         regression test that fails for the moment
9114
9115         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9116         tests for convenience
9117
9118         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9119         array of nil, it broke things.
9120
9121         * test/data/invalid-messages/array-of-nil.message: regression test
9122
9123         * test/data/valid-messages/array-of-array-of-uint32.message:
9124         happened to write this so added it to suite
9125
9126 2003-04-08  Havoc Pennington  <hp@redhat.com>
9127
9128         * bus/driver.c (bus_driver_handle_acquire_service): init
9129         retval/reply before checking name
9130
9131         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9132         recursion depth argument
9133
9134         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9135         in the public struct for future extension
9136
9137         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9138         typo
9139
9140         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9141         message
9142
9143         * doc/dbus-specification.sgml: fix typo
9144
9145 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9146
9147         Implemented recursive types, named types and new-style iters
9148
9149         * bus/driver.c:
9150         * glib/test-thread-client.c: (thread_func):
9151         * glib/test-thread-server.c: (handle_test_message):
9152         * test/test-service.c: (handle_echo):
9153         Update to new api
9154
9155         * dbus/Makefile.am:
9156         * dbus/dbus-dict.c:
9157         * dbus/dbus-dict.h:
9158         * dbus/dbus.h
9159         Remove DBusDict
9160
9161         * dbus/dbus-internals.c: (_dbus_type_to_string):
9162         Update for new types.
9163
9164         * dbus/dbus-marshal.[ch]:
9165         Implement recursive types and the new marshalling format.
9166         Remove hardcoded dict marshalling.
9167         Marshal named types.
9168
9169         * dbus/dbus-message-builder.c:
9170         Add BYTE_ARRAY.
9171         Remove references to old types
9172
9173         * dbus/dbus-message.[ch]:
9174         New non-refcounted iter API that supports recursive iters.
9175         Use iters for appending, including support for recursive
9176         iters.
9177         Add byte and named type support.
9178         Update everything to new marshalling formats.
9179         Add tests for new API.
9180
9181         * dbus/dbus-protocol.h:
9182         Remove old array types.
9183         Add types: BYTE, ARRAY, DICT, NAMED
9184
9185         * dbus/dbus-string.c:
9186         * dbus/dbus-sysdeps.c:
9187         Make parse_double locale safe.
9188
9189         * dbus/dbus-test-main.c:
9190         Call setlocale.
9191
9192         * dbus/dbus-test.c:
9193         Kill dict test
9194
9195         * doc/dbus-specification.sgml:
9196         Update spec
9197
9198         * test/data/incomplete-messages/missing-body.message:
9199         * test/data/invalid-messages/bad-boolean.message:
9200         * test/data/invalid-messages/bad-boolean-array.message:
9201         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9202         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9203         * test/data/invalid-messages/too-short-dict.message:
9204         * test/data/valid-messages/dict-simple.message:
9205         * test/data/valid-messages/dict.message:
9206         * test/data/valid-messages/emptiness.message:
9207         * test/data/valid-messages/lots-of-arguments.message:
9208         * test/data/valid-messages/no-padding.message:
9209         * test/data/valid-messages/recursive-types.message:
9210         Add missing NAME fields
9211         Fix up dicts & arrays
9212
9213         * test/data/invalid-messages/dict-with-nil-value.message:
9214         Removed, this is not invalid anymore.
9215
9216         * test/data/valid-messages/recursive-types.message:
9217         Add new test for deeply recursive types.
9218
9219 2003-04-07  Havoc Pennington  <hp@pobox.com>
9220
9221         * bus/driver.c (bus_driver_handle_acquire_service): return an
9222         error if you try to acquire a service that starts with ':'
9223
9224 2003-04-07  Havoc Pennington  <hp@redhat.com>
9225
9226         * doc/dbus-specification.sgml: require that base service names
9227         start with ':' and that the base service is created/deleted
9228         as first and last things a connection does on the bus
9229
9230         * bus/dispatch.c (check_existent_service_activation): lots more
9231         work on the activation test; it doesn't fully pass yet...
9232
9233         * test/test-service.c (main): fix so we don't memleak the
9234         connection to the message bus
9235         (filter_func): accept a message asking us to exit
9236
9237 2003-04-06  Havoc Pennington  <hp@pobox.com>
9238
9239         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9240         from Colin Walters
9241
9242         * configure.in: fixes to Qt detection from Colin Walters
9243
9244         * doc/Makefile.am: Only remove generated docbook dirs if they
9245         exist, from Colin Walters
9246
9247         * dbus/dbus-bus.c: change how we set well-known connections to
9248         NULL, so that it works if a single connection is stored in
9249         two well-known array slots.
9250
9251         * test/Makefile.am: remove a lot of stuff that isn't immediately
9252         useful, it's in CVS history if we want it.
9253
9254         * test/test-service.c: use dbus-mainloop instead of that
9255         watch.[hc] crack
9256
9257 2003-04-06  Havoc Pennington  <hp@pobox.com>
9258
9259         * dbus/Makefile.am: split lists of sources into stuff that goes in
9260         the library, util functions that go in the lib and are also used
9261         elsewhere, and util functions that are used in tests/daemon but
9262         don't go in the lib.
9263
9264         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9265         here so it can be used in test binaries also
9266
9267 2003-04-06  Havoc Pennington  <hp@pobox.com>
9268
9269         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9270         here in the parent process, so we can return an error if it
9271         fails. Also, move some of the code into the child so the parent
9272         is less hosed if we fail midway through.
9273
9274         * bus/bus.c (bus_context_new): move pidfile detection further up
9275         in the function, before we start overwriting sockets and such.
9276
9277         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9278
9279         * configure.in: add --with-system-pid-file and --with-system-socket
9280
9281 2003-04-06  Colin Walters  <walters@verbum.org>
9282
9283         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9284
9285         * bus/system.conf.in: Declare a pidfile.
9286
9287         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9288         create one (if appropriate).
9289
9290         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9291         (struct BusConfigParser) [pidfile]: New.
9292         (element_type_to_name, merge_included, start_busconfig_child)
9293         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9294         (bus_config_parser_unref): Free it.
9295         (bus_config_parser_get_pidfile): New function.
9296
9297         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9298
9299         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9300
9301         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9302
9303         * dbus/dbus-sysdeps.h: Prototype it.
9304
9305 2003-04-06  Havoc Pennington  <hp@pobox.com>
9306
9307         * bus/bus.c (bus_context_new): print the address in here, rather
9308         than in main(), because we need to do it before forking the daemon
9309
9310         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9311         on the service nonexistent error
9312
9313         * bus/driver.c (bus_driver_handle_acquire_service): set the
9314         sender on the AcquireService reply
9315
9316         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9317         server also listen on a UNIX socket so services can connect to it.
9318
9319 2003-04-06  Havoc Pennington  <hp@pobox.com>
9320
9321         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9322         so it detects deadlocks and also we actually init threads when
9323         debugging.
9324
9325 2003-04-06  Havoc Pennington  <hp@pobox.com>
9326
9327         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9328         save the domain socket name, and unlink it when we disconnect the
9329         server. Means that at least when we exit normally, we won't leave
9330         a bunch of junk in /tmp
9331
9332         * dbus/dbus-transport-unix.c
9333         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9334         memory management). (I was making a real change here but then
9335         didn't)
9336
9337 2003-04-06  Havoc Pennington  <hp@pobox.com>
9338
9339         * bus/bus.c (bus_context_new): fix wrong handling of
9340         server_data_slot_unref() in the error case.
9341
9342         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9343         "(condition) != 0" to _dbus_real_assert so that
9344         "_dbus_assert (pointer)" doesn't cause a warning
9345
9346         * bus/main.c (main): accept --print-address option to print out
9347         the message bus address
9348
9349         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9350
9351         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9352         "tmpdir" option to unix: address on client side
9353
9354         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9355         to unix: address
9356
9357         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9358         we can use to create sockets in the test suite.
9359
9360         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9361         cleanly. To be used for testing.
9362
9363         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9364
9365         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9366
9367         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9368         handle trying to call this when there's no servers active
9369
9370 2003-04-05  Havoc Pennington  <hp@pobox.com>
9371
9372         * NEWS: update
9373
9374         * configure.in: 0.8
9375
9376 2003-04-05  Havoc Pennington  <hp@pobox.com>
9377
9378         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9379         crash on startup. Need to get "try starting the daemon"
9380         in the test suite I guess. ;-)
9381
9382         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9383         tracked the number of open connections; it's better done in
9384         application-specific code as you want it to span all servers etc.
9385
9386 2003-04-05  Havoc Pennington  <hp@pobox.com>
9387
9388         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9389         patch from Colin Walters
9390
9391 2003-04-05  Havoc Pennington  <hp@pobox.com>
9392
9393         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9394         reality; in fact multiple mechanisms are allowed.
9395
9396         * dbus/dbus-internals.c (_dbus_real_assert)
9397         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9398         _dbus_assert_not_reached() into functions, so that they don't show
9399         up in basic block counts for test coverage, and don't use up as
9400         much disk space. Does mean slower execution speed though, so
9401         assumes --disable-asserts is the normal production case.
9402
9403 2003-04-05  Havoc Pennington  <hp@pobox.com>
9404
9405         * test/Makefile.am (dist-hook): also dist *.in files
9406
9407         * NEWS: update
9408
9409         * configure.in: 0.7
9410
9411 2003-04-05  Havoc Pennington  <hp@pobox.com>
9412
9413         * dbus/dbus-string.c: docs warning
9414
9415         * dbus/dbus-spawn.c: missing docs
9416
9417         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9418
9419 2003-04-05  Havoc Pennington  <hp@pobox.com>
9420
9421         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9422         magic from GLib
9423
9424         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9425         to -1 once we've reaped the babysitter
9426         (_dbus_babysitter_handle_watch): do as much work as we can, not
9427         just one go of it
9428
9429         * bus/activation.c: add code using DBusBabysitter so that we
9430         handle it when a service fails to start up properly.
9431         (bus_activation_service_created): don't remove the activation
9432         entries as we go, just let them get removed when we free the pending
9433         activation. Unref reply messages after sending them.
9434
9435 2003-04-05  Havoc Pennington  <hp@pobox.com>
9436
9437         * test/decode-gcov.c (main): print per-directory stats in the report
9438
9439         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9440
9441 2003-04-05  Havoc Pennington  <hp@pobox.com>
9442
9443         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9444
9445         * test/decode-gcov.c: hack up a little program to suck data
9446         out of gcov files. Yes this is sort of silly.
9447
9448         * configure.in: define something in config.h and do an
9449         AM_CONDITIONAL when gcov is enabled
9450
9451 2003-04-04  Havoc Pennington  <hp@redhat.com>
9452
9453         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9454         return a "babysitter" object that is used to monitor the status of
9455         the spawned process and reap it when required.
9456
9457         * test/test-segfault.c, test/test-exit.c,
9458         test/test-sleep-forever.c: binaries that do various lame things,
9459         used in the test suite.
9460
9461         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9462
9463 2003-04-03  Havoc Pennington  <hp@pobox.com>
9464
9465         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9466         in preparation for modifying it, dbus-sysdeps is getting
9467         a bit unmanageable.
9468
9469 2003-04-03  Havoc Pennington  <hp@redhat.com>
9470
9471         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9472         have multiple ones
9473
9474         * bus/*.[hc]: adapt to mainloop change
9475
9476 2003-04-03  Havoc Pennington  <hp@redhat.com>
9477
9478         * bus/activation.c (load_directory): fix up memleaks
9479         (bus_activation_entry_free): free the entry
9480
9481         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9482         we get one from the message bus; fix memleaks.
9483
9484         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9485
9486 2003-04-03  Havoc Pennington  <hp@pobox.com>
9487
9488         * bus/config-parser.c (bus_config_parser_unref): free
9489         list of mechanisms, bug discovered by test suite enhancements
9490         (putting system.conf and session.conf into suite)
9491
9492         * test/Makefile.am, test/test-service.c: add placeholder for a
9493         test service that we'll activate as part of test suite. Doesn't
9494         do anything yet.
9495
9496         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9497         setting NULL value, and use system malloc not dbus_malloc()
9498         when we have unavoidable memleakage.
9499
9500         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9501         didn't work, and support DBUS_BUS_ACTIVATION.
9502
9503         * bus/activation.c (child_setup): pass our well-known bus type to
9504         the child
9505
9506         * bus/config-parser.c: support <type> to specify well-known type
9507
9508         * doc/dbus-specification.sgml: document the env variables to
9509         locate well-known buses and find service activator
9510
9511 2003-04-02  Havoc Pennington  <hp@redhat.com>
9512
9513         * test/Makefile.am (all-local): add a rule to copy tests to
9514         builddir, so we can have generated tests. Use this to remove the
9515         silly hack for testing system.conf and session.conf. Will use this
9516         shortly to generate .service files pointing to test binaries.
9517
9518 2003-04-02  Havoc Pennington  <hp@redhat.com>
9519
9520         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9521         current alloc and needed new length, not max of the doubled
9522         allocation and needed new length. Also, when building tests,
9523         don't do the double-allocation stuff, just realloc every time.
9524
9525 2003-04-02  Havoc Pennington  <hp@redhat.com>
9526
9527         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9528         in error messages
9529         (_dbus_string_get_dirname): new
9530         (_dbus_sysdeps_test): new
9531         (_dbus_directory_open): include dirnames in error messages
9532
9533         * bus/config-parser.c: interpret <include> and <includedir> and
9534         <servicedir> relative to config file location if the given
9535         filename is not absolute.
9536
9537         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9538
9539 2003-04-02  Havoc Pennington  <hp@redhat.com>
9540
9541         * bus/connection.c (bus_transaction_send_error_reply): set sender
9542         service for the error, and unref the reply on success
9543
9544         * bus/activation.c: convert to use BusTransaction so OOM can be
9545         handled correctly
9546         (bus_activation_service_created): set sender of the message
9547
9548 2003-04-01  Havoc Pennington  <hp@redhat.com>
9549
9550         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9551         <includedir> (at least mostly)
9552
9553         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9554         first, then the user ID
9555
9556 2003-04-01  Havoc Pennington  <hp@pobox.com>
9557
9558         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9559         function
9560
9561         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9562
9563         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9564
9565         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9566         socket 0777, and unlink any existing socket.
9567
9568         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9569         the configuration file so specifies; set up auth mechanism
9570         restrictions
9571
9572         * bus/config-parser.c (bus_config_parser_content): add support
9573         for <fork> option and fill in code for <auth>
9574
9575         * bus/system.conf.in: add <fork/> to default configuration,
9576         and limit auth mechanisms to EXTERNAL
9577
9578         * doc/config-file.txt (Elements): add <fork>
9579
9580         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9581         (_dbus_change_identity): new function
9582
9583 2003-03-31  Havoc Pennington  <hp@redhat.com>
9584
9585         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9586         (_dbus_listen_unix_socket): fix off-by-one error in null
9587         termination spotted by Nalin
9588
9589 2003-03-31  Havoc Pennington  <hp@redhat.com>
9590
9591         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9592         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9593         having a real home directory available.
9594
9595 2003-03-31  Havoc Pennington  <hp@redhat.com>
9596
9597         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9598
9599         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9600
9601         * configure.in: add support for specifying a style of init script
9602         to install
9603
9604 2003-03-31  Havoc Pennington  <hp@redhat.com>
9605
9606         Fix some annoying DBusString API and fix all affected code.
9607
9608         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9609         max_length argument
9610         (_dbus_string_get_data): change to return string instead of using
9611         an out param
9612         (_dbus_string_get_const_data): ditto
9613         (_dbus_string_get_data_len): ditto
9614         (_dbus_string_get_const_data_len): ditto
9615
9616 2003-03-31  Havoc Pennington  <hp@redhat.com>
9617
9618         * bus/main.c (main): fix up the command line arguments to be nicer
9619
9620 2003-03-31  Havoc Pennington  <hp@redhat.com>
9621
9622         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9623         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9624         final location that lands in the config file
9625
9626         * bus/config-loader-expat.c (bus_config_load): fix type of
9627         XML_Parser variable
9628
9629         * doc/TODO: remove TODO item for dbus_bus_get()
9630
9631         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9632
9633 2003-03-31  Havoc Pennington  <hp@pobox.com>
9634
9635         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9636         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9637         argument since they are always client side
9638
9639         * dbus/dbus-server.c (dbus_server_get_address): new function
9640
9641         * bus/main.c (main): take the configuration file as an argument.
9642
9643         * test/data/valid-config-files/debug-allow-all.conf: new file to
9644         use with dispatch.c tests for example
9645
9646         * bus/test-main.c (main): require test data dir
9647
9648         * bus/bus.c (bus_context_new): change this to take a
9649         configuration file name as argument
9650
9651         * doc/config-file.txt (Elements): add <servicedir>
9652
9653         * bus/system.conf, bus/session.conf: new files
9654
9655         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9656         well-known socket if none set
9657
9658         * configure.in: create system.conf and session.conf
9659
9660 2003-03-30  Havoc Pennington  <hp@pobox.com>
9661
9662         * bus/config-parser.c: hacking
9663
9664         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9665         to shut down, since it could cause weirdness with the DBusList
9666         lock
9667
9668         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9669         link-oriented stack routines
9670         (alloc_link): free the mempool if the first alloc from it fails
9671
9672         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9673
9674         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9675         from GLib
9676         (_dbus_string_skip_white): new
9677
9678         * doc/config-file.txt (Elements): add <includedir>
9679
9680 2003-03-28  Havoc Pennington  <hp@pobox.com>
9681
9682         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9683         (_dbus_string_copy_data): new functions
9684
9685 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9686
9687         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9688         * dbus/dbus-bus.h:
9689         Add dbus_bus_get.
9690
9691         * dbus/dbus-memory.c:
9692         Fix a doc comment.
9693
9694 2003-03-28  Havoc Pennington  <hp@pobox.com>
9695
9696         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9697         I think it may have just been superstition. Not sure.
9698
9699         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9700         failures that were not being handled.
9701
9702         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9703
9704         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9705         row that will fail on out-of-memory.
9706
9707         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9708         function for testing out-of-memory handling.
9709
9710         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9711         allocation functions, they do map exactly to the expat ones.
9712
9713 2003-03-27  Havoc Pennington  <hp@redhat.com>
9714
9715         * bus/config-loader-libxml.c (bus_config_load): add another error
9716         check
9717
9718 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9719
9720         * doc/TODO:
9721         Add note about automatic service activation.
9722
9723         * doc/dbus-specification.sgml:
9724         Rename the specification and clarify a few things.
9725
9726 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9727
9728         * Doxyfile.in:
9729         * dbus/dbus-address.c:
9730         * dbus/dbus-dict.c:
9731         * dbus/dbus-marshal.c:
9732         * dbus/dbus-server-debug-pipe.c:
9733         * dbus/dbus-transport-unix.c:
9734         Fix documentation warnings.
9735
9736 2003-03-26  Havoc Pennington  <hp@pobox.com>
9737
9738         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9739         after every test so it's quick and easy to see which leaked, and
9740         so we test multiple dbus_shutdown() calls
9741
9742         * configure.in: change configure.in XML stuff to also support
9743         expat
9744
9745         * config-loader-libxml.c: some hacking
9746
9747         * config-loader-expat.c: some hacking
9748
9749         * config-parser.c: some hacking, plus tests
9750
9751 2003-03-25  Havoc Pennington  <hp@redhat.com>
9752
9753         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9754
9755         * configure.in: add --with-xml option to specify XML library,
9756         right now only libxml is supported.
9757
9758         * bus/config-loader-libxml.c, config-parser.c: sync some minor
9759         nonworking code between home and work, still just stubs
9760
9761 2003-03-24  Havoc Pennington  <hp@redhat.com>
9762
9763         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9764         file
9765
9766         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9767         NULL argument for "message" if the error is a well-known one,
9768         fill in a generic message in this case.
9769
9770         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9771         favor of DBusError
9772
9773         * bus/test.c (bus_test_flush_bus): add
9774
9775         * bus/policy.c (bus_policy_test): test code stub
9776
9777 2003-03-24  Havoc Pennington  <hp@pobox.com>
9778
9779         * bus/connection.c (bus_connections_setup_connection): set up
9780         the "can this user connect" function, but it always returns
9781         TRUE until we have a config file parser so we can have a config
9782         file that allows connections.
9783
9784 2003-03-23  Havoc Pennington  <hp@pobox.com>
9785
9786         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9787         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9788         the mutex, so we can check for proper memory management
9789         and OOM handling.
9790
9791         * dbus/dbus-dataslot.c: remove the mutex from
9792         DBusDataSlotAllocator and lock it manually when using it,
9793         to simplify fitting it into the global slots framework.
9794
9795         * dbus/dbus-threads.c (init_static_locks): rework how we're
9796         handling global locks so they are easily shut down.
9797
9798         * bus/policy.c (bus_policy_append_rule): fix
9799
9800         * bus/test-main.c (main): check for memleaks
9801
9802         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9803         test suite check for memleaks
9804
9805         * dbus/dbus-memory.c: add support in test mode for tracking
9806         number of outstanding blocks
9807
9808 2003-03-23  Havoc Pennington  <hp@pobox.com>
9809
9810         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9811         policies code
9812
9813         * dbus/dbus-hash.h: add ULONG hash keys
9814
9815         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9816         (_dbus_get_group_id): new function
9817
9818 2003-03-20  Havoc Pennington  <hp@redhat.com>
9819
9820         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9821         new function
9822         (dbus_connection_get_unix_user): new function
9823
9824 2003-03-20  Havoc Pennington  <hp@pobox.com>
9825
9826         * bus/connection.c (bus_connection_send_oom_error): assert that
9827         message has a sender
9828         (connection_execute_transaction): ditto
9829         (bus_connection_preallocate_oom_error): fix to set the sender, and
9830         set recipient to the destination service, not the bus driver
9831
9832         * bus/policy.c: hacking
9833
9834         * dbus/dbus-message.c (dbus_message_service_is): new function
9835         (dbus_message_sender_is): new
9836
9837 2003-03-19  Havoc Pennington  <hp@redhat.com>
9838
9839         * bus/policy.c: start sketching code for policy restrictions on
9840         what connections can do.
9841
9842 2003-03-18  Havoc Pennington  <hp@redhat.com>
9843
9844         * doc/TODO: some notes on high-level todo items. Little nitpick
9845         stuff is all in @todo, so no need to add it here.
9846
9847         * doc/config-file.txt: some notes on how config file might look
9848
9849 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
9850
9851         * configure.in: 0.6
9852
9853         * NEWS: Update.
9854
9855 2003-03-17  Havoc Pennington  <hp@redhat.com>
9856
9857         * dbus/dbus-internals.h: add gcc attributes so that
9858         our printf-style functions warn on bad arguments to
9859         format
9860
9861         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9862         format bug
9863
9864         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9865         printf format bug
9866
9867 2003-03-17  Havoc Pennington  <hp@redhat.com>
9868
9869         * bus/test-main.c (main): make it print something as it runs
9870         so make check doesn't look stuck
9871
9872         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9873         from CVS, now obsolete
9874
9875 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9876
9877         * bus/dispatch.c: (bus_dispatch):
9878         Refetch the service name since it may have been reallocated
9879         when dbus_message_set_sender was called.
9880
9881         * dbus/dbus-sysdeps.c: (_dbus_accept):
9882         Add address and address length variables and use them to stop
9883         valgrind from complaining.
9884
9885 2003-03-17  Havoc Pennington  <hp@pobox.com>
9886
9887         All tests pass, no memleaks, no valgrind complaints.
9888
9889         * bus/test.c: refcount handler_slot
9890
9891         * bus/connection.c (bus_connections_new): refcount
9892         connection_data_slot
9893
9894         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9895         bytes so that auth scripts pass.
9896
9897         * bus/dispatch.c: init message_handler_slot so it gets allocated
9898         properly
9899
9900         * bus/dispatch.c (message_handler_slot_ref): fix memleak
9901
9902         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9903         dealloc server_pipe_hash when no longer used for benefit of
9904         leak checking
9905
9906         * dbus/dbus-auth.c (process_command): memleak fix
9907
9908         * bus/dispatch.c (check_hello_message): memleak fix
9909
9910 2003-03-16  Havoc Pennington  <hp@pobox.com>
9911
9912         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9913
9914 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9915
9916         * bus/activation.c (bus_activation_activate_service): Append
9917         the pending activation entry to the list of pending activations.
9918
9919 2003-03-16  Havoc Pennington  <hp@pobox.com>
9920
9921         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9922         connections
9923
9924         * dbus/dbus-address.c (create_entry): fix OOM handling when
9925         failing to alloc entry->method
9926
9927 2003-03-16  Havoc Pennington  <hp@pobox.com>
9928
9929         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9930         the watch
9931
9932         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9933         add some missing dbus_set_result
9934
9935         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9936         alloc the DBusMessageHandler
9937
9938         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9939         the transport here, since we call this from the finalizer; it
9940         resulted in a double-finalize.
9941
9942         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9943         where we tried to use transport->connection that was NULL,
9944         happened when transport was disconnected early on due to OOM
9945
9946         * bus/*.c: adapt to handle OOM for watches/timeouts
9947
9948         * dbus/dbus-transport-unix.c: port to handle OOM during
9949         watch handling
9950
9951         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9952         reference to unused bytes instead of a copy
9953
9954         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9955         out of memory
9956
9957         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9958         FALSE on OOM
9959
9960         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9961         of memory
9962
9963 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9964
9965         * doc/dbus-specification.sgml:
9966         Document reply message for ActivateService.
9967
9968 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9969
9970         * bus/activation.c: (bus_pending_activation_entry_free),
9971         (bus_pending_activation_free), (bus_activation_new),
9972         (bus_activation_unref), (bus_activation_service_created),
9973         (bus_activation_activate_service):
9974         * bus/activation.h:
9975         * bus/bus.c: (bus_context_new):
9976         * bus/desktop-file.c: (new_section):
9977         * bus/driver.c: (bus_driver_send_service_deleted),
9978         (bus_driver_handle_activate_service):
9979         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9980         * bus/services.h:
9981         * dbus/dbus-connection.c:
9982         (dbus_connection_send_with_reply_and_block):
9983         * dbus/dbus-message.c: (dbus_message_append_args_valist):
9984         * dbus/dbus-protocol.h:
9985         Make activation work better. Now pending activations will be queued
9986         and the daemon won't try to activate services that are already registered.
9987
9988 2003-03-16  Havoc Pennington  <hp@pobox.com>
9989
9990         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
9991         connection data
9992
9993         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
9994         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
9995
9996 2003-03-16  Havoc Pennington  <hp@pobox.com>
9997
9998         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
9999         this. always run the test suite before commit...
10000
10001         * bus/*: adapt to DBusConnection API changes
10002
10003         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10004         requires renaming stuff to avoid dbus_connection_dispatch name
10005         conflict.
10006
10007         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10008         function
10009
10010         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10011         separate from _dbus_message_loader_return_buffer()
10012
10013         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10014         this, because it's now always broken to use; the number of
10015         messages in queue vs. the number still buffered by the message
10016         loader is undefined/meaningless. Should use
10017         dbus_connection_get_dispatch_state().
10018         (dbus_connection_dispatch): rename from
10019         dbus_connection_dispatch_message
10020
10021 2003-03-16  Havoc Pennington  <hp@pobox.com>
10022
10023         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10024         implementation
10025
10026 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10027
10028         * dbus/dbus-connection.c:
10029         (dbus_connection_send_with_reply_and_block):
10030         Decrease connection->n_incoming when removing an entry
10031         from the list.
10032         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10033         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10034         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10035         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10036         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10037         (dbus_dict_get_byte_array):
10038         Handle NULL arrays and strings. Also add support for byte arrays.
10039
10040         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10041         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10042         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10043         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10044         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10045         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10046         * dbus/dbus-marshal.h:
10047         Add support for marshalling and demarshalling empty arrays and strings.
10048
10049         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10050         (dbus_message_append_string_array),
10051         (dbus_message_iter_get_boolean),
10052         (dbus_message_iter_get_boolean_array),
10053         (dbus_message_iter_get_int32_array),
10054         (dbus_message_iter_get_uint32_array),
10055         (dbus_message_iter_get_double_array),
10056         (dbus_message_iter_get_byte_array),
10057         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10058         (check_message_handling):
10059         Add support for getting empty arrays and dicts.
10060
10061         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10062         Don't do any validation at all for now, that's better than just checking
10063         for ASCII.
10064
10065         * test/data/valid-messages/emptiness.message:
10066         New test message with lots of empty arrays.
10067
10068 2003-03-16  Havoc Pennington  <hp@pobox.com>
10069
10070         * dbus/dbus-connection.c
10071         (_dbus_connection_queue_received_message_link): new function that
10072         can't fail due to OOM
10073
10074         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10075         new function pops a message together with a list link
10076         containing it.
10077
10078         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10079         message queuing functions to avoid needing to alloc memory
10080
10081 2003-03-16  Havoc Pennington  <hp@pobox.com>
10082
10083         Oops - test code was only testing failure of around 30 of the
10084         mallocs in the test path, but it turns out there are 500+
10085         mallocs. I believe this was due to misguided linking setup such
10086         that there was one copy of dbus_malloc etc. in the daemon and one
10087         in the shared lib, and only daemon mallocs were tested. In any
10088         case, the test case now tests all 500+ mallocs, and doesn't pass
10089         yet, though there are lots of fixes in this patch.
10090
10091         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10092         this so that it doesn't need to allocate memory, since it
10093         has no way of indicating failure due to OOM (and would be
10094         annoying if it did).
10095
10096         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10097
10098         * bus/Makefile.am: rearrange to create two self-contained
10099         libraries, to avoid having libraries with overlapping symbols.
10100         that was resulting in weirdness, e.g. I'm pretty sure there
10101         were two copies of global static variables.
10102
10103         * dbus/dbus-internals.c: move the malloc debug stuff to
10104         dbus-memory.c
10105
10106         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10107         empty.
10108
10109         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10110
10111         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10112         on failure.
10113
10114         * bus/dispatch.c (bus_dispatch_add_connection): free
10115         message_handler_slot when no longer using it, so
10116         memory leak checkers are happy for the test suite.
10117
10118         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10119
10120         * bus/bus.c (new_connection_callback): disconnect in here if
10121         bus_connections_setup_connection fails.
10122
10123         * bus/connection.c (bus_connections_unref): fix to free the
10124         connections
10125         (bus_connections_setup_connection): if this fails, don't
10126         disconnect the connection, just be sure there are no side
10127         effects.
10128
10129         * dbus/dbus-string.c (undo_alignment): unbreak this
10130
10131         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10132         leaking
10133         (_dbus_auth_new): fix the order in which we free strings
10134         on OOM failure
10135
10136         * bus/connection.c (bus_connection_disconnected): fix to
10137         not send ServiceDeleted multiple times in case of memory
10138         allocation failure
10139
10140         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10141         get the base service name
10142         (dbus_bus_register_client): don't return base service name,
10143         instead store it on the DBusConnection and have an accessor
10144         function for it.
10145         (dbus_bus_register_client): rename dbus_bus_register()
10146
10147         * bus/dispatch.c (check_hello_message): verify that other
10148         connections on the bus also got the correct results, not
10149         just the one sending hello
10150
10151 2003-03-15  Havoc Pennington  <hp@pobox.com>
10152
10153         Make it pass the Hello handling test including all OOM codepaths.
10154         Now to do other messages...
10155
10156         * bus/services.c (bus_service_remove_owner): fix crash when
10157         removing owner from an empty list of owners
10158         (bus_registry_ensure): don't leave service in the list of
10159         a connection's owned services if we fail to put the service
10160         in the hash table.
10161
10162         * bus/connection.c (bus_connection_preallocate_oom_error): set
10163         error flag on the OOM error.
10164
10165         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10166         handle _dbus_transport_set_connection failure
10167
10168         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10169         to create watches up front and simply enable/disable them as
10170         needed.
10171         (unix_connection_set): this can now fail on OOM
10172
10173         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10174         of enabling/disabling a watch or timeout.
10175
10176         * bus/loop.c (bus_loop_iterate): don't touch disabled
10177         watches/timeouts
10178
10179         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10180
10181 2003-03-15  Havoc Pennington  <hp@pobox.com>
10182
10183         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10184         write useful test code, after all that futzing around ;-)
10185
10186         Test does not yet pass because we can't handle OOM in
10187         _dbus_transport_messages_pending (basically,
10188         dbus_connection_preallocate_send() does not prealloc the write
10189         watch). To fix this, I think we need to add new stuff to
10190         set_watch_functions, namely a SetEnabled function so we can alloc
10191         the watch earlier, then enable it later.
10192
10193         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10194         dbus-memory.c to the convenience lib
10195
10196         * bus/test.c: rename some static functions to keep them clearly
10197         distinct from stuff in connection.c. Handle client disconnection.
10198
10199 2003-03-14  Havoc Pennington  <hp@pobox.com>
10200
10201         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10202         transport, tests more of the real codepath. Set up clients
10203         with bus_setup_debug_client.
10204
10205         * bus/test.c (bus_setup_debug_client): function to set up debug
10206         "clients" on the main loop
10207
10208         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10209         support
10210
10211         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10212         server type
10213
10214         * dbus/dbus-server-debug.c: support a debug server based on pipes
10215
10216         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10217         (_dbus_close): new function
10218
10219         * configure.in: check for socketpair
10220
10221 2003-03-14  Havoc Pennington  <hp@redhat.com>
10222
10223         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10224         cheesy hack
10225
10226         * dbus/dbus-transport-debug.c: rework this a good bit to be
10227         less complicated. hopefully still works.
10228
10229         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10230         manually
10231
10232         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10233         after running it
10234
10235         * dbus/dbus-message.c (dbus_message_copy): rename from
10236         dbus_message_new_from_message, fix it up to copy
10237         all the message fields, add test case
10238
10239         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10240         not quite passing yet
10241
10242 2003-03-14  Havoc Pennington  <hp@pobox.com>
10243
10244         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10245         until no work remains" in test code. (the large diff here
10246         is just code movement, no actual changes)
10247
10248         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10249         1, no point waiting around for test code.
10250         (_dbus_server_debug_accept_transport): unref the timeout
10251         after adding it (right?)
10252
10253         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10254
10255 2003-03-13  Havoc Pennington  <hp@redhat.com>
10256
10257         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10258         out of memory
10259
10260         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10261         of memory
10262
10263         * dbus/dbus-connection.h: Make AddWatchFunction and
10264         AddTimeoutFunction return a bool so they can fail on out-of-memory
10265
10266         * bus/bus.c (bus_context_new): set up timeout handlers
10267
10268         * bus/connection.c (bus_connections_setup_connection): set up
10269         timeout handlers
10270
10271         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10272         can fail
10273
10274         * bus/bus.c (bus_context_new): adapt to changes
10275
10276         * bus/connection.c: adapt to changes
10277
10278         * test/watch.c: adapt to DBusWatch changes
10279
10280         * bus/dispatch.c (bus_dispatch_test): started adding this but
10281         didn't finish
10282
10283 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10284
10285         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10286
10287 2003-03-13  Havoc Pennington  <hp@pobox.com>
10288
10289         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10290         set up a test framework as for the library
10291
10292 2003-03-12  Havoc Pennington  <hp@pobox.com>
10293
10294         Throughout: purge global variables, introduce BusActivation,
10295         BusConnections, BusRegistry, etc. objects instead.
10296
10297         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10298         message bus object
10299
10300         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10301         going to redo this a bit differently I think
10302
10303 2003-03-12  Havoc Pennington  <hp@redhat.com>
10304
10305         Mega-patch that gets the message bus daemon initially handling
10306         out-of-memory. Work still needed. Also lots of random
10307         moving stuff to DBusError instead of ResultCode.
10308
10309         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10310
10311         * dbus/dbus-connection.c
10312         (dbus_connection_send_with_reply_and_block): use DBusError
10313
10314         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10315         DBusResultCode
10316
10317         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10318         code here, as the only failure possible is OOM.
10319
10320         * bus/connection.c (bus_connection_disconnect):
10321         rename bus_connection_disconnected as it's a notification only
10322
10323         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10324         "name" on get_args failure, should be done by get_args;
10325         don't disconnect client for bad args, just return an error.
10326         (bus_driver_handle_service_exists): ditto
10327
10328         * bus/services.c (bus_services_list): NULL-terminate returned array
10329
10330         * bus/driver.c (bus_driver_send_service_lost)
10331         (bus_driver_send_service_acquired): send messages from driver to a
10332         specific client to the client's unique name, not to the broadcast
10333         service.
10334
10335         * dbus/dbus-message.c (decode_header_data): reject messages that
10336         contain no name field
10337         (_dbus_message_get_client_serial): rename to
10338         dbus_message_get_serial and make public
10339         (_dbus_message_set_serial): rename from set_client_serial
10340         (_dbus_message_set_reply_serial): make public
10341         (_dbus_message_get_reply_serial): make public
10342
10343         * bus/connection.c (bus_connection_foreach): allow stopping
10344         iteration by returning FALSE from foreach function.
10345
10346         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10347         (dbus_connection_free_preallocated_send)
10348         (dbus_connection_preallocate_send): new API for sending a message
10349         without possibility of malloc failure.
10350         (dbus_connection_send_message): rename to just
10351         dbus_connection_send (and same for whole function family)
10352
10353         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10354
10355         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10356
10357         * bus/activation.c: handle/return errors
10358
10359         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10360
10361         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10362         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10363         (_dbus_result_from_errno): move to this file
10364
10365 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10366
10367         * dbus/dbus-marshal.c:
10368         (_dbus_marshal_set_string):
10369         Take a length argument so we can marshal the correct string
10370         length.
10371
10372         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10373         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10374         (_dbus_marshal_test):
10375         * dbus/dbus-marshal.h:
10376         Add support for marshalling and demarshalling dicts.
10377
10378         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10379         Add support for TYPE DICT.
10380
10381         * dbus/dbus-message.c: (set_string_field):
10382         Adjust header padding.
10383
10384         (dbus_message_append_args_valist), (dbus_message_append_dict),
10385         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10386         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10387         (check_message_handling), (check_have_valid_message):
10388         * dbus/dbus-message.h:
10389         Add functions for setting and getting dicts.
10390
10391         * dbus/dbus-protocol.h:
10392         Add DBUS_TYPE_DICT.
10393
10394         * dbus/dbus.h:
10395         Add dbus-dict.h
10396
10397         * doc/dbus-specification.sgml:
10398         Add information about how dicts are marshalled.
10399
10400         * test/data/invalid-messages/dict-with-nil-value.message:
10401         * test/data/invalid-messages/too-short-dict.message:
10402         * test/data/valid-messages/dict-simple.message:
10403         * test/data/valid-messages/dict.message:
10404         Add sample messages containing dicts.
10405
10406 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10407
10408         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10409
10410 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10411
10412         * dbus/Makefile.am:
10413         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10414         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10415         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10416         (dbus_dict_set_double), (dbus_dict_set_string),
10417         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10418         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10419         (dbus_dict_set_string_array), (_dbus_dict_test):
10420         * dbus/dbus-dict.h:
10421         Fix according to comments from Havoc.
10422
10423 2003-03-06  Michael Meeks  <michael@server.home>
10424
10425         * configure.in: if we don't have kde-config, disable have_qt.
10426
10427 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10428
10429         * dbus/Makefile.am:
10430         Add dbus-dict.[ch]
10431
10432         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10433         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10434         (dbus_dict_remove), (dbus_dict_get_value_type),
10435         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10436         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10437         (dbus_dict_put_double), (dbus_dict_put_string),
10438         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10439         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10440         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10441         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10442         (dbus_dict_get_double), (dbus_dict_get_string),
10443         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10444         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10445         (dbus_dict_get_string_array), (_dbus_dict_test):
10446         * dbus/dbus-dict.h:
10447         Add DBusDict implementation
10448
10449         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10450         * dbus/dbus-test.h:
10451         Add _dbus_dict_test
10452
10453 2003-03-04  Havoc Pennington  <hp@pobox.com>
10454
10455         * test/data/auth/*: adapt to changes
10456
10457         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10458         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10459         userid
10460
10461         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10462         more stuff from being in a context name, to make the protocol
10463         simpler to deal with
10464
10465         * dbus/dbus-errors.c (dbus_error_has_name): new function
10466         (dbus_error_is_set): new function
10467
10468         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10469         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10470
10471         * dbus/dbus-connection.c (dbus_connection_flush): also read
10472         messages during a flush operation
10473
10474         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10475
10476 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10477
10478         * configure.in: Check for gethostbyname on Solaris.
10479
10480         * dbus/dbus-transport.c: (_dbus_transport_open):
10481         Remove duplicate "tcp" entry.
10482
10483         * doc/dbus-specification.sgml:
10484         Clarify some things.
10485
10486 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10487
10488         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10489         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10490         (_dbus_keyring_test):
10491         * dbus/dbus-md5.c: (_dbus_md5_compute):
10492         * dbus/dbus-sha.c: (_dbus_sha_compute):
10493         Plug memory leaks.
10494
10495 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10496
10497         * README: Add some things.
10498
10499 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10500
10501         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10502         after case DBUS_TYPE_BOOELAN.
10503
10504 2003-03-02  Havoc Pennington  <hp@pobox.com>
10505
10506         * test/break-loader.c (randomly_set_extreme_ints): add test that
10507         sets really huge and small integers
10508
10509         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10510         that length of boolean array fits in the string, and that
10511         string has room for boolean value in single-bool case.
10512
10513         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10514         optional value to "ALIGN" command which is what to fill the
10515         alignment with.
10516
10517         * test/data/valid-messages/no-padding.message: add regression
10518         test for the message padding problem
10519
10520 2003-03-02  Havoc Pennington  <hp@pobox.com>
10521
10522         * dbus/dbus-message.c (decode_header_data): fix to always init
10523         message_padding, from Benjamin Dauvergne
10524
10525 2003-03-02  Havoc Pennington  <hp@pobox.com>
10526
10527         * configure.in: 0.5
10528
10529         * NEWS: Update.
10530
10531 2003-03-01  Joe Shaw  <joe@assbarn.com>
10532
10533         * configure.in: Check for "struct cmsgcred" and try to access its
10534         members for BSD-like unices.
10535
10536         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10537         _dbus_read_credentials_unix_socket().
10538         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10539         read() for reading the credential byte off the unix socket.  Use
10540         struct cmsgcred on systems that support it.
10541
10542 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10543
10544         * glib/Makefile.am:
10545         * configure.in:
10546         Make gthreads-2.0 dependency optional. Don't build thread test if
10547         its not found.
10548
10549 2003-02-27  Havoc Pennington  <hp@pobox.com>
10550
10551         * dbus/dbus-connection.c
10552         (dbus_connection_send_message_with_reply_and_block): fix doh!
10553         doh! doh! bug that resulted in never removing a reply from the
10554         queue, no wonder we called get_reply_serial so much ;-)
10555
10556         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10557         and client serial instead of demarshaling them every time
10558
10559 2003-02-27  Havoc Pennington  <hp@pobox.com>
10560
10561         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10562         more inlined, using dbus-string-private.h, speeds things up
10563         substantially
10564
10565         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10566         when freeing the string
10567         (_dbus_string_steal_data): fix for align offset
10568         (undo_alignment): new function
10569
10570 2003-02-26  Havoc Pennington  <hp@redhat.com>
10571
10572         All kinds of audit fixes from Owen, plus initial attempt to
10573         handle unaligned memory returned from malloc.
10574
10575         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10576         leave room for align_offset and nul byte
10577         (fixup_alignment): function to track an align_offset and
10578         ensure real->str is aligned
10579         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10580         to allow a nul byte plus align offset
10581         (_dbus_string_lock): fix overflow issue
10582         (_dbus_string_init_const_len): add assertions on sanity of len,
10583         assign allocated to be ALLOCATION_PADDING larger than len
10584         (set_length): fixup the overflow handling
10585         (_dbus_string_get_data_len): fix overflow in assertion
10586         (open_gap): detect overflow in size of gap to be opened
10587         (_dbus_string_lengthen): add overflow check
10588         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10589         (_dbus_string_append): add overflow check
10590         (_dbus_string_append_unichar): overflow
10591         (_dbus_string_delete): fix overflow in assertion
10592         (_dbus_string_copy_len): overflow in assertion
10593         (_dbus_string_replace_len): overflows in assertions
10594         (_dbus_string_find): change to implement in terms of
10595         _dbus_string_find_to
10596         (_dbus_string_find_to): assorted fixage
10597         (_dbus_string_equal_c_str): assert c_str != NULL,
10598         fix logic so the function works
10599         (_dbus_string_ends_with_c_str): fix overflow thingy
10600         (_dbus_string_base64_encode): overflow fix
10601         (_dbus_string_validate_ascii): overflow
10602         (_dbus_string_validate_nul): overflow
10603
10604 2003-02-26  Havoc Pennington  <hp@redhat.com>
10605
10606         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10607
10608 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10609
10610         * configure.in:
10611         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10612
10613         * dbus/dbus-connection.c:
10614         * dbus/dbus-connection.h:
10615         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10616         Add dbus_connection_set_wakeup_main_function and use it when queueing
10617         incoming and outgoing messages.
10618
10619
10620         * dbus/dbus-dataslot.c:
10621         Threadsafe usage of DBusDataSlotAllocator
10622
10623         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10624         dbus_new can fail.
10625
10626         * dbus/dbus-server-unix.c:
10627         Add todo comment
10628
10629         * glib/dbus-gmain.c:
10630         Implement the new wakeup functions for glib.
10631
10632         * glib/Makefile.am:
10633         * glib/test-thread-client.c:
10634         * glib/test-thread-server.c:
10635         * glib/test-thread.h:
10636         Initial cut at some thread test code. Not really done yet.
10637
10638 2003-02-26  Havoc Pennington  <hp@pobox.com>
10639
10640         * dbus/dbus-connection.c
10641         (dbus_connection_send_message_with_reply_and_block): fix crash
10642         where we ref'd the outgoing message instead of the returned reply
10643
10644         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10645         at the end of this function, so if we didn't need to read for
10646         authentication, we reinstall it for receiving messages
10647
10648         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10649         a NULL sender for peer-to-peer case
10650
10651         * dbus/dbus-transport-unix.c (check_read_watch): handle
10652         !authenticated case correctly
10653
10654         * glib/dbus-gmain.c: add support for DBusServer
10655
10656         * dbus/dbus-server.c: add data slot support
10657
10658         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10659         return values and handle errors
10660
10661         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10662         DBusConnection
10663
10664         * Doxyfile.in (INPUT): add glib subdir
10665
10666         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10667         setup_with_g_main instead of hookup_with_g_main; write docs
10668
10669 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10670
10671         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10672         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10673         * dbus/dbus-message.c: (dbus_message_append_boolean),
10674         (dbus_message_append_boolean_array),
10675         (dbus_message_get_args_valist), (_dbus_message_test):
10676         * dbus/dbus-message.h:
10677         * doc/dbus-specification.sgml:
10678         Various fixes as pointed out by Havoc.
10679
10680         * test/data/invalid-messages/bad-boolean-array.message:
10681         * test/data/invalid-messages/bad-boolean.message:
10682         Add invalid boolean value test cases.
10683
10684 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10685
10686         * dbus/dbus-internals.c: (_dbus_type_to_string):
10687         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10688         (_dbus_marshal_validate_arg):
10689         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10690         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10691         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10692         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10693         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10694         (dbus_message_iter_get_double),
10695         (dbus_message_iter_get_boolean_array), (message_iter_test):
10696         * dbus/dbus-message.h:
10697         * dbus/dbus-protocol.h:
10698         * doc/dbus-specification.sgml:
10699         * test/data/valid-messages/lots-of-arguments.message:
10700         Add support for boolean and boolean array types.
10701
10702 2003-02-23  Havoc Pennington  <hp@pobox.com>
10703
10704         * dbus/dbus-keyring.c: finish most of this implementation and
10705         simple unit test
10706
10707         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10708         these barf if the error isn't cleared to NULL
10709
10710         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10711         (_dbus_create_directory): new function
10712
10713         * dbus/dbus-errors.c (dbus_set_error): fix warning
10714
10715         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10716         (_dbus_string_hex_decode): new function
10717         (test_hex_roundtrip): test code
10718
10719         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10720
10721         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10722
10723         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10724         the save-to-temp/rename trick to atomically write the new file
10725         (_dbus_string_parse_uint): new function
10726
10727 2003-02-22  Havoc Pennington  <hp@pobox.com>
10728
10729         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10730
10731 2003-02-22  Havoc Pennington  <hp@pobox.com>
10732
10733         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10734         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10735
10736         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10737
10738         * dbus/test/data/sha-1: add US government test suite for SHA-1
10739
10740 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10741
10742         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10743         Make string arrays NULL-terminated.
10744
10745         * dbus/dbus-memory.c: (dbus_free_string_array):
10746         * dbus/dbus-memory.h:
10747         New function for freeing NULL-terminated string arrays.
10748
10749         * dbus/dbus-message-builder.c: (append_quoted_string),
10750         (_dbus_message_data_load):
10751         Add support for array types.
10752
10753         * dbus/dbus-message.c: (check_message_handling):
10754         Add more types as test cases.
10755
10756         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10757         (_dbus_string_parse_double):
10758         Add the start offset to the end offset.
10759
10760         * test/data/valid-messages/lots-of-arguments.message:
10761         New test message with lots of arguments.
10762
10763 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10764
10765         * dbus/dbus-message.c: (dbus_message_append_nil),
10766         (dbus_message_append_int32), (dbus_message_append_uint32),
10767         (dbus_message_append_double), (dbus_message_append_string),
10768         (dbus_message_append_int32_array),
10769         (dbus_message_append_uint32_array),
10770         (dbus_message_append_double_array),
10771         (dbus_message_append_byte_array),
10772         (dbus_message_append_string_array):
10773         Fix all out-of-memory handling in these functions.
10774
10775 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10776
10777         * dbus/dbus-message.c: (dbus_message_append_nil):
10778         Fix a silly.
10779
10780 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10781
10782         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10783         (dbus_message_append_nil), (dbus_message_append_int32_array),
10784         (dbus_message_append_uint32_array),
10785         (dbus_message_append_double_array),
10786         (dbus_message_append_byte_array),
10787         (dbus_message_append_string_array), (dbus_message_get_args_valist),
10788         (dbus_message_iter_get_int32_array),
10789         (dbus_message_iter_get_uint32_array),
10790         (dbus_message_iter_get_double_array),
10791         (dbus_message_iter_get_byte_array),
10792         (dbus_message_iter_get_string_array):
10793
10794         * dbus/dbus-message.h:
10795         Add functions for appending and getting arrays.
10796
10797 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10798
10799         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10800         element size at least 8 bytes, fixes mempool tests on
10801         64-bit machines.
10802
10803 2003-02-20  Alexander Larsson  <alexl@redhat.com>
10804
10805         * dbus/dbus-transport-unix.c (unix_do_iteration):
10806         Unlock the connection mutex during a blocking select call.
10807         Add todo about how we need a way to wake up the select.
10808
10809         * dbus/dbus-connection-internal.h:
10810         * dbus/dbus-connection.c:
10811         Add _dbus_connection_lock and _dbus_connection_unlock.
10812
10813 2003-02-19  Havoc Pennington  <hp@pobox.com>
10814
10815         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10816         Doxyfile.in, not Doxyfile
10817
10818         * dbus/dbus-keyring.c: do some hacking on this
10819
10820         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10821
10822         * dbus/dbus-errors.c (dbus_set_error_const): do not call
10823         dbus_error_init
10824         (dbus_set_error): remove dbus_error_init, check for message ==
10825         NULL *before* we sprintf into it, and add @todo about including
10826         system headers in this file
10827
10828         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10829
10830         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10831
10832         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10833         get various bits of user information based on either username
10834         or user ID
10835         (_dbus_homedir_from_username): new function
10836
10837 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
10838
10839         * configure.in:
10840         Add check for nonposix getpwnam_r
10841
10842         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10843         Align the pool element size to a sizeof (void *) boundary.
10844
10845         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10846         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10847         General Solaris fixes.
10848
10849         * test/data/valid-messages/simplest-manual.message:
10850         Explicitly state that we want little-endian packing.
10851
10852 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
10853
10854         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10855
10856         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10857         Added to create a transport connecting using a tcp/ip socket.
10858
10859         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10860         to a tcp socket at given host and port.
10861         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10862         hostname and port.
10863
10864         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10865
10866         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10867         Added to create a server listening on a TCP/IP socket.
10868
10869 2003-02-19  Havoc Pennington  <hp@pobox.com>
10870
10871         Throughout: mop up all the Doxygen warnings and undocumented
10872         stuff.
10873
10874         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10875         to search any paths.
10876
10877         * dbus/dbus-threads.c: move global mutex initializers to
10878         dbus-internals.h, multiple prototypes was confusing doxygen
10879         besides being kind of ugly
10880
10881         * Doxyfile (PREDEFINED): have Doxygen define
10882         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10883         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10884         (do not abuse the feature! it's for stuff like the autogenerated
10885         macros in dbus-md5.c, not just for things you don't feel like
10886         documenting...)
10887
10888 2003-02-18  Havoc Pennington  <hp@pobox.com>
10889
10890         * dbus/dbus-string.c (_dbus_string_zero): new function
10891
10892         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10893         wrap it in some dbus-friendly API
10894
10895         * dbus/dbus-types.h: add 16-bit types
10896
10897 2003-02-18  Joe Shaw  <joe@assbarn.com>
10898
10899         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10900         credentials from our currently running process.
10901         (get_word): Fix a buglet where we were copying the entire length
10902         instead of relative to our position.
10903
10904         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10905         keys on the stack... it's 640k of data.
10906
10907         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10908         read the credentials byte off the socket, even if we don't have
10909         SO_PEERCRED.
10910         (_dbus_poll): Implement poll() using select() for systems which
10911         don't have it.
10912
10913         * glib/test-dbus-glib.c (main): Print out an error if no
10914         parameters are given.
10915
10916         * test/data/auth/fallback.auth-script: Added.  Tests that a client
10917         can fallback to a secondary auth mechanism if the first fails.
10918
10919 2003-02-18  Havoc Pennington  <hp@pobox.com>
10920
10921         * AUTHORS: add Alex
10922
10923 2003-02-17  Havoc Pennington  <hp@pobox.com>
10924
10925         * doc/dbus-specification.sgml: lots of cosmetic
10926         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10927         env variable to DBUS_BUS_ADDRESS, s/client/application/,
10928         s/server/bus/ (except in authentication section). Add a section
10929         "Message Bus Message Routing"
10930
10931 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
10932
10933         Release 0.4
10934
10935         * NEWS: Update
10936
10937 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10938
10939         * doc/dbus-specification.sgml:
10940         Specification updates.
10941
10942 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10943
10944         * bus/activation.c: (bus_activation_init), (child_setup),
10945         (bus_activation_activate_service):
10946         * bus/activation.h:
10947         * bus/main.c: (main):
10948         Set DBUS_ADDRESS environment variable.
10949
10950         * dbus/dbus-errors.c: (dbus_set_error):
10951         Don't use va_copy since that's a C99 feature.
10952
10953         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10954         (_dbus_spawn_async):
10955         * dbus/dbus-sysdeps.h:
10956         Add child_setup_func to _dbus_spawn_async.
10957
10958         * doc/dbus-specification.sgml:
10959         Update specification.
10960
10961         * test/spawn-test.c: (setup_func), (main):
10962         Fix test.
10963
10964 2003-02-17  Alexander Larsson  <alexl@redhat.com>
10965
10966         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10967         Added todo.
10968
10969 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10970
10971         * doc/.cvsignore:
10972         * doc/Makefile.am:
10973         * doc/dbus-test-plan.sgml:
10974         Add test plan document.
10975
10976         * test/Makefile.am:
10977         Fix distcheck.
10978
10979 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10980
10981         * dbus/dbus-message.c: (decode_header_data),
10982         (_dbus_message_loader_return_buffer):
10983         Set the header padding amount when loading a message.
10984
10985 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10986
10987         * bus/dispatch.c: (send_one_message):
10988         Only send broadcast messages to registered connections.
10989
10990         * dbus/dbus-message.c: (dbus_message_name_is):
10991         * dbus/dbus-message.h:
10992         New convenience function.
10993
10994         * dbus/dbus-transport-debug.c: (do_reading):
10995         Only dispatch one message per run.
10996
10997         * test/Makefile.am:
10998         * test/bus-test.c: (new_connection_callback), (die),
10999         (test_hello_client1_handler), (test_hello_client2_handler),
11000         (test_hello_replies), (main):
11001
11002         * test/bus-test-loop.[ch]:
11003         Add these.
11004
11005 2003-02-16  Havoc Pennington  <hp@pobox.com>
11006
11007         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11008         backward conditional
11009
11010 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11011
11012         * dbus/dbus-connection.c:
11013         Implement sent_message_with_reply. (with_reply_and block is still
11014         busted).
11015         Made dispatch_message not lose message if OOM.
11016
11017         * dbus/dbus-errors.h:
11018         Add NoReply error (for reply timeouts).
11019
11020 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11021
11022         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11023         Actually free keys and values when destroying hashtable.
11024
11025 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11026
11027         * dbus/dbus-auth.c: (client_try_next_mechanism):
11028         Plug a leak.
11029
11030         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11031         Return TRUE if there's no thread implementation around.
11032
11033         * glib/dbus-gmain.c: (free_source),
11034         (dbus_connection_hookup_with_g_main):
11035         Make sure to remove the GSource when the connection is finalized.
11036
11037 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11038
11039         * bus/dispatch.c: (bus_dispatch_message_handler):
11040         * dbus/dbus-errors.h:
11041         Return an error if someone tries to send a message to a service
11042         that doesn't exist.
11043
11044 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11045
11046         * bus/activation.c: (load_directory), (bus_activation_init),
11047         (bus_activation_activate_service):
11048         * bus/activation.h:
11049         * bus/driver.c:
11050         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11051         More work on the activation handling.
11052
11053         * dbus/dbus-errors.h:
11054         Add some error messages
11055
11056         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11057         * dbus/dbus-message.h:
11058         New function that creates an error message.
11059
11060         * dbus/dbus-protocol.h:
11061         Add ACTIVATE_SERVER message.
11062
11063         * dbus/dbus-server-unix.c: (unix_handle_watch),
11064         (_dbus_server_new_for_domain_socket):
11065         Call _dbus_fd_set_close_on_exec.
11066
11067         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11068         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11069         (_dbus_fd_set_close_on_exec):
11070         * dbus/dbus-sysdeps.h:
11071         Add _dbus_fd_set_close_on exec function. Also add function that checks
11072         that all open fds are set to close-on-exec and warns otherwise.
11073
11074         * dbus/dbus-transport-unix.c:
11075         (_dbus_transport_new_for_domain_socket):
11076         Call _dbus_fd_set_close_on_exec.
11077
11078 2003-02-16  Havoc Pennington  <hp@pobox.com>
11079
11080         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11081         allow people to avoid setting SIGPIPE to SIG_IGN
11082         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11083         we've been asked not to
11084
11085 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11086
11087         * dbus/dbus-list.c: (_dbus_list_append_link),
11088         (_dbus_list_prepend_link):
11089         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11090         (dbus_realloc):
11091         Warning fixes.
11092
11093 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11094
11095         * bus/Makefile.am:
11096         * bus/activation.c: (bus_activation_entry_free),
11097         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11098         * bus/activation.h:
11099         * bus/main.c: (main):
11100         Add simple activation support, doesn't work yet though.
11101
11102 2003-02-15   Zack Rusin  <zack@kde.org>
11103
11104         * qt/dbus-qthread.cpp:  small casting fix
11105
11106 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11107
11108         * dbus/dbus-errors.c: (dbus_set_error):
11109         * dbus/dbus-errors.h:
11110         Add a few errors and make dbus_set_error void.
11111
11112         * dbus/dbus-sysdeps.c:
11113         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11114         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11115         * dbus/dbus-sysdeps.h:
11116         Add _dbus_spawn_async.
11117
11118         * test/spawn-test.c: (main):
11119         Test for _dbus_spawn_async.
11120
11121 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11122
11123         * dbus/dbus-internals.h:
11124         Fix build without tests.
11125
11126         * dbus/dbus-list.c: (alloc_link):
11127         Fix a segfault when a malloc fails.
11128
11129         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11130         (dbus_malloc0), (dbus_realloc):
11131         Add support for malloc debugging.
11132
11133 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11134
11135         * dbus/dbus-threads.c:
11136         * dbus/dbus-threads.h:
11137         Add condvars. Remove static mutext from API.
11138         Implement static mutexes by initializing them from threads_init.
11139
11140         * glib/dbus-gthread.c:
11141         * qt/dbus-qthread.cpp:
11142         Update with the thread api changes.
11143
11144
11145         * dbus/dbus-list.c:
11146         * dbus/dbus-list.h:
11147         Turn StaticMutex into normal mutex + init function.
11148         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11149         _dbus_list_append_link, _dbus_list_prepend_link
11150
11151
11152         * dbus/dbus-sysdeps.c:
11153         * dbus/dbus-sysdeps.h:
11154         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11155         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11156
11157         * dbus/dbus-protocol.h:
11158         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11159
11160         * dbus/dbus-message.c:
11161         Make ref/unref atomic.
11162         Fix some docs.
11163
11164         * dbus/dbus-connection-internal.h:
11165         * dbus/dbus-connection.c:
11166         * dbus/dbus-connection.h:
11167         Make threadsafe.
11168         Change _peek to _borrow,_return & _steal_borrowed.
11169         Change disconnect callback to event.
11170         Make dbus_connection_dispatch_messages reentrant.
11171
11172         * dbus/dbus-transport.c:
11173         Don't ref the connection on calls to the transport
11174         implementation.
11175
11176         * dbus/dbus-message-handler.c:
11177         Make threadsafe.
11178
11179         * glib/dbus-gmain.c:
11180         Don't use peek_message anymore
11181
11182         * test/Makefile.am:
11183         * test/debug-thread.c:
11184         * test/debug-thread.h:
11185         Simple thread implementation that asserts() on deadlocks in
11186         single-threaded code.
11187
11188         * test/bus-test.c:
11189         (main) Call debug_threads_init.
11190
11191         * test/watch.c:
11192         Use disconnect message instead of disconnect callback.
11193
11194         * bus/connection.c:
11195         * bus/connection.h:
11196         Don't call dbus_connection_set_disconnect_function. Instead export
11197         bus_connection_disconnect.
11198
11199         * bus/dispatch.c:
11200         Call bus_connection_disconnect when we get a disconnected message.
11201
11202 2003-02-15  Havoc Pennington  <hp@pobox.com>
11203
11204         * dbus/dbus-message.c (dbus_message_new): fool around with the
11205         docs
11206
11207 2003-02-14  Havoc Pennington  <hp@pobox.com>
11208
11209         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11210
11211         * dbus/dbus-memory.c: fail if the debug functions indicate we
11212         should
11213
11214         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11215         (_dbus_decrement_fail_alloc_counter): debug functions to
11216         simulate memory allocation failures
11217
11218 2003-02-14  Havoc Pennington  <hp@pobox.com>
11219
11220         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11221         to DBusError
11222
11223 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11224
11225         * bus/driver.c: (bus_driver_handle_hello):
11226         * bus/driver.h:
11227         * bus/services.c: (bus_service_lookup):
11228         Reorder message sending so we get a more sane order.
11229
11230         * test/bus-test.c: (message_handler):
11231         Fix tyop.
11232
11233 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11234
11235         * bus/driver.c: (bus_driver_send_service_deleted),
11236         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11237         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11238         (bus_driver_send_welcome_message),
11239         (bus_driver_handle_list_services),
11240         (bus_driver_handle_acquire_service),
11241         (bus_driver_handle_service_exists):
11242         * dbus/dbus-bus.c: (dbus_bus_register_client),
11243         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11244         * dbus/dbus-errors.c: (dbus_result_to_string):
11245         * dbus/dbus-errors.h:
11246         * dbus/dbus-message.c: (dbus_message_append_args),
11247         (dbus_message_append_args_valist), (dbus_message_get_args),
11248         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11249         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11250         (dbus_message_iter_get_byte_array),
11251         (dbus_message_iter_get_string_array), (message_iter_test),
11252         (check_message_handling), (_dbus_message_test):
11253         * dbus/dbus-message.h:
11254         * test/bus-test.c: (main):
11255         Change fields to arguments in messages, so that they won't be
11256         confused with header fields.
11257
11258         * glib/test-dbus-glib.c: (main):
11259         Remove append_fields from hello message.
11260
11261 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11262
11263         * dbus/dbus-errors.c:
11264         * dbus/dbus-message.c:
11265         * dbus/dbus-string.c:
11266         Documentation fixes.
11267
11268 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11269
11270         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11271         (remove_timeout):
11272         Implement support for timeouts in dbus-glib.
11273
11274 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11275
11276         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11277         * dbus/dbus-message.c: (process_test_subdir):
11278         * test/break-loader.c: (find_breaks_based_on):
11279         Plug some memory leaks.
11280
11281 2003-02-13  Richard Hult  <rhult@codefactory.se>
11282
11283         * bus/main.c: Fix build.
11284
11285         * dbus/dbus-errors.h:
11286         * dbus/dbus-errors.c: Fix copyright for Anders.
11287
11288 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11289
11290         * bus/Makefile.am:
11291         Add utils.[ch]
11292
11293         * bus/connection.c: (bus_connection_foreach):
11294         Fix a warning.
11295
11296         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11297         (unescape_string), (new_section), (parse_section_start),
11298         (parse_key_value), (report_error), (bus_desktop_file_load),
11299         (bus_desktop_file_get_string):
11300         * bus/desktop-file.h:
11301         Use DBusError for error reporting.
11302
11303         * bus/dispatch.c: (send_one_message),
11304         (bus_dispatch_message_handler):
11305         * bus/driver.c: (bus_driver_send_service_deleted),
11306         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11307         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11308         (bus_driver_send_welcome_message),
11309         (bus_driver_handle_list_services),
11310         (bus_driver_handle_acquire_service),
11311         (bus_driver_handle_service_exists):
11312         * bus/loop.c: (bus_loop_run):
11313         * bus/main.c:
11314         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11315
11316         * bus/utils.c: (bus_wait_for_memory):
11317         * bus/utils.h:
11318         New files with general utility functions.
11319
11320         * dbus/dbus-internals.h:
11321         Remove _DBUS_HANDLE_OOM.
11322
11323 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11324
11325         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11326         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11327         * dbus/dbus-errors.h:
11328         Add DBusError structure.
11329
11330 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11331
11332         * test/data/valid-messages/standard-acquire-service.message:
11333         * test/data/valid-messages/standard-hello.message:
11334         * test/data/valid-messages/standard-list-services.message:
11335         * test/data/valid-messages/standard-service-exists.message:
11336         Add some standard messages.
11337
11338 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11339
11340         * bus/driver.c: (bus_driver_send_welcome_message),
11341         (bus_driver_handle_list_services),
11342         (bus_driver_handle_acquire_service),
11343         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11344         Update for API changes in libdbus.
11345
11346         * dbus/dbus-message.c: (dbus_message_new_reply):
11347         * dbus/dbus-message.h:
11348         Remove the name argument. The spec states that replies shouldn't
11349         have a name.
11350
11351 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11352
11353         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11354         (report_error), (bus_desktop_file_load), (lookup_section),
11355         (lookup_line), (bus_desktop_file_get_raw),
11356         (bus_desktop_file_get_string):
11357         * bus/desktop-file.h:
11358         Some fixes, and new functions for getting a key value from a section.
11359
11360 2003-02-13  Havoc Pennington  <hp@pobox.com>
11361
11362         * test/data/auth/fail-after-n-attempts.auth-script: new test
11363
11364         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11365         reject the client.
11366
11367 2003-02-13  Havoc Pennington  <hp@pobox.com>
11368
11369         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11370         dbus_credentials_match were backward
11371
11372         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11373         NO_CREDENTIALS and ROOT_CREDENTIALS
11374
11375         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11376         into here. Never process more commands after we've reached an
11377         end state; store further data as unused bytes.
11378
11379         * test/data/auth/*: add more auth tests
11380
11381         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11382         command to match exact string and EXPECT_UNUSED to match unused
11383         bytes
11384
11385         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11386
11387 2003-02-12  Havoc Pennington  <hp@pobox.com>
11388
11389         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11390         \r off of popped lines
11391
11392         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11393         scripts
11394
11395         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11396         SEND, append \r\n
11397
11398 2003-02-12  Havoc Pennington  <hp@pobox.com>
11399
11400         * dbus/Makefile.am: remove break-loader from the build, since it
11401         moved.
11402
11403         * configure.in: add --enable-gcov to turn on coverage profiling
11404         flags and disable optimization
11405
11406 2003-02-10  Havoc Pennington  <hp@pobox.com>
11407
11408         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11409         initial cut at test framework for DBusAuth from laptop.
11410         Doesn't quite work yet but it compiles and I need to get
11411         it off the 266mhz laptop. ;-)
11412
11413         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11414         fix a memleak in error case
11415
11416 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11417
11418         * bus/Makefile.am:
11419         * bus/desktop-file.c:
11420         * bus/desktop-file.h:
11421         Add a desktop file parser.
11422
11423 2003-02-11  Zack Rusin  <zack@kde.org>
11424
11425         * qt/message.[h|cpp]: sample implementation
11426         of the KDE wrapper for DBusMessage
11427
11428 2003-02-09  Zack Rusin  <zack@kde.org>
11429
11430         * test/bus-test.c: make_it_compile
11431         * doc/dbus-specification.sgml: minimal semantic fix
11432
11433 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11434
11435         Release 0.3
11436
11437         * NEWS: Update
11438
11439 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11440
11441         * dbus/Makefile.am:
11442         * dbus/dbus-break-loader.c:
11443         * test/Makefile.am:
11444         * test/break-loader.c:
11445         Move dbus-break-loader to test/ and rename it to break-loader.
11446
11447 2003-02-02  Havoc Pennington  <hp@pobox.com>
11448
11449         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11450         for code to manage cookies in your home directory
11451
11452         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11453
11454         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11455         to authenticate, then disconnect the client.
11456
11457 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11458
11459         * dbus/dbus-message.c (dbus_message_append_fields):
11460         Correct docs.
11461
11462 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11463
11464         * doc/dbus-specification.sgml:
11465         Update address format section.
11466
11467 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11468
11469         * test/Makefile.am:
11470         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11471         (message_handler), (new_connection_callback), (loop_quit),
11472         (loop_run), (main):
11473         Add bus test.
11474
11475 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11476
11477         * bus/driver.c: (bus_driver_handle_service_exists):
11478         Simplify the code a bit.
11479
11480         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11481         Fix a silly.
11482
11483 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11484
11485         * bus/Makefile.am:
11486         Add libdbus-daemon.la and link to it.
11487
11488 2003-02-01  James Willcox  <jwillcox@gnome.org>
11489
11490         * bus/driver.c: (bus_driver_handle_own_service):
11491         Actually include the service reply code in the message.
11492
11493 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11494
11495         * bus/driver.c: (bus_driver_handle_service_exists):
11496         Don't unref the incoming message.
11497
11498 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11499
11500         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11501
11502 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11503
11504         * dbus/dbus-server.c: (dbus_server_listen):
11505         * dbus/dbus-transport.c: (_dbus_transport_open):
11506         ifdef out the calls to the debug transport and server.
11507
11508 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11509
11510         * dbus/dbus-watch.c (dbus_watch_get_flags):
11511         Add note in the docs that ERROR or HANGUP won't be returned
11512         and are assumed always on.
11513
11514         * glib/dbus-gmain.c (add_watch):
11515         Always add IO_ERR | IO_HUP
11516
11517         * dbus/dbus-message.h:
11518         Add semicolon after dbus_message_iter_get_string_array().
11519         Makes qt code build again
11520
11521 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11522
11523         * bus/driver.c: (create_unique_client_name),
11524         (bus_driver_handle_hello):
11525         Don't take a name, just use a numeric id to identify
11526         each client.
11527
11528         * dbus/Makefile.am:
11529         * dbus/dbus-bus.c: (dbus_bus_register_client),
11530         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11531         * dbus/dbus-bus.h:
11532         Add new convenience functions for communicating with the bus.
11533
11534         * dbus/dbus-message.h:
11535
11536         * dbus/dbus-protocol.h:
11537         Fix a typo.
11538
11539 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11540
11541         * dbus/dbus-message.c (dbus_message_append_fields):
11542         Add some more doc comments.
11543
11544 2003-02-01  Havoc Pennington  <hp@pobox.com>
11545
11546         * dbus/dbus-break-loader.c (randomly_modify_length): change
11547         a 4-byte value in the message as if it were a length
11548
11549         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11550         execute bit on saved files
11551
11552 2003-02-01  Havoc Pennington  <hp@pobox.com>
11553
11554         * dbus/dbus-break-loader.c (main): new program to find messages
11555         that break the loader.
11556
11557         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11558         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11559
11560         * dbus/dbus-string.c (_dbus_string_set_byte): new
11561
11562 2003-01-31  Havoc Pennington  <hp@pobox.com>
11563
11564         * dbus/dbus-message.c: refactor the test code to be more general,
11565         in preparation for writing a "randomly permute test cases to
11566         try to break the loader" program.
11567
11568 2003-01-31  Havoc Pennington  <hp@pobox.com>
11569
11570         * doc/dbus-specification.sgml: work on the specification
11571
11572         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11573         the protocol version of the message.
11574
11575         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11576         no longer specifies that.
11577         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11578         1/2/3/4)
11579
11580         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11581         "break" for DBUS_TYPE_NIL, remove @todo
11582
11583 2003-01-31  Havoc Pennington  <hp@pobox.com>
11584
11585         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11586         just set_is_error/get_is_error as this is a commonly-used
11587         function, and write docs.
11588
11589 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11590
11591         * dbus/dbus-address.c: (dbus_address_entry_free):
11592         Free key and value lists.
11593
11594         * dbus/dbus-internals.c: (_dbus_type_to_string):
11595         Add the types we didn't have.
11596
11597         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11598         (_dbus_marshal_validate_arg):
11599         Add NIL types.
11600
11601         * dbus/dbus-message.c: (dbus_message_set_sender):
11602         Remove todo about being able to set sender to NULL.
11603
11604         (dbus_message_set_is_error_reply),
11605         (dbus_message_get_is_error_reply):
11606         * dbus/dbus-message.h:
11607         New functions.
11608
11609         * dbus/dbus-protocol.h:
11610         Add error reply flag.
11611
11612         * test/data/valid-messages/opposite-endian.message:
11613         Add NIL type to test.
11614
11615 2003-01-31  Havoc Pennington  <hp@pobox.com>
11616
11617         * doc/dbus-specification.sgml: fully specify the header.  Add
11618         flags and major protocol version, and change header/body len to
11619         unsigned.
11620
11621         * dbus/dbus-message-builder.c (append_saved_length): append length
11622         as uint32
11623
11624         * dbus/dbus-message.c (dbus_message_create_header): change header
11625         length and body length to unsigned. Add the new fields from the
11626         spec
11627         (_dbus_message_loader_return_buffer): unsigned header/body len
11628
11629 2003-01-30  Havoc Pennington  <hp@pobox.com>
11630
11631         * dbus/dbus-auth.c: rework to use only REJECTED, no
11632         MECHANISMS
11633
11634         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11635         use REJECTED, suggested by Mark McLoughlin
11636
11637 2003-01-30  Havoc Pennington  <hp@pobox.com>
11638
11639         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11640         a better way to report errors here. e.g.  "unix address lacks
11641         path" or something. also "no such file" when the path doesn't
11642         exist, etc.
11643
11644         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11645         leaking list nodes
11646         (dbus_parse_address): add @todo about documenting address format,
11647         and allowing , and ; to be escaped
11648
11649 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11650
11651         * dbus/Makefile.am:
11652         Add dbus-address.[ch]
11653
11654         * dbus/dbus-address.c: (dbus_address_entry_free),
11655         (dbus_address_entries_free), (create_entry),
11656         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11657         (dbus_parse_address), (_dbus_address_test):
11658         * dbus/dbus-address.h:
11659         New files for dealing with address parsing.
11660
11661         * dbus/dbus-connection.c:
11662         Document timeout functions.
11663
11664         * dbus/dbus-message.c:
11665         Document dbus_message_new_from_message.
11666
11667         * dbus/dbus-server-debug.c:
11668         Document.
11669
11670         * dbus/dbus-server.c: (dbus_server_listen):
11671         Parse address and use correct server implementation.
11672
11673         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11674         * dbus/dbus-string.h:
11675         New function with test.
11676
11677         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11678         * dbus/dbus-test.h:
11679         Add address tests.
11680
11681         * dbus/dbus-transport-debug.c:
11682         Document.
11683
11684         * dbus/dbus-transport.c: (_dbus_transport_open):
11685         Parse address and use correct transport implementation.
11686
11687 2003-01-30  Havoc Pennington  <hp@pobox.com>
11688
11689         * dbus/dbus-message.c: use message->byte_order instead of
11690         DBUS_COMPILER_BYTE_ORDER throughout.
11691         (dbus_message_create_header): pad header to align the
11692         start of the body of the message to 8-byte boundary
11693
11694         * dbus/dbus-marshal.h: make all the demarshalers take const
11695         DBusString arguments.
11696
11697         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11698         validate message args here, so we don't have to do slow validation
11699         later, and so we catch bad messages as they are incoming. Also add
11700         better checks on header_len and body_len. Also fill in
11701         message->byte_order
11702
11703         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11704         implemented properly)
11705         (_dbus_string_validate_nul): new function to check all-nul
11706
11707         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11708         get_arg_end_pos and remove all validation
11709         (_dbus_marshal_validate_arg): actually do validation here.
11710
11711 2003-01-29  Havoc Pennington  <hp@pobox.com>
11712
11713         * dbus/dbus-message.c (check_message_handling): fix assertion
11714         failure on set_client_serial
11715
11716 2003-01-28  Havoc Pennington  <hp@pobox.com>
11717
11718         * dbus/dbus-server-debug.c: Add doc section comments
11719
11720         * dbus/dbus-transport-debug.c: add doc section comments
11721
11722 2003-01-28  Havoc Pennington  <hp@redhat.com>
11723
11724         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11725         the reverse order from how I had it
11726         (_dbus_string_base64_encode): reverse encoding order. I was
11727         basically byteswapping everything during encoding.
11728
11729 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11730
11731         * dbus/dbus-connection-internal.h:
11732         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11733         (_dbus_connection_remove_timeout):
11734         Add functions for adding and removing timeouts.
11735
11736         * dbus/dbus-message.c: (dbus_message_new_from_message):
11737         Add new function that takes a message and creates an exact
11738         copy of it, but with the refcount set to 1.
11739         (check_message_handling):
11740         Fix build error.
11741
11742         * dbus/dbus-server-protected.h:
11743         * dbus/dbus-server.c: (_dbus_server_init_base),
11744         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11745         (dbus_server_set_timeout_functions):
11746         (_dbus_server_remove_timeout):
11747         New functions so that a server can add and remove timeouts.
11748
11749         (dbus_server_listen):
11750         Add commented out call to dbus_server_debug_new.
11751
11752         * dbus/dbus-timeout.c: (_dbus_timeout_new):
11753         Actually set the handler, doh.
11754
11755         * dbus/dbus-transport.c: (_dbus_transport_open):
11756         Add commented out call to dbus_transport_debug_client_new.
11757
11758         * dbus/Makefile.am:
11759         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11760
11761 2003-01-28  Havoc Pennington  <hp@pobox.com>
11762
11763         * dbus/dbus-message.c (check_message_handling): function to check
11764         on the loaded message, iterates over it etc.
11765
11766 2003-01-28  Havoc Pennington  <hp@pobox.com>
11767
11768         * test/Makefile.am (dist-hook): fix make distdir
11769
11770         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11771
11772 2003-01-27  Havoc Pennington  <hp@pobox.com>
11773
11774         * dbus/dbus-mempool.c (time_for_size): replace printf with
11775         _dbus_verbose
11776
11777         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11778         empty lines; fix the SAVE_LENGTH stuff to be
11779         START_LENGTH/END_LENGTH so it actually works; couple other
11780         bugfixes
11781
11782         * test/Makefile.am (dist-hook): add dist-hook for .message files
11783
11784         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11785         can be constant or locked.
11786         (_dbus_string_free): allow freeing a const string as
11787         documented/intended
11788
11789         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11790
11791         * dbus/dbus-test-main.c (main): take an argument which is the
11792         directory containing test data
11793
11794         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11795         argument to this and load all the messages in test/data/
11796         checking that they can be loaded or not loaded as appropriate.
11797
11798 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
11799
11800         * bus/dispatch.c: (bus_dispatch_message_handler):
11801         Dispatch messages sent to services.
11802
11803         * bus/driver.c: (bus_driver_send_service_deleted),
11804         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11805         (bus_driver_send_service_acquired):
11806         Add helper functions for sending service related messages.
11807
11808         (bus_driver_send_welcome_message):
11809         Send HELLO_REPLY instead of WELCOME.
11810
11811         (bus_driver_handle_list_services):
11812         Send LIST_SERVICES_REPLY instead of SERVICES.
11813
11814         (bus_driver_handle_own_service),
11815         (bus_driver_handle_service_exists):
11816         New message handlers.
11817
11818         (bus_driver_handle_message):
11819         Invoke new message handlers.
11820
11821         (bus_driver_remove_connection):
11822         Don't remove any services here since that's done automatically
11823         by bus_service_remove_owner now.
11824
11825         * bus/driver.h:
11826         New function signatures.
11827
11828         * bus/services.c: (bus_service_add_owner):
11829         Send ServiceAcquired message if we're the only primary owner.
11830
11831         (bus_service_remove_owner):
11832         Send ServiceAcquired/ServiceLost messages.
11833
11834         (bus_service_set_prohibit_replacement),
11835         (bus_service_get_prohibit_replacement):
11836         Functions for setting prohibit replacement.
11837
11838         (bus_service_has_owner):
11839         New function that checks if a connection is in the owner queue of
11840         a certain service.
11841
11842         * bus/services.h:
11843         Add new function signatures.
11844
11845         * dbus/dbus-list.c: (_dbus_list_test):
11846         Add tests for _dbus_list_remove_last and traversing the list backwards.
11847
11848         * dbus/dbus-list.h:
11849         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11850         go any further, so return NULL then.
11851
11852         * dbus/dbus-protocol.h:
11853         Add new messages, service flags and service replies.
11854
11855 2003-01-26  Havoc Pennington  <hp@pobox.com>
11856
11857         * dbus/dbus-message-builder.c: implement, completely untested.
11858
11859         * test/data/*: add data to be used in testing.
11860         ".message" files are our simple loadable text format.
11861         ".message-raw" will be binary dumps of messages.
11862
11863         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11864
11865 2003-01-26  Havoc Pennington  <hp@pobox.com>
11866
11867         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11868
11869         * dbus/dbus-errors.c (dbus_result_to_string): add
11870         file errors
11871
11872         * dbus/dbus-message-builder.c: new file, will contain code to load
11873         up messages from files. Not implemented yet.
11874
11875 2003-01-26  Havoc Pennington  <hp@pobox.com>
11876
11877         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11878         the sender by setting to NULL
11879
11880 2003-01-26  Havoc Pennington  <hp@pobox.com>
11881
11882         The unit tests pass, but otherwise untested.  If it breaks, the
11883         tests should have been better. ;-)
11884
11885         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11886         the connection.
11887
11888         * dbus/dbus-message.c: redo everything so we maintain
11889         message->header as the only copy of the various fields.
11890         This avoids the possibility of out-of-memory in some cases,
11891         for example dbus_message_lock() can't run out of memory anymore,
11892         and avoids extra copying. Figured I may as well go ahead and do
11893         this since it was busted for dbus_message_lock to not return
11894         failure on OOM, and dbus_message_write_header was totally
11895         unchecked for OOM. Also fixed some random other bugs.
11896
11897         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11898         that strings are nul-terminated. Also, end_pos can be equal
11899         to string length just not greater than, I think.
11900         (_dbus_marshal_set_int32): new function
11901         (_dbus_marshal_set_uint32): new function
11902         (_dbus_marshal_set_string): new function
11903
11904         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11905         a warning, init timeout_list to NULL
11906         (dbus_connection_send_message): don't use uninitialized variable
11907         "serial"
11908
11909         * dbus/dbus-string.c (_dbus_string_replace_len): new function
11910
11911 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11912
11913         * bus/driver.c: (bus_driver_handle_hello),
11914         (bus_driver_send_welcome_message):
11915         Plug leaks
11916
11917 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11918
11919         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11920         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11921         (dbus_connection_unref):
11922         * dbus/dbus-marshal.c: (_dbus_marshal_test):
11923         * dbus/dbus-message.c: (dbus_message_unref),
11924         Plug memory leaks.
11925
11926         (dbus_message_get_fields):
11927         Remove debugging printout.
11928
11929         (_dbus_message_loader_return_buffer):
11930         Don't store the header string.
11931
11932         (_dbus_message_test):
11933         Plug leaks.
11934
11935 2003-01-26  Richard Hult  <rhult@codefactory.se>
11936
11937         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11938         the file descriptor list, since it can change under us.
11939
11940 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11941
11942         * glib/dbus-gmain.c: (dbus_connection_prepare),
11943         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11944         (remove_watch), (dbus_connection_hookup_with_g_main):
11945         Rewrite the glib handling to use its own GSource instead of a
11946         GIOChannel so we can catch messages put in the queue while waiting
11947         for a reply.
11948
11949 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11950
11951         * bus/Makefile.am:
11952         * bus/connection.c: (connection_disconnect_handler),
11953         (connection_watch_callback), (bus_connection_setup):
11954         * bus/dispatch.c: (send_one_message),
11955         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11956         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11957         * bus/dispatch.h:
11958         * bus/driver.c: (bus_driver_send_service_deleted),
11959         (bus_driver_send_service_created), (bus_driver_handle_hello),
11960         (bus_driver_send_welcome_message),
11961         (bus_driver_handle_list_services), (bus_driver_remove_connection),
11962         (bus_driver_handle_message):
11963         * bus/driver.h:
11964         Refactor code, put the message dispatching in its own file. Use
11965         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11966         is disconnected.
11967
11968 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11969
11970         * dbus/dbus-internals.h:
11971         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11972
11973         * dbus/dbus-message.c: (dbus_message_get_sender):
11974         * dbus/dbus-message.h:
11975         Implement dbus_message_get_sender.
11976
11977         * dbus/dbus-protocol.h:
11978         Add message and service defines.
11979
11980 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11981
11982         * dbus/dbus-connection.c: (dbus_connection_send_message):
11983         * dbus/dbus-message-internal.h:
11984         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11985         (dbus_message_write_header):
11986         Remove _dbus_messag_unlock and don't set the client serial on a
11987         message if one already exists.
11988
11989 2003-01-24  Havoc Pennington  <hp@pobox.com>
11990
11991         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
11992         list_pool
11993
11994         * bus/driver.c (bus_driver_handle_list_services): fix a leak
11995         on OOM
11996
11997 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11998
11999         * dbus/dbus-list.c: (alloc_link), (free_link):
12000         Use a memory pool for the links.
12001
12002 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12003
12004         * bus/connection.c: (bus_connection_foreach):
12005         * bus/connection.h:
12006         Add new bus_connection_foreach function.
12007
12008         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12009         Add function that broadcasts a message to all clients.
12010
12011         (bus_driver_send_service_created), (bus_driver_handle_hello),
12012         (bus_driver_send_welcome_message),
12013         (bus_driver_handle_list_services), (bus_driver_message_handler):
12014         Implement functions that take care of listing services, and notifying
12015         clients when new services are created.
12016
12017         * bus/services.c: (bus_services_list):
12018         * bus/services.h:
12019         Add new function that returns an array of strings with the currently
12020         registered services.
12021
12022         * glib/dbus-glib.h:
12023         * glib/dbus-gmain.c:
12024         Update copyright year.
12025
12026 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12027
12028         * dbus/dbus-connection.c: (dbus_connection_send_message):
12029         Unlock the message in case it was sent earlier.
12030
12031         (dbus_connection_send_message_with_reply_and_block):
12032         Remove the reply message from the list.
12033
12034         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12035         Set array_len and new_pos correctly.
12036
12037         (_dbus_marshal_test):
12038         Remove debug output.
12039
12040         * dbus/dbus-message-internal.h:
12041         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12042         New function that returns the reply serial.
12043
12044         (_dbus_message_unlock):
12045         New function that unlocks a message and resets its header.
12046
12047         (dbus_message_append_string_array),
12048         (dbus_message_get_fields_valist),
12049         (dbus_message_iter_get_field_type),
12050         (dbus_message_iter_get_string_array),
12051         (dbus_message_get_fields),
12052         (dbus_message_append_fields_valist):
12053         Handle string arrays.
12054
12055         (dbus_message_set_sender):
12056         Make this function public since the bus daemon needs it.
12057
12058         (decode_header_data):
12059         Set the reply serial to -1 initially.
12060
12061         * dbus/dbus-message.h:
12062         Add dbus_message_set_sender.
12063
12064 2003-01-24  Havoc Pennington  <hp@pobox.com>
12065
12066         * doc/dbus-specification.sgml: add some stuff
12067
12068 2003-01-22  Havoc Pennington  <hp@pobox.com>
12069
12070         * doc/dbus-specification.sgml: Start to document the protocol.
12071
12072 2003-01-22  Havoc Pennington  <hp@pobox.com>
12073
12074         * dbus/dbus-connection.c
12075         (dbus_connection_send_message_with_reply_and_block): add some @todo
12076
12077         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12078
12079 2003-01-21  Havoc Pennington  <hp@pobox.com>
12080
12081         (patch untested because can't compile)
12082
12083         * bus/driver.c (create_unique_client_name): make this function
12084         never recycle client names. Also, caller should initialize
12085         the DBusString.
12086
12087         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12088
12089 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12090
12091         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12092         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12093         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12094         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12095         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12096         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12097         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12098         * dbus/dbus-marshal.h:
12099         * dbus/dbus-protocol.h:
12100         Add support for marshalling and demarshalling integer, double
12101         and string arrays.
12102
12103 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12104
12105         * bus/Makefile.am:
12106         Add driver.[ch]
12107
12108         * bus/connection.c: (connection_disconnect_handler):
12109         Remove the connection from the bus driver's list.
12110
12111         (connection_watch_callback): Dispatch messages.
12112
12113         (free_connection_data): Free connection name.
12114
12115         (bus_connection_setup): Add connection to the bus driver's list.
12116         (bus_connection_remove_owned_service):
12117         (bus_connection_set_name), (bus_connection_get_name):
12118         Add functions for setting and getting the connection's name.
12119
12120         * bus/connection.h:
12121         Add function headers.
12122
12123         * bus/driver.c: (create_unique_client_name),
12124         (bus_driver_handle_hello_message),
12125         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12126         (bus_driver_add_connection), (bus_driver_remove_connection):
12127         * bus/driver.h:
12128         * bus/main.c:
12129         * bus/services.c: (bus_service_free):
12130         * bus/services.h:
12131         New file that handles communication and registreation with the bus
12132         itself.
12133
12134 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12135
12136         * dbus/dbus-connection.c: (dbus_connection_send_message):
12137         Add a new client_serial parameter.
12138
12139         (dbus_connection_send_message_with_reply):
12140         Remove a @todo since we've implemented the blocking function.
12141
12142         (dbus_connection_send_message_with_reply_and_block):
12143         New function that sends a message and waits for a reply and
12144         then returns the reply.
12145
12146         * dbus/dbus-connection.h:
12147         Add new functions.
12148
12149         * dbus/dbus-errors.c: (dbus_result_to_string):
12150         * dbus/dbus-errors.h:
12151         Add new DBUS_RESULT.
12152
12153         * dbus/dbus-message-internal.h:
12154         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12155         (_dbus_message_set_sender), (dbus_message_write_header),
12156         (dbus_message_new_reply), (decode_header_data),
12157         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12158         * dbus/dbus-message.h:
12159         Add new functions that set the reply serial and sender.
12160         Also marshal and demarshal them correctly and add test.
12161
12162         * dbus/dbus-protocol.h:
12163         Add new DBUS_MESSAGE_TYPE_SENDER.
12164
12165         * glib/dbus-glib.h:
12166         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12167         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12168         (dbus_connection_hookup_with_g_main):
12169         * glib/test-dbus-glib.c: (main):
12170         Rewrite to use GIOChannel and remove the GSource crack.
12171
12172         * test/echo-client.c: (main):
12173         * test/watch.c: (check_messages):
12174         Update for changed APIs
12175
12176 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12177
12178         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12179
12180         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12181         Create a DBusTimeoutList.
12182         (dbus_connection_set_timeout_functions): Add new function to
12183         set timeout callbacks
12184
12185         * dbus/dbus-connection.h: Add public DBusTimeout API.
12186
12187         * dbus/dbus-message.c: (dbus_message_get_service):
12188         * dbus/dbus-message.h:  New function.
12189
12190         * dbus/dbus-server.c: Fix small doc typo.
12191
12192         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12193
12194 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12195
12196         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12197         of the string, just as long as specified.
12198
12199 2003-01-19  Havoc Pennington  <hp@pobox.com>
12200
12201         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12202         new function
12203
12204         * dbus/dbus-server.c (dbus_server_set_max_connections)
12205         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12206         keep track of current number of connections, and add API for
12207         setting a max (but haven't implemented enforcing the max yet)
12208
12209 2003-01-18  Havoc Pennington  <hp@pobox.com>
12210
12211         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12212         reading/writing if read_watch != NULL or write_watch != NULL.
12213
12214         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12215         the message loader code to actually load message->header and
12216         message->body into the newly-created message.
12217
12218         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12219         in OOM case
12220
12221         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12222         (dbus_connection_get_max_message_size)
12223         (dbus_connection_set_max_live_messages_size)
12224         (dbus_connection_get_max_live_messages_size): implement some
12225         resource limitation functions
12226
12227         * dbus/dbus-resources.c: new file implementing some of the
12228         resource limits stuff
12229
12230         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12231         missing docs, add @todo to handle OOM etc.
12232
12233         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12234         docs
12235
12236 2003-01-18  Havoc Pennington  <hp@pobox.com>
12237
12238         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12239         connection if it hasn't been already.
12240
12241         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12242         replace with DisconnectFunction.
12243
12244 2003-01-18  Havoc Pennington  <hp@pobox.com>
12245
12246         Building --disable-verbose-mode --disable-asserts --disable-tests
12247         cuts the library from 112K to 45K or so
12248
12249         * configure.in: check for varargs macro support,
12250         add --enable-verbose-mode, --enable-asserts.
12251
12252         * dbus/dbus-internals.h (_dbus_assert): support
12253         DBUS_DISABLE_ASSERT
12254         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12255
12256 2003-01-18  Havoc Pennington  <hp@pobox.com>
12257
12258         * dbus/dbus-test.c: include config.h so that tests actually run
12259
12260         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12261         so the failure mode when that assumption fails will be plenty
12262         obvious.
12263
12264 2003-01-18  Havoc Pennington  <hp@pobox.com>
12265
12266         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12267
12268         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12269         the distribution
12270
12271         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12272         since we don't want to use those in make check
12273
12274 2003-01-15  Havoc Pennington  <hp@redhat.com>
12275
12276         Release 0.2
12277
12278         * NEWS: update
12279
12280 2003-01-15  Havoc Pennington  <hp@redhat.com>
12281
12282         * test/Makefile.am: fix so that test source code ends up in the
12283         distribution on make distcheck
12284
12285 2003-01-15  Havoc Pennington  <hp@redhat.com>
12286
12287         Release 0.1.
12288
12289         * NEWS: update
12290
12291 2003-01-15  Havoc Pennington  <hp@redhat.com>
12292
12293         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12294         fix build when --disable-tests
12295
12296         * Makefile.am (EXTRA_DIST): put HACKING in here
12297
12298         * HACKING: document procedure for making a tarball release.
12299
12300 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12301
12302         * bus/connection.c: (connection_error_handler),
12303         (bus_connection_setup):
12304         * bus/main.c: (main):
12305         Make sure that the DBusConnectionData struct is NULLed
12306         out to prevent a segfault.
12307
12308         * dbus/dbus-errors.c: (dbus_result_to_string):
12309         * dbus/dbus-errors.h:
12310         * dbus/dbus-message.c: (dbus_message_get_fields),
12311         (dbus_message_get_fields_valist), (_dbus_message_test):
12312         * dbus/dbus-message.h:
12313         Make dbus_message_get_fields return a result code so we can
12314         track invalid fields as well as oom.
12315
12316 2003-01-11  Havoc Pennington  <hp@pobox.com>
12317
12318         * configure.in: change --enable-test/--enable-ansi action-if-given
12319         to enable_foo=$enableval instead of enable_foo=yes
12320
12321 2003-01-08  Havoc Pennington  <hp@pobox.com>
12322
12323         * dbus/dbus-string.c (_dbus_string_align_length): new function
12324
12325         * dbus/dbus-test-main.c: move main() for test app here
12326         * dbus/dbus-test.c
12327         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12328         symbol to run tests, because dbus-test isn't in the main
12329         library
12330
12331         Code review nitpicks.
12332
12333         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12334         for people with narrow emacs ;-). Assert client_serial was filled
12335         in. Assert message->name != NULL.
12336         (dbus_message_append_fields): have "first_field_type" arg separate
12337         from va list, needed for C++ binding that also uses varargs IIRC
12338         and helps with type safety
12339         (dbus_message_new): add @todo about using DBusString to store
12340         service/name internally
12341         (dbus_message_new): don't leak ->service and ->name on OOM later
12342         in the function
12343         (dbus_message_unref): free the service name
12344         (dbus_message_get_fields): same change to varargs
12345         i.e. first_field_type
12346         (_dbus_message_loader_return_buffer): assert that the message data
12347         is aligned (if not it's a bug in our code). Put in verbose griping
12348         about why we set corrupted = TRUE.
12349         (decode_header_data): add FIXME that char* is evil.  Was going to
12350         add FIXME about evil locale-specific string.h strncmp, but just
12351         switched to wacky string-as-uint32 optimization. Move check for
12352         "no room for field name" above get_const_data_len() to avoid
12353         assertion failure in get_const_data_len if we have trailing 2
12354         bytes or the like. Check for service and name fields being
12355         provided twice. Don't leak service/name on error. Require field
12356         names to be aligned to 4 bytes.
12357
12358         * dbus/dbus-marshal.c: move byte swap stuff to header
12359         (_dbus_pack_int32): uscore-prefix
12360         (_dbus_unpack_int32): uscore-prefix
12361         (_dbus_unpack_uint32): export
12362         (_dbus_demarshal_string): add @todo complaining about use of
12363         memcpy()
12364         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12365         handling allowing corrupt data to go unchecked
12366
12367 2003-01-08  Havoc Pennington  <hp@redhat.com>
12368
12369         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12370         to the select() as needed for authentication. (should be using
12371         _dbus_poll() not select, but for another day)
12372
12373         * dbus/dbus.h: include dbus/dbus-protocol.h
12374
12375 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12376
12377         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12378         dbus-connection.h
12379
12380 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12381
12382         * dbus/dbus-internals.c: (_dbus_type_to_string):
12383         New function that returns a string describing a type.
12384
12385         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12386         * dbus/dbus-marshal.h:
12387         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12388         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12389         (dbus_message_iter_get_byte_array):
12390         * dbus/dbus-message.h:
12391         Add new convenience functions for appending and getting message fields.
12392         Also add demarshalling routines for byte arrays.
12393
12394 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12395
12396         * dbus/dbus-connection-internal.h:
12397         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12398         (_dbus_connection_get_next_client_serial),
12399         (dbus_connection_send_message):
12400         * dbus/dbus-internals.h:
12401         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12402         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12403         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12404         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12405         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12406         (_dbus_verbose_bytes), (_dbus_marshal_test):
12407         * dbus/dbus-marshal.h:
12408         * dbus/dbus-message-internal.h:
12409         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12410         (dbus_message_write_header), (_dbus_message_lock),
12411         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12412         (dbus_message_get_name), (dbus_message_append_int32),
12413         (dbus_message_append_uint32), (dbus_message_append_double),
12414         (dbus_message_append_string), (dbus_message_append_byte_array),
12415         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12416         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12417         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12418         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12419         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12420         (decode_header_data), (_dbus_message_loader_return_buffer),
12421         (message_iter_test), (_dbus_message_test):
12422         * dbus/dbus-message.h:
12423         * dbus/dbus-protocol.h:
12424         * dbus/dbus-test.c: (main):
12425         * dbus/dbus-test.h:
12426         * glib/test-dbus-glib.c: (message_handler), (main):
12427         * test/echo-client.c: (main):
12428         * test/watch.c: (check_messages):
12429         Make messages sendable and receivable for real.
12430
12431 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12432
12433         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12434         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12435         * dbus/dbus-message.c: (dbus_message_append_int32),
12436         (dbus_message_append_uint32), (dbus_message_append_double),
12437         (dbus_message_append_string), (dbus_message_append_byte_array):
12438         Handle OOM restoration.
12439
12440 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12441
12442         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12443         (_dbus_demarshal_string), (_dbus_marshal_test):
12444         * dbus/dbus-marshal.h:
12445         * dbus/dbus-message.c: (dbus_message_get_name),
12446         Document these functions.
12447
12448         (dbus_message_append_int32), (dbus_message_append_uint32),
12449         (dbus_message_append_double), (dbus_message_append_string),
12450         (dbus_message_append_byte_array):
12451         * dbus/dbus-message.h:
12452         Add functions for adding message fields of different types.
12453
12454         * dbus/dbus-protocol.h:
12455         Add the different types.
12456
12457 2003-01-05  Havoc Pennington  <hp@pobox.com>
12458
12459         * bus/connection.c: implement routines for handling connections,
12460         first thing is keeping a list of owned services on each connection
12461         and setting up watches etc.
12462
12463         * bus/services.c: implement a mapping from service names to lists
12464         of connections
12465
12466         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12467
12468         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12469         to use static mutexes for global data
12470
12471         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12472         collection of functions to set/get application-specific data
12473         on the DBusConnection.
12474
12475 2003-01-04  Havoc Pennington  <hp@pobox.com>
12476
12477         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12478         (_dbus_poll): new function
12479
12480         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12481         copied from GLib
12482
12483         * bus/loop.c: initial code for the daemon main loop
12484
12485 2003-01-04  Havoc Pennington  <hp@pobox.com>
12486
12487         * test/watch.c (error_handler): make it safe if the error handler
12488         is called multiple times (if we s/error handler/disconnect
12489         handler/ we should just guarantee it's called only once)
12490
12491         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12492         error handler on disconnect (it's quite possible we should
12493         just change the error handler to a "disconnect handler," I'm
12494         not sure we have any other meaningful errors)
12495
12496         * configure.in: check for getpwnam_r
12497
12498         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12499         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12500         mechanism as in SASL spec, using socket credentials
12501
12502         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12503         (_dbus_send_credentials_unix_socket): new function
12504
12505         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12506         dbus_accept()
12507         (_dbus_write): only check errno if <0 returned
12508         (_dbus_write_two): ditto
12509
12510 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12511
12512         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12513         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12514         (_dbus_marshal_test):
12515         * dbus/dbus-marshal.h:
12516         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12517         to _dbus_marshal_utf8_string. Also fix some tests.
12518
12519 2002-12-28  Harri Porten  <porten@kde.org>
12520
12521         * configure.in: added check for C++ compiler and a very cheesy
12522         check for the Qt integration
12523
12524         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12525
12526         * qt/Makefile.am: added
12527
12528         * qt/.cvsignore: added
12529
12530         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12531         latter, added #ifdef QT_THREAD_SUPPORT guard.
12532
12533         * dbus/Makefile.am: added missing headers for make dist
12534
12535 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12536
12537         * dbus/Makefile.am: fixup export-symbols-regex.
12538
12539 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12540
12541         * acinclude.m4: Add this file and put the
12542         PKG_CHECK_MODULE macro in it.
12543
12544 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12545
12546         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12547         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12548         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12549         (_dbus_marshal_test):
12550         Make the demarshalling routines align the pos argument.
12551         Add string marshalling tests and fix the obvious bugs
12552         discovered.
12553
12554 2002-12-26  Havoc Pennington  <hp@pobox.com>
12555
12556         * dbus/dbus-auth.c: fixes fixes fixes
12557
12558         * dbus/dbus-transport-unix.c: wire up support for
12559         encoding/decoding data on the wire
12560
12561         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12562         (_dbus_auth_decode_data): append to target string
12563         instead of nuking it.
12564
12565 2002-12-26  Havoc Pennington  <hp@pobox.com>
12566
12567         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12568         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12569         doh
12570
12571         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12572         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12573         now). Main point is because I wanted unpack_uint32 to implement
12574         _dbus_verbose_bytes
12575         (_dbus_verbose_bytes): new function
12576
12577         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12578
12579         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12580         mechanism to handle a corrupt message stream
12581         (_dbus_message_loader_new): fix preallocation to only prealloc,
12582         not prelengthen
12583
12584         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12585         (_dbus_string_test): enhance tests for copy/move and fix the
12586         functions
12587
12588         * dbus/dbus-transport-unix.c: Hold references in more places to
12589         avoid reentrancy problems
12590
12591         * dbus/dbus-transport.c: ditto
12592
12593         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12594         leak reference count in no-message case
12595
12596         * test/watch.c (do_mainloop): handle adding/removing watches
12597         during iteration over the watches. Also, ref the connection/server
12598         stored on a watch, so we don't try to mangle a destroyed one.
12599
12600         * dbus/dbus-transport-unix.c (do_authentication): perform
12601         authentication
12602
12603         * dbus/dbus-auth.c (get_state): add a state
12604         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12605         (_dbus_auth_get_unused_bytes): append the unused bytes
12606         to the passed in string, rather than prepend
12607
12608         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12609         the auth conversation DBusAuth
12610
12611         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12612         (_dbus_transport_new_for_domain_socket): when creating a
12613         transport, pass in whether it's a client-side or server-side
12614         transport so we know which DBusAuth to create
12615
12616 2002-12-03  Havoc Pennington  <hp@pobox.com>
12617
12618         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12619         _after_ finalizing the derived members
12620         (unix_connection_set): unref watch if we fail to add it
12621
12622         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12623         transport first, so that the connection owned by the
12624         transport will be valid as the transport finalizes.
12625
12626         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12627         if necessary, and remove watches from the connection.
12628
12629         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12630
12631 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12632
12633         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12634         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12635         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12636         (_dbus_marshal_test):
12637         * dbus/dbus-marshal.h:
12638         Add string marshal functions and have the demarshal functions
12639         return the new position.
12640
12641 2002-12-25  Havoc Pennington  <hp@pobox.com>
12642
12643         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12644         it is a simple protocol that just maps directly to SASL.
12645
12646         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12647         initial implementation, not actually used yet.
12648
12649         * dbus/dbus-string.c (_dbus_string_find): new function
12650         (_dbus_string_equal): new function
12651         (_dbus_string_base64_encode): new function
12652         (_dbus_string_base64_decode): new function
12653
12654 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12655
12656         * dbus/Makefile.am:
12657         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12658         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12659         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12660         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12661         * dbus/dbus-marshal.h:
12662         * dbus/dbus-protocol.h:
12663         * dbus/dbus-test.c: (main):
12664         * dbus/dbus-test.h:
12665         Add un-optimized marshalling/demarshalling routines.
12666
12667 2002-12-25  Harri Porten  <porten@kde.org>
12668
12669         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12670
12671 2002-12-24  Zack Rusin  <zack@kde.org>
12672
12673         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12674         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12675         main loop stuff
12676
12677 2002-12-24  Havoc Pennington  <hp@pobox.com>
12678
12679         * glib/dbus-gthread.c: fix include
12680
12681         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12682         I think glib API needs to change, though, as you don't
12683         want to use DBusMessageFunction, you want to use the
12684         DBusMessageHandler object. Probably
12685         dbus_connection_open_with_g_main_loop()
12686         and dbus_connection_setup_g_main_loop() or something like that
12687         (but think of better names...) that just create a connection
12688         that has watch/timeout functions etc. already set up.
12689
12690         * dbus/dbus-connection.c
12691         (dbus_connection_send_message_with_reply): new function just to
12692         show how the message handler helps us deal with replies.
12693
12694         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12695
12696         * dbus/dbus-string.c (_dbus_string_test): free a string that
12697         wasn't
12698
12699         * dbus/dbus-hash.c: use memory pools for the hash entries
12700         (rebuild_table): be more paranoid about overflow, and
12701         shrink table when we can
12702         (_dbus_hash_test): reduce number of sprintfs and write
12703         valid C89. Add tests for case where we grow and then
12704         shrink the hash table.
12705
12706         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12707
12708         * dbus/dbus-connection.c (dbus_connection_register_handler)
12709         (dbus_connection_unregister_handler): new functions
12710
12711         * dbus/dbus-message.c (dbus_message_get_name): new
12712
12713         * dbus/dbus-list.c: fix docs typo
12714
12715         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12716         an object representing a handler for messages.
12717
12718 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12719
12720         * glib/dbus-glib.h:
12721         * glib/dbus-gthread.c: (dbus_gthread_init):
12722         Don't use the gdbus prefix for public functions.
12723
12724 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12725
12726         * Makefile.am:
12727         * configure.in:
12728         Add GLib checks and fixup .pc files
12729
12730         * glib/Makefile.am:
12731         * glib/dbus-glib.h:
12732         * glib/dbus-gmain.c: (gdbus_connection_prepare),
12733         (gdbus_connection_check), (gdbus_connection_dispatch),
12734         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12735         (dbus_connection_gsource_new):
12736         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12737         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12738         * glib/test-dbus-glib.c: (message_handler), (main):
12739         Add GLib support.
12740
12741 2002-12-15  Harri Porten  <porten@kde.org>
12742
12743         * autogen.sh: check for libtoolize before attempting to use it
12744
12745         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12746         struct.
12747
12748         * .cvsignore: ignore more stamp files
12749
12750         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12751
12752         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12753         without make install.
12754
12755 2002-12-15  Havoc Pennington  <hp@pobox.com>
12756
12757         * dbus/dbus-threads.c: add thread stubs that a higher library
12758         layer can fill in. e.g. the GLib wrapper might fill them in with
12759         GThread stuff. We still need to use this thread API to
12760         thread-safe-ize the library.
12761
12762 2002-12-12  Havoc Pennington  <hp@pobox.com>
12763
12764         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12765         below new interfaces and include fewer system headers.
12766
12767         * dbus/dbus-sysdeps.c (_dbus_read): new function
12768         (_dbus_write): new function
12769         (_dbus_write_two): new function
12770         (_dbus_connect_unix_socket): new function
12771         (_dbus_listen_unix_socket): new function
12772
12773         * dbus/dbus-message-internal.h: change interfaces to use
12774         DBusString
12775
12776 2002-12-11  Havoc Pennington  <hp@pobox.com>
12777
12778         * dbus/dbus-types.h: add dbus_unichar
12779
12780         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12781
12782         * dbus/dbus-connection.c (dbus_connection_send_message): return
12783         TRUE on success
12784
12785         * dbus/dbus-transport.c: include dbus-watch.h
12786
12787         * dbus/dbus-connection.c: include dbus-message-internal.h
12788
12789         * HACKING: add file with coding guidelines stuff.
12790
12791         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12792         handling here, for security purposes (as in vsftpd). Not actually
12793         using this class yet.
12794
12795         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12796         system/libc usage here, as in vsftpd, for ease of auditing (and
12797         should also simplify portability). Haven't actually moved all the
12798         system/libc usage into here yet.
12799
12800 2002-11-25  Havoc Pennington  <hp@pobox.com>
12801
12802         * dbus/dbus-internals.c (_dbus_verbose): fix to not
12803         always print the first verbose message.
12804
12805 2002-11-24  Havoc Pennington  <hp@pobox.com>
12806
12807         * test/echo-client.c, test/echo-server.c: cheesy test
12808         clients.
12809
12810         * configure.in (AC_CHECK_FUNCS): check for writev
12811
12812         * dbus/dbus-message.c (_dbus_message_get_network_data): new
12813         function
12814
12815         * dbus/dbus-list.c (_dbus_list_foreach): new function
12816
12817         * dbus/dbus-internals.c (_dbus_verbose): new function
12818
12819         * dbus/dbus-server.c, dbus/dbus-server.h: public object
12820         representing a server that listens for connections.
12821
12822         * dbus/.cvsignore: create
12823
12824         * dbus/dbus-errors.h, dbus/dbus-errors.c:
12825         public API for reporting errors
12826
12827         * dbus/dbus-connection.h, dbus/dbus-connection.c:
12828         public object representing a connection that
12829         sends/receives messages. (Same object used for
12830         both client and server.)
12831
12832         * dbus/dbus-transport.h, dbus/dbus-transport.c:
12833         Basic abstraction for different kinds of stream
12834         that we might read/write messages from.
12835
12836 2002-11-23  Havoc Pennington  <hp@pobox.com>
12837
12838         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12839         _DBUS_INT_MAX
12840
12841         * dbus/dbus-test.c (main): add list test, and include
12842         dbus-test.h as intended
12843
12844         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12845         (_dbus_hash_table_remove_int): return value indicates
12846         whether the entry existed to remove
12847
12848         * dbus/dbus-list.c: add linked list utility class,
12849         with docs and tests
12850
12851         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12852         array sometimes.
12853
12854 2002-11-23  Havoc Pennington  <hp@pobox.com>
12855
12856         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12857         DBUS_END_DECLS to nothing, that should fix this once and for all
12858
12859         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12860
12861         * dbus/dbus-message.c, dbus/dbus-hash.c:
12862         add some missing @brief
12863
12864 2002-11-23  Havoc Pennington  <hp@pobox.com>
12865
12866         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12867         to avoid confusing Doxygen
12868
12869         * dbus/dbus-hash.c: @} not }@
12870
12871         * dbus/dbus-message.c (struct DBusMessage): split out
12872         internals docs
12873
12874 2002-11-23  Havoc Pennington  <hp@pobox.com>
12875
12876         * configure.in: pile on more warning flags if using gcc
12877
12878         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12879         to document static functions
12880
12881         * configure.in: add summary to end of configure so it
12882         looks nice and attractive
12883
12884         * dbus/dbus-hash.c: finish implementation and write unit
12885         tests and docs
12886
12887         * configure.in: add --enable-tests to enable unit tests
12888
12889         * dbus/dbus-test.c: test program to run unit tests
12890         for all files in dbus/*, initially runs a test for
12891         dbus-hash.c
12892
12893         * dbus/dbus-internals.h: file to hold some internal utility stuff
12894
12895 2002-11-22  Havoc Pennington  <hp@redhat.com>
12896
12897         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12898         "ported" away from Tcl
12899
12900         * dbus/dbus-types.h: header for types such as dbus_bool_t
12901
12902 2002-11-22  Havoc Pennington  <hp@redhat.com>
12903
12904         * dbus/dbus.h: fixups for doc warnings
12905
12906         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12907         macros
12908         (QUIET): make it quiet so we can see warnings
12909
12910         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12911
12912 2002-11-22  Havoc Pennington  <hp@redhat.com>
12913
12914         * Makefile.am: include "Doxyfile" target in all-local
12915
12916         * configure.in: generate the Doxyfile
12917
12918         * Doxyfile.in: move Doxyfile here, so we can use
12919         configure to generate a Doxyfile with the right
12920         version number etc.
12921
12922 2002-11-22  Havoc Pennington  <hp@redhat.com>
12923
12924         * dbus/dbus-message.c: move inline docs into .c file
12925
12926         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12927         so all docs are under doc/
12928         (MAN_EXTENSION): generate man pages. Use extension
12929         ".3dbus" which matches ".3qt" on my system,
12930         I guess this is OK, I don't know really.
12931         (FILE_PATTERNS): look for .c files not .h, makes sense
12932         for plain C I think
12933
12934 2002-11-22  Havoc Pennington  <hp@pobox.com>
12935
12936         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12937         because any app can be a server, and any app can be a client,
12938         the bus is a special kind of server.
12939
12940 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
12941
12942         * Doxyfile : adding. Still needs Makefile rules to be generated
12943         automatically (just run "doxygen" in the toplevel dir for now to
12944         generate docs)
12945
12946         * dbus/dbus-message.h : Adding sample docs (javadoc since
12947         resembles gtk-doc a little more)
12948
12949         * dbus/dbus.h : Adding sample docs
12950
12951 2002-11-21  Havoc Pennington  <hp@redhat.com>
12952
12953         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12954         so we can allow ourselves to include files directly,
12955         instead of having to use dbus.h
12956
12957         * dbus/dbus.h: fill in
12958
12959         * dbus/dbus-message.h: sketch out a sample header file.
12960         Include griping if you include it directly instead of
12961         via dbus.h
12962
12963         * dbus/dbus-macros.h: new file with macros for extern "C",
12964         TRUE/FALSE, NULL, etc.
12965
12966         * doc/file-boilerplate.c: put include guards in here
12967
12968 2002-11-21  Havoc Pennington  <hp@redhat.com>
12969
12970         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12971
12972         * COPYING: include the GPL as well, and license code
12973         under both AFL and GPL.
12974
12975 2002-11-21  Havoc Pennington  <hp@redhat.com>
12976
12977         * acconfig.h: get rid of this
12978
12979         * autogen.sh (run_configure): add --no-configure option
12980
12981         * configure.in: remove AC_ARG_PROGRAM to make
12982         autoconf complain less. add AC_PREREQ.
12983         add AC_DEFINE third arg.
12984
12985 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
12986
12987         * doc/Makefile.am:
12988         Fix references so we can distcheck.
12989
12990 2002-11-21  Havoc Pennington  <hp@redhat.com>
12991
12992         * Initial module creation
12993