2006-01-27 Robert McQueen <robot101@debian.org>
[platform/upstream/dbus.git] / ChangeLog
1 2006-01-27  Robert McQueen  <robot101@debian.org>
2
3         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
4         by me and Rob Taylor to add a simple_free function to D-Bus map
5         and collection types, which allows those types which can be freed
6         with a GDestroyNotify (such as GHashTables and GArrays, but not
7         GPtrArrays) to be stored as the values in hashtables.
8
9         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
10         Patch by Rob Taylor to add nested dicts to the glib tests to check
11         the above code works, and appears not to leak when called repeatedly.
12
13 2006-01-27  Robert McQueen  <robot101@debian.org>
14
15         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
16         to free a D-Bus allocated string with dbus_free () instead of
17         g_free ().
18
19 2006-01-27  Iain Holmes  <iain@openedhand.com>
20
21         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
22         method from being called multiple times.
23
24 2006-01-19  Robert McQueen  <robot101@debian.org>
25
26         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
27         <rob.taylor@collabora.co.uk> to add support for generating bindings
28         to arrays that are represented as GPtrArrays rather than GArrays (ie
29         size-variable things, such as strings, objects, structs, etc).
30
31 2006-01-05  Robert McQueen  <robot101@debian.org>
32
33         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
34         <ricardo.kekki@movial.fi> to make it possible to inherit from
35         DBusGProxy, by splitting the DBusGProxy struct into a public part and
36         a private part, and moving the setting of the DBusGProxyManager into a
37         connection property, allowing proper GObject construction.
38
39 2006-01-05  Robert McQueen  <robot101@debian.org>
40
41         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
42         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
43         annotations when generating glib client bindings.
44
45 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
46
47         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
48
49         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
50
51 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
52
53         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
54
55 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
56
57         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
58
59 2005-12-19  Ross Burton  <ross@openedhand.com>
60
61         * doc/dbus-tutorial.xml:
62         Document the Glib client-side bindings, and list all possible annotations.
63
64 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
65
66         * dbus/bus.c (dbus_bus_release_name): Add documentation
67
68 2005-12-06  Robert McQueen  <robot101@debian.org>
69
70         * python/service.py: s/sucessful/successful/ so we're allocating to
71         and reading from the same variable. Oops.
72
73 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
74
75         * Released 0.60
76
77 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
78
79         * test/qt/Makefile.am: build from srcdir
80
81         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
82         Note - this code is wrong and needs to be fixed by the Qt binding
83         developers.  The flags should be treated as bitfields and not enums.
84
85         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
86
87 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
88
89         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
90           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
91           in production code
92
93 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
94
95         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
96         method for getting messages off the bus in the absence of a
97         mainloop.  This method is much like 
98         dbus_connection_read_write_dispatch except it does not dispatch
99         the messages to a registered filter function.  Instead it
100         allows a developer to process messages by directly popping
101         them off the bus.
102
103 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
104
105         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
106         the parser to continue instead of returning error
107         (bus_desktop_file_load): Do not free parser data when
108         parse_section_start or parse_key_value fails because it was 
109         already freed by parser_free (patch from Carlos Garcia Campos  
110         <carlosgc at gnome.org>)
111
112 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
113
114         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
115         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
116         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
117         test/test-segfault.c, test/test-utils.c,
118         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
119         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
120         Various cleanup of dead code and compiler warnings (patch from
121         Kjartan Maraas <kmaraas at gnome.org>) 
122
123 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
124
125         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
126         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
127
128 2005-11-27  Robert McQueen  <robot101@debian.org>
129
130         * python/dbus_bindings.pyx: Repair my previous commit which reverted
131         part of the preceding one. Oops. Merge patch by Johan Hedberg
132         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
133         on big-endian platforms.
134
135         * test/python/test-client.py: Add some 16-bit integers to the test
136         values.
137
138 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
139
140         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
141         method return message for property getters
142
143 2005-11-27  Robert McQueen  <robot101@debian.org>
144
145         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
146         with type v of an instance of dbus.Variant(foo, type='x') caused
147         it to be boxed twice before sending over the bus.
148
149         * python/dbus_bindings.pyx, python/service.py,
150         test/python/test-client.py: Update the constants for the new
151         request_name flags, and update comments/test cases now that queueing
152         is the default action.
153
154 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
155
156         * configure.in:
157         - Change version to 0.60 for impending release
158         - upped the sonames because of ABI and API breakage
159
160 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
161
162         * configure.in: Add test/name-test/Makefile to the generated
163         Makefile list
164
165         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
166         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
167         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
168         not to queue an ower if it can't be the primary owner
169
170         * bus/bus.h: Add new internal BusOwner struct
171
172         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
173         to bus_registry_ensure and don't set the prohibit_replacement flag
174         since they are now set per BusOwner and not per name.
175         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
176         that returns the list of connections in a name's connection queue
177         
178         * bus/services.c (struct BusService): remove prohibit_replacement field
179         (struct BusOwner): new struct for keeping track of queued connections
180         and their associated flags for the queue
181         (struct BusRegistry): add a BusOwner memory pool
182         (bus_registry_new): initialize the BusOwner memory pool
183         (bus_registry_unref): free the BusOwner memory pool
184         (_bus_service_find_owner_link): new internal method for
185         searching the queue for a specific connection
186         (bus_owner_set_flags): new method for adding setting the flags on a
187         bus owner
188         (bus_owner_new): new method that creates a BusOwner object from the
189         pool and sets its flags
190         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
191         (bus_registry_ensure): Add the flags parameter
192         (bus_registry_acquire_service): Switch from using raw connections to
193         using the BusOwner struct
194         Add new state machine for dealing with the new set of flags
195         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
196         cancel_ownership, free_ownership_cancel_data, 
197         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
198         restore_ownership, free_ownership_restore_data, 
199         add_restore_ownership_to_transaction): Switch to using BusOwner 
200         instead of raw connections
201         (bus_service_add_owner): Add flags parameter
202         Switch to using BusOwner instead of raw connections
203         Add state machine for dealing with the new set of flags
204         (bus_service_swap_owner): Swaps the first and second owners in the
205         queue.  Used to make sure proper signals are sent when a service looses 
206         or gains primary ownership.  We never insert an owner at the top of the
207         queue.  Instead we insert it in the second position and then swap.
208         (bus_service_remove_owner): Remove the owner from the queue sending
209         out the NameLost and NameOwnerChanged signals if the we were the 
210         primary owner
211         (bus_service_get_primary_owners_connection): New method that extracts
212         the connection from the primary owner
213         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
214         connection
215         (bus_service_get_allow_replacement): Changed from the old 
216         bus_service_get_prohibit_replacement method.  Checks the flags of the 
217         primary owner and returns if it can be replaced or not
218         (bus_service_set_prohibit_replacement): removed
219         (bus_service_has_owner): returns TRUE if and owner with
220         the specified connection exists in the queue
221         
222         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
223         method that only compiles if tests are enabled.  Allows us to get the 
224         unique name of a connection so we can check it against the queue when
225         doing regression tests
226
227         * bus/activation.c (bus_activation_send_pending_auto_activate),
228         bus/dispatch.c (bus_dispatch),  
229         bus/driver.c (bus_driver_handle_get_service_owner, 
230         bus_driver_handle_get_connection_unix_user, 
231         bus_driver_handle_get_connection_unix_process_id,
232         bus_driver_handle_get_connection_selinux_security_context),
233         bus/signals.c (connection_is_primary_owner): 
234         use bus_service_get_primary_owners_connection instead of
235         bus_service_get_primary_owner
236
237         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
238         _dbus_listen_unix_socket): Calculate the length of the socket
239         path and use that instead of using a fixed length which was
240         causing socket names to contain many trailing Nul bytes.
241
242         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
243         (dbus_g_method_get_sender): New method for extracting the sender 
244         from a DBusGMethodInvocation
245         (dbus_g_method_return_get_reply): changed name to 
246         dbus_g_method_get_reply
247         (dbus_g_method_return_send_reply): changed name to
248         dbus_g_method_send reply
249
250         * doc/dbus-specification.xml: New docs that describe how the new
251         queueing system works and talks about the changes to the how
252         we specify socket names
253
254         * glib/examples/example-service.c, 
255         glib/examples/example-signal-emitter.c,
256         glib/examples/statemachine/statemachine-server.c:
257         Changed the RequestName flags to the new system
258
259         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
260         regression test suite for testing various states of the new
261         queueing system
262         
263 2005-11-15  Robert McQueen  <robot101@debian.org>
264
265         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
266         Taylor to add two methods, dbus_g_method_return_get_reply and
267         dbus_g_method_return_send_reply, to allow you to get the reply
268         message from a DBusGMethodInvocation, append arbitrary stuff to it,
269         and send it. The GLib bindings can't marshal a return value of
270         something like a(s) if the array is empty - ultimately they should be
271         made to heed the signature of the out arguments as the Python bindings
272         now can, but this is a workable interim solution which might have
273         other applications.
274
275 2005-11-15  Robert McQueen  <robot101@debian.org>
276
277         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
278         method to org.freedesktop.DBus to release a bus name or give up
279         waiting in the queue for it.
280
281         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
282         dbus_bus_release_name method to send the ReleaseName method calls.
283         Add constants for the return values to dbus/dbus-shared.h.
284
285         * doc/dbus-specification.xml: Document the new ReleaseName method
286         in the specification.
287
288         * python/dbus_bindings.pyx: Add a low-level python binding for the
289         release name method.
290
291         * python/exceptions.py, python/service.py: Make freeing BusName
292         objects release the name. Add a NameExistsException, and fix a
293         bug with creating UnknownMethodException.
294
295         * test/python/test-client.py: Add tests for freeing BusName
296         objects causing names to be released.
297
298 2005-11-14  Robert McQueen  <robot101@debian.org>
299
300         * python/service.py: Include the traceback in the error reply when we
301         send an exception over the bus. _BEST_ _PATCH_ _EVER_
302
303 2005-11-14  David Zeuthen  <davidz@redhat.com>
304
305         Patch from Timo Hoenig <thoenig@suse.de>.
306
307         * bus/bus.c: I've recently investigated why the automatic reload
308         of configuration files does not work as expected.
309
310         Currently, reloading configuration files does only work when
311         running dbus-daemon with --nodaemon.  If we are running as daemon
312         we're hitting a dnotify bug once we fork the process.
313
314         We're initializing the dnotify fds before calling fork().  Once
315         the child process forked it does still have the fds (and they
316         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
317         getting SIGIO as changes are made to the configuration files.
318
319         The attached patch moves the initialization of the dnotify fds to
320         process_config_postinit().  This is safe for all current code
321         paths and solves the dnotify disfunction.  If we're running
322         dbus-daemon as daemon the fds for dnotify are now being
323         initialized after fork() for the child process.
324
325         * configure.in: The current configure.in check for dnotify probes
326         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
327         match for 'xlinux', too. Additionally I have adapted the configure
328         option's style to match with the others.
329
330 2005-11-14  Robert McQueen  <robot101@debian.org>
331
332         * python/decorators.py, python/service.py: Add a new argument to the
333         dbus.service.method decorator called sender_keyword, which if set,
334         specifies the name of an argument which will be provided the bus
335         name of the method caller.
336
337         * test/python/test-client.py, test/python/test-service.py: Add a
338         method and test to check the sender_keyword functionality.
339
340 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
341
342         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
343         empty reply so blocking calls don't block forever (Patch from Sjoerd 
344         Simons <sjoerd at luon.net>)
345
346         * AUTHORS: Add Robert McQueen for his work on the Python
347         Bindings and other parts of D-Bus
348
349 2005-11-07  Robert McQueen  <robot101@debian.org>
350
351         * python/decorators.py: Change emit_signal function to use the
352         signature annotation of the signal when marhsalling the arguments from
353         the service. Fix a bug where the code checking signature length
354         against argument length referenced the wrong variable.
355
356         * python/introspect_parser.py: Avoid adding the type signature of
357         signal arguments to any methods which occur after them in the
358         introspection data (!) by making the parser a little more careful
359         about its current state.
360
361         * python/service.py: Remove debug prints from last commit (again :D).
362
363         * test/python/test-client.py, test/python/test-service.py: Add test
364         signals with signature decorators to test the strict marshalling code
365         gives errors at the right time. Could do with checking the signals
366         actually get emitted too, given that the test does nothing with
367         signals at the moment...
368
369 2005-11-07  Robert McQueen  <robot101@debian.org>
370
371         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
372         instances to stop madness of creating new instances representing
373         the same bus connection all the time, rendering any tracking of
374         match rules and bus names quite meaningless. Caught a bug where
375         the private argument to SessionBus() and friends was being passed
376         in as use_default_mainloop by mistake. Still some problems with
377         multiple dbus_binding.Connection instances representing the same
378         low-level connection (eg when you use both SessionBus() and
379         StarterBus() in same process), but it's a lot better now than it
380         was.
381
382         * python/dbus_bindings.pyx: Add constants with the return values
383         for bus_request_name().
384
385         * python/service.py: Store bus name instances in a per-dbus.Bus cache
386         and retrieve the same instances for the same name, so deletion can be
387         done with refcounting. Also now throws some kind of error if you
388         don't actually get the name you requested, unlike previously...
389
390         * test/python/test-client.py: Add tests for instance caching of buses
391         and bus name objects.
392
393 2005-11-04  Robert McQueen  <robot101@debian.org>
394
395         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
396         marshalling of boolean values. Add some booleans to the values in
397         the test client.
398
399         * python/decorators.py, python/service.py: Add an 'async_callbacks'
400         argument to the dbus.service.method decorator, which allows you to
401         name arguments to take two callback functions for replying with
402         return values or an exception.
403
404         * test/python/test-client.py, test/python/test-service.py: Add test
405         case using asynchronous method reply functions, both return values and
406         errors, and from within both the function itself and from a mainloop
407         callback.
408
409         * python/decorators.py, python/service.py: Perform checking that the
410         number of method/signal arguments matches the number of types in the
411         signature at class loading time, not when you first introspect the
412         class.
413
414         * python/service.py: Remove debug print left by the last commit.
415
416 2005-11-03  Robert McQueen  <robot101@debian.org>
417
418         * python/service.py: Heavy refactoring of method invocation, with
419         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
420         in favour of a new _message_cb that uses seperate functions for
421         looking up the method to call, marshalling the return values, and
422         sending exceptions as errors, and is easier to follow as a
423         consequence.  Fixes some corner cases about returning things that
424         don't match your declared out_signature, allows exceptions to define
425         _dbus_error_name and have it be sent over the bus as the error name,
426         and paves the way for cool stuff like heeding the message no reply
427         flag, asynchronous method implementations, informing the method of the
428         sender, and including backtraces in the error messages.
429
430         * test/python/test-client.py: Catch and print exceptions thrown in the
431         async callback tests, rather than passing them to the low-level
432         bindings to be ignored in a noisy and frustrating manner.
433
434 2005-11-03  Robert McQueen  <robot101@debian.org>
435
436         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
437         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
438         tweak others to be consistent.
439
440         * test/python/test-client.py: Tweak output of testInheritance.
441
442 2005-10-29  Robert McQueen  <robot101@debian.org>
443
444         * python/service.py: Major changes to allow multiple inheritance
445         from classes that define D-Bus interfaces:
446         
447          1. Create a new Interface class which is the parent class of
448             Object, and make the ObjectType metaclass into InterfaceType.
449         
450          2. Patch written with Rob Taylor to replace use of method_vtable
451             with code that walks the class's __MRO__ (method resolution order)
452             to behave like Python does when invoking methods and allow
453             overriding as you'd expect. Code is quite tricky because
454             we have to find two methods, the one to invoke which has the
455             right name and isn't decorated with the /wrong/ interface,
456             and the one to pick up the signatures from which is decorated
457             with the right interface.
458         
459             The same caveats apply as to normal multiple inheritance -
460             this has undefined behaviour if you try and inherit from two
461             classes that define a method with the same name but are
462             decorated with different interfaces. You should decorate
463             your overriding method with the interface you want.
464         
465          3. Replace grungy introspection XML generation code in the metaclass
466             with dictionaries that cope correctly with multiple inheritance
467             and the overriding of methods. This also uses the signature
468             decorations to provide correct introspection data, including
469             the debut appearance of the types of your return values. :D
470
471         * test/python/test-client.py, test/python/test-service.py: Add a test
472         case to try invoking an method that overrides one inherited from a
473         D-Bus interface class.
474
475 2005-10-29  Robert McQueen  <robot101@debian.org>
476
477         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
478         Add checking for the end of struct character when marshalling a
479         struct in MessageIter.append_strict.
480
481         * python/examples/example-service.py,
482         python/examples/gconf-proxy-service.py,
483         python/examples/gconf-proxy-service2.py: Update to use gobject
484         mainloop directly rather than appearing to depend on gtk.
485
486         * python/test/test-client.py, python/test/test-server.py: Remove
487         obsolete and broken test scripts for old bindings. We have up to date
488         and working tests in test/python/.
489
490 2005-10-29  Robert McQueen  <robot101@debian.org>
491
492         * python/decorators.py: Add optional arguments to the method and
493         signal decorators to allow you to specify the signature of arguments
494         and return values. Preserve the doc strings of signal functions in the
495         decorated version, for pydoc and friends.
496
497         * python/dbus_bindings.pyx, python/proxies.py: Replace the
498         parse_signature_block function with an iterable dbus.Signature()
499         type. Fix a bug in MessageIter.append_strict where you could append
500         anything by claiming it was a string.
501
502         * python/service.py: Use the out_signature decoration on methods to
503         marshal return values, meaning you no longer require dbus.Array()
504         or dbus.Dictionary() to indicate the type when returning empty
505         arrays or dictionaries. Fix a bug where exceptions which are defined
506         in __main__ are not turned into error replies.
507
508         * test/python/test-client.py, test/python/test-service.py: Add test
509         for correct marshalling of return values according to out_signature.
510         Fix a bug in the async call test where the error_handler is missing a
511         self argument.
512
513 2005-10-29  Robert McQueen  <robot101@debian.org>
514
515         * glib/Makefile.am, glib/examples/Makefile.am,
516         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
517         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
518
519         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
520
521         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
522         from Ubuntu by Daniel Silverstone to allow specifying match rules on
523         the command line.
524
525 2005-10-27  Ross Burton  <ross@openedhand.com>
526
527         * dbus/dbus-marshal-header.c:
528         Remove dead code.
529
530         * glib/dbus-gobject.c:
531         Stop compiler warning.
532
533 2005-10-25  Ross Burton  <ross@openedhand.com>
534
535         * dbus/dbus-auth.c:
536         * dbus/dbus-server-unix.c:
537         * dbus/dbus-transport-unix.c:
538         * glib/dbus-gmain.c:
539         * glib/dbus-gobject.c:
540         Add some const keywords.
541
542 2005-10-25  Ross Burton  <ross@openedhand.com>
543
544         * doc/dbus-specification.xml:
545         Document the NoReply annotation.
546
547         * glib/dbus-binding-tool-glib.h:
548         * glib/dbus-binding-tool-glib.c:
549         Respect the NoReply annotation.
550
551 2005-10-24  Robert McQueen <robot101@debian.org>
552
553         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
554         derive from unicode instead of str, and encode/decode UTF-8 when
555         marshalling/unmarshalling bus messages
556
557         * python/introspect_parser.py: encode introspection data as UTF-8
558         before passing the buffer into libxml2
559
560         * test/python/test-client.py: add unicode test strings
561
562         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
563         ignore generated python test files
564
565 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
566
567         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
568         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
569         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
570
571         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
572         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
573         when constructing struct signatures
574
575         * python/_dbus.py (Bus): handle private connections using the
576         private keyword in the constructor. defaults to private=False
577         (Bus::close): new method to close a connection to the bus
578
579         * python/dbus_bindings.pyx (Connection::close): renamed method
580         was previously called disconnect
581         (bus_get): now supports getting a private connection
582
583         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
584         keyword is set to True.  if it is, execute the method without waiting
585         for a reply
586         (ProxyObject::_introspect_execute_queue): new method for executing
587         all the pending methods that were waiting for the introspect to
588         finish.  this is called when introspect either succeeds or fails
589         (ProxyObject::_introspect_error_handler): call queued methods
590
591 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
592
593         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
594         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
595
596         * python/service.py (Object::_message_cb): handle exceptions correctly
597         by sending them over the wire to the calling app.  This makes sure
598         the client returns immediately instead of waiting the 15 seconds to
599         timeout.
600
601         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
602         Add a test to benchmark how long it takes to introspect a service and 
603         call a method which returns a large element (pretty fast)
604
605         * test/python/test-service.py (TestObject::GetComplexArray): new test 
606         method which pushes a lot of data
607
608 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
609
610         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
611         reclaim memory outside of the loop and use del istead of just setting
612         the key to None
613
614 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
615
616         * python/service.py (ObjectType::_reflect_on_signal): Always close
617         signal tag even when there are no arguments
618
619 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
620
621         * configure.in: Set mono, mono-docs and Qt3 to default
622         to no instead of auto when building.  These bindings do not
623         have full time maintainers and will not be supported for the
624         1.0 release.
625
626 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
627
628         patches from Michael Krivoruchko <misha at sun.com>: 
629         
630         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
631         _dbus_connection_message_sent, 
632         _dbus_connection_send_preallocated_unlocked_no_update, 
633         _dbus_connection_pop_message_link_unlocked): handle the case when path 
634         is NULL when calling _dbus_verbose
635
636         * configure.in: check for functions getpeerucred and getpeereid
637
638         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
639         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
640         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
641         Patch was only tested on Solaris 10 x86 so it might be issues
642         with other platforms (i.e. BSDs and MacOSX)
643         
644
645 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
646
647         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
648         instead of marshal basic so we can handle recursive types in a variant
649
650         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
651         in variants
652
653         * test/glib/test-service-glib.c, test-service-glib.xml
654         (my_object_echo_variant [EchoVariant], 
655         my_object_process_variant_of_array_of_ints123
656         [ProcessVariantOfArrayOfInts123]): 
657         Add two test methods
658
659         * python/introspect_parser.py: New module for parsing introspect
660         data.
661
662         * python/dbus_bindings.pyx:
663         (various places): when throwing errors fix to use errormsg instead 
664         of message local variable because Pyrex can get confused with other 
665         message variables (initial patch by Robert McQueen 
666         <robert.mcqueen at collabora.co.uk>)
667         (MessageIter::parse_signature_block): new method for getting the next
668         block in a signiture.
669         (MessageIter::append_strict): new method for appending values strictly
670         using the passed in signature instead of guessing at the type
671         (MessageItter:: append_dict, append_struct, append_array): use 
672         signatures to marshal children if the signature is available
673         
674         * python/exceptions.py (IntrospectionParserException): new exception
675
676         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
677         introspected signatures if available, else we fall back to the
678         old way of doing things.
679         (ProxyObject::_introspect_reply_handler ): parse introspection data
680         
681         * python/service.py (ObjectType::_reflect_on_method): Properly
682         terminate <method> if there are no args in the reflection data
683
684         * test/python/test-client.py: add tests for talking with the GLib
685         test server.  This gives us better coverage for introspection since
686         python to python will always generate arguments as variants.  It also
687         allows us to test the robustness of the GLib bindings and interlanguage
688         communications.
689
690         
691 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
692
693         * bus/driver.c (bus_driver_handle_introspect): Add signals
694         to the introspect data. (patch from Daniel P. Berrange 
695         <dan at berrange.com>)
696
697         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
698         
699         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
700         _dbus_connection_run_builtin_filters): Changed these to
701         be unlock_no_update functions and call 
702         _dbus_connection_send_unlocked_no_update instead of
703         dbus_connection_send to avoid locking errors.
704         
705         * doc/TODO: Removed the make Ping test TODO
706         
707 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
708
709         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
710         We now copy the message from a DBusError and then free 
711         the error object befor throwing the error
712
713         * glib/dbus-glib-tool.c: removed extra comma at the end of the
714         DBusBindingOutputMode enum which was causing a warning.
715         #include <time.h> so using time_t is explicitly defined
716
717 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
718
719         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
720         - dbus/dbus-bus.c
721         (internal_bus_get): new method that take over the heavy lifting
722         of dbus_bus_get and adds the ability to get a private connection
723         to the bus
724         (dbus_bus_get): wrapper to internal_bus_get that provides the same
725         interface as in previous versions
726         (dbus_bus_get_private): new method that is a wrapper to 
727         internal_bus_get to get a private connection to the bus
728
729         - dbus/dbus-bus.h
730         (dbus_bus_get_private): add as a public libdbus interface
731
732         - dbus-1.pc.in: output system_bus_default_address and 
733         sysconfdir variables so apps can use them when compiling
734
735 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
736         * dbus/qt: New Qt bindings
737
738 2005-09-12  Waldo Bastian  <bastian@kde.org>
739
740         * dbus/dbus-marshal-validate.c,
741         doc/dbus-specification.xml, test/Makefile.am,
742         test/test-names.c: allow hyphens in bus names.
743
744 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
745
746         * test/data/auth/fallback.auth-script: we don't
747         retry the EXTERNAL method when we know its going
748         to fail anymore.
749
750 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
751
752         * dbus/dbus-connection-internal.h: rename
753         (add|remove|toggle)_(watch|timeout) to unlocked()
754         
755         * dbus/dbus-connection.c: ditto.
756         
757         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
758         Update some callers for the renaming.
759
760 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
761
762         * dbus/dbus-auth.c: (record_mechanisms): don't
763         retry the first auth mechanism because we know
764         we're just going to get rejected again.
765         
766         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
767         Fix thinko ... and what a nasty little bugger to
768         track down you were ...
769
770         * dbus/dbus-connection.c:
771         (_dbus_connection_add_watch),
772         (_dbus_connection_remove_watch): add note about
773         these needing the connection to be locked.
774         (_dbus_connection_get_dispatch_status_unlocked):
775         set status to DATA_REMAINS when we queue the
776         disconnected message.
777         
778         * bus/dispatch.c:
779         (bus_dispatch): fix warning.
780         (check_existent_service_no_auto_start):
781         Expect ChildSignaled error too.
782         (check_existent_hello_from_self): fix another
783         couple of warnings.
784         
785 2005-09-08  Joe Shaw  <joeshaw@novell.com>
786
787         Patches from James Willcox <snorp@snorp.net>
788
789         * mono/Makefile.am: Add Int16.cs and UInt16.cs
790
791         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
792         support array "out" parameters.
793
794         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
795         for 16-bit int support.
796
797 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
798
799         * Released 0.50
800
801         * Patch from Steve Grubb:
802         - bus/activation.c (bus_activation_service_reload_test): clean up
803         some indentation
804         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
805         - dbus/dbus-message-factory.c (generate_special): fix a couple of
806         buffer overflows in the test suite.  This is non critical because
807         it can not be exploited and this code is only run when doing a 
808         make check.
809
810         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
811         - configure.in: Don't check and link against kdecore, only qt headers
812         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
813         - gcj/org/freedesktop/dbus/Makefile.am:
814         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
815         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
816         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
817         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
818         - tools/Makefile.am: Add platform extentions to binaries 
819         (i.e. .exe on windows)
820
821         * configure.in: 
822         - Make it so if no suitable version of python is found we only 
823         disable building python instead of exiting the configure script
824         - Require version 2.4 of glib for glib bindings
825         - Up version to 0.50
826
827         * python/__init__.py: Sync version with libdbus to (0,50,0)
828         
829 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
830
831         * dbus/dbus-object-tree.c (find_subtree_recurse):
832         a couple of optimizations (bug #710):
833         - do a binary search in the tree
834         - insert a new child at the right place directly, no need for
835           qsort anymore
836         - do the "double alloc" thing when allocating children
837
838 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
839
840         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
841
842         * python/dbus_bindings.pyx: Memory management foo
843         (global): remove hacky _user_data_references global list
844         (GIL_safe_cunregister_function_handler): userdata now stuffed into
845         tuples. Unref user_data
846         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
847         (Connection::__del__): Remove and replace with __dealloc__ method
848         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
849         to keep tuple from being deallocated instead of the global var hack
850         (Connection::register_object_path): Stuff user_data into a tuple.
851         Use Py_INCREF to keep tuple from being deallocated instead of the 
852         global var hack
853         (Connection::register_fallback): Stuff user_data into a tuple.
854         Use Py_INCREF to keep tuple from being deallocated instead of the 
855         global var hack
856         (GIL_safe_pending_call_notification): Don't unref the message
857         because it gets unreffed when going out of scope.  Py_XDECREF
858         the user_data
859         (PendingCall::__del__): Remove and replace with __dealloc__ method
860         (PendingCall::set_notify): ref the pending call because we will
861         need it to stick around for when the notify callback gets called
862         (Message::__del__): Remove and replace with __dealloc__ method
863
864         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
865         gthreads_init to match up with the dbus call
866
867         * python/glib.py (init_threads): Changed to threads_init to match
868         up with gobject.threads_init().  init_threads is kept for backwards
869         compat but will most likely be deprecated in the future
870
871         * test/python/test-client.py: 
872         - revamp to use Python's unittest functionality
873         - add async call tests
874         - setup threads in glib and dbus so we make sure locks are working
875         
876 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
877
878         * python/dbus_bindings.pyx 
879         (_pending_call_notification, cunregister_function_handler, 
880         cmessage_function_handler): All callback functions have been rearranged 
881         to workaround a bug in Pyrex when working with the GIL which is Python's 
882         global lock when dealing with threads.  They have been split into
883         a wrapper function (which assumes the name of the old function) and
884         a _GIL_safe_<function name> function which contains the functionality
885         of the old function.  This ensures that Pyrex does not write code
886         the lock is released.
887         
888
889 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
890
891         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
892         GIL global lock when calling back into Python
893
894 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
895
896         * Release 0.36.2
897
898         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
899
900         * bus/policy.c (bus_policy_allow_user): change default "user is
901         allowed" to be "user has same uid as the bus itself"; any
902         allow/deny rules will override.
903
904         * bus/session.conf.in: don't allow all users, since now by default
905         the user that ran the bus can connect.
906
907 2005-08-26  Colin Walters  <walters@verbum.org>
908
909         * tools/dbus-print-message.c (print_message): Flush stdout
910         after printing a message, so that redirecting to a file, then
911         hitting Ctrl-C works.
912
913 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
914
915         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
916         (EmptyMessage): new class that subclasses Message.  This is a workaround
917         to a Pyrex bug that fails to call __del__ when the Message object goes out
918         of scope.  For some reason subclassing Message fixes this bug
919         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
920         - s/Message(_create=0)/EmptyMessage everywhere else
921         
922         * test/python/test-{server|client}.py: add the python/.libs directory
923         to the lookup path so dbus_bindings and dbus_glib_bindings don't
924         get picked up from the system
925
926 2005-08-25  Colin Walters  <walters@verbum.org>
927
928         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
929         to Ryan Lortie for the suggestion.
930
931 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
932
933         * test/python: Add python regression test
934
935         * configure.in: Add test/python/Makefile
936
937         * test/Makefile.am: Add the python directory to SUBDIRS
938
939 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
940
941         * Release 0.36.1
942
943         * python/_dbus.py: 
944         (Interface::connect_to_signal): propigate keywords for match on args
945         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
946
947         * python/proxies.py (ProxyObject::connect_to_signal):
948         propigate keywords for match on args
949
950         * Makefile.am: point everything to pyexecdir since python borks
951         on multilib
952
953 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
954
955         * Release 0.36
956
957 2005-08-23  Colin Walters  <walters@verbum.org>
958
959         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
960
961 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
962
963         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
964         to fix some wranings. We now use dbus_bindings.DBusConnection instead
965         of defining DBusConnection ourselves.
966
967 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
968
969         * python/dbus.pth: New path file to fix up problems when installing
970         c libraries to lib64 and python files to lib.
971
972         * python/Makefile.am: install dbus.pth in the correct spot
973
974 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
975         * ChangeLog: clean up my last entry a bit
976
977         * doc/introspect.xsl: New stylesheet for converting introspection data
978         into browser renderable xhtml. Contributed by Lennart Poettering.
979
980         * doc/introspect.dtd: Fixups in the introspect format from Lennart
981         Poettering.
982
983         * doc/dbus-tutorial.xml: 
984         - Add Colin Walter to the Authors section for authoring the GLib
985         section
986         - Add descriptions of the new signature and type functionality
987         in the Python complex type mapping section
988         - Add a sidenote on the new args matching functionality in 
989         the Python bindings
990         - Fixed up some of the examples to use the gobject.MainLoop
991         instead of gtk.main
992         
993         * python/_dbus.py:
994         (Bus::_create_args_dict): New. Converts a hash of arg matches
995         to a more useable format
996         (Bus::add_signal_receiver): add a **keywords parameter for catching
997         arg match parameters
998         (Bus::remove_signal_receiver): add a **keywords parameter for catching
999         arg match parameters
1000         
1001         * python/matchrules.py:
1002         (MatchTree::exec_matches): Check for arg matches
1003         (SignalMatchRule::add_args_match): New method
1004         (SignalMatchRule::execute): Added args_list parameter as an optimization
1005         so we don't have to marshal the args more than once
1006         (SignalMatchRule::match_args_from_list): New method that checks to see
1007         if the rule's arg matches match an argument list.  Only arguments
1008         set in the rule are checked.
1009         (SignalMatchRule::match_args_from_rule): New method that checks to see
1010         if the rule's arg matches match another rule's.  All args have to match
1011         in order for this method to return true.  If either rule has more args
1012         then it is not a match.
1013         (SignalMatchRule::is_match): Add args match
1014         (SignalMatchRule::repr): Add args to the final output if they exist
1015
1016 2005-08-17  Ross Burton  <ross@burtonini.com>
1017
1018         * glib/dbus-gproxy.c:
1019         (dbus_g_proxy_call_no_reply): unref the message once sent.
1020         (dbus_g_proxy_call): protect against NULL proxy.
1021
1022 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1023
1024         * python/__init__.py: Version updated (0, 43, 0)
1025         
1026         * python/dbus_bindings.pyx: 
1027         - Fixed type objects to have self passed into __init__
1028         - Added the Variant type
1029         - Add the ability to specify types or signatures for Array, Variant 
1030         and Dictionary
1031         (Connection::send_with_reply_handlers): return a PendingCall object
1032         (_pending_call_notification): handle the case when an error is returned 
1033         without an error message in the body
1034         (MessageIter::get_boolean): return True or False instead of an integer
1035         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1036         and add checks for objects with embeded signatures or types (Array, 
1037         Variant and Dictionary)
1038         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1039         (MessageIter::append_dict): handle embeded types or signatures
1040         (MessageIter::append_array): handle embeded types or signatures
1041         (MessageIter::append_variant): new method
1042         
1043         * python/proxies.py:
1044         (DeferedMethod): New. Dummy executable object used when queuing calls 
1045         blocking on introspection data
1046         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1047         or shorter timeouts for method calls
1048         (ProxyObject): Add first pass at an introspection state machine
1049         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1050         introspection. 
1051         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1052         the usual mechanisms for sending messages.  This is to avoid a deadlock
1053         where the Intospect call would be queued waiting for the Introspect 
1054         call to finish ;-)
1055         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1056         when introspection returns with no error
1057         (ProxyObject::_introspect_error_handler): New.  This method is called 
1058         when introspection encounters an error
1059         (ProxyObject::__getattr__): Code to handle different introspection 
1060         states.  Queue async calls or block blocking calls if we are 
1061         introspecting.  Pass through as normal if we are not or are done with 
1062         introspecting.
1063         
1064         * python/service.py: Import signal and method from decorators.py
1065
1066         * python/types.py: Add Variant type
1067
1068 2005-08-16  Colin Walters  <walters@verbum.org>
1069
1070         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1071         DBusError message is NULL.
1072
1073 2005-08-09  Havoc Pennington  <hp@redhat.com>
1074
1075         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1076         malloc'd copy of the name parameter
1077
1078 2005-08-09  Havoc Pennington  <hp@redhat.com>
1079
1080         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1081         warning if the reply serial is set to 0
1082
1083 2005-08-04  Colin Walters  <walters@verbum.org>
1084
1085         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1086         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1087         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1088         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1089         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1090         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1091         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1092         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1093         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1094         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1095         
1096         Prefix name with _ to ensure they're not exported.  All callers
1097         updated.
1098
1099         * glib/dbus-gvalue.c (typecode_to_gtype)
1100         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1101         (signature_iter_to_g_type_dict)
1102         (signature_iter_to_g_type_array)
1103         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1104         (dbus_gtypes_from_arg_signature):
1105         Move to dbus-gsignature.c.
1106
1107         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1108         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1109         (dbus_binding_tool_output_glib_client): Ditto.
1110
1111         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1112         and dbus-gsignature.h
1113
1114         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1115         unused variable.
1116
1117 2005-08-03  Colin Walters  <walters@verbum.org>
1118
1119         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1120         catch any incompatible changes accidentally made.
1121
1122 2005-08-03  Havoc Pennington  <hp@redhat.com>
1123
1124         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1125         typo, from Julien Puydt
1126
1127         * bus/connection.c (bus_connection_disconnected): we were always
1128         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1129
1130 2005-08-01  Colin Walters  <walters@verbum.org>
1131
1132         Patch from Joe Markus Clarke:   
1133         
1134         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1135         use-after-free.
1136
1137 2005-08-01  Colin Walters  <walters@verbum.org>
1138         
1139         Patch from Joe Markus Clarke:   
1140         
1141         * tools/dbus-send.c (main): 
1142         
1143         Don't use C99 style initializers (bug #3933).
1144         
1145 2005-08-01  Colin Walters  <walters@verbum.org>
1146
1147         Patch from Joe Markus Clarke:   
1148
1149         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1150         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1151         * glib/dbus-gobject.c (write_interface):
1152
1153         Don't use C99 style initializers (bug #3933).
1154
1155 2005-07-31  Havoc Pennington  <hp@redhat.com>
1156
1157         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1158         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1159
1160 2005-07-30  Havoc Pennington  <hp@redhat.com>
1161
1162         * fix a bunch of Doxygen warnings and mistakes
1163
1164 2005-07-30  Havoc Pennington  <hp@redhat.com>
1165
1166         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1167         DBUS_BUILD_TESTS since it's now used in production code
1168
1169 2005-07-29  Havoc Pennington  <hp@redhat.com>
1170
1171         * test/glib/test-profile.c (write_junk): initialize the junk
1172         buffer so valgrind doesn't have a breakdown
1173
1174 2005-07-29  Havoc Pennington  <hp@redhat.com>
1175
1176         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1177         (match_rule_matches): remove unused arg
1178         (test_matching): add tests for match_rule_matches()
1179
1180         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1181         do arg0='foo' arg5='bar' in the match rules
1182         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1183
1184         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1185
1186 2005-07-29  Ross Burton  <ross@openedhand.com>
1187
1188         * dbus/dbus-connection.c:
1189         Don't create a DBusCondVar which is never used.
1190
1191 2005-07-27  Ross Burton  <ross@openedhand.com>
1192
1193         * dbus/dbus-message.c:
1194         Reduce the size of the maximum cached message to 10K.
1195
1196 2005-07-25  Ross Burton  <ross@openedhand.com>
1197
1198         * glib/dbus-gproxy.c:
1199         Remove matches when all proxies are unregistered.
1200
1201 2005-07-24  Colin Walters  <walters@verbum.org>
1202
1203         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1204         typedata; recursive arrays won't have it.
1205
1206         * test/glib/test-dbus-glib.c:
1207         * test/glib/test-service-glib.c:
1208         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1209         
1210 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1211
1212         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1213         proxies.py, service.py: Cleanup of code after running it through the
1214         pyflakes code checker mostly dealing with undefined names.  
1215         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1216
1217 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1218
1219         * NEWS: Update to 0.35.2
1220
1221 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1222
1223         * python/_dbus.py: Remove import of the dbus.services
1224         module as it no longer exists (patch from Dimitur Kirov)
1225
1226         * python/service.py (Object::__init__): Fixed typo
1227         s/name/bus_name (patch from Dimitur Kirov)
1228
1229         * python/examples/example-signal-emitter.py: import dbus.glib
1230         to get the main loop and use glib mainloop instead of gtk so
1231         X doesn't have to be running.
1232
1233         * python/examples/example-signal-recipient.py: import dbus.glib
1234         to get the main loop and use glib mainloop instead of gtk so
1235         X doesn't have to be running. Import the decorators module
1236         directly.
1237
1238         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1239         didn't pick up on but are needed to build
1240
1241         * configure.in: upped version to 0.35.2
1242
1243         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1244         added Colin Walters' SELinux API rename patch from head 
1245         s/unix sercurity context/selinux security context/
1246
1247 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1248
1249         * python/Makefile.am: dbus_binding.pxd.in should be included 
1250         in EXTRA_DIST not dbus_binding.pxd
1251         fix up $(srcdir) hopefully for the last time
1252
1253         * NEWS: Update to 0.35.1
1254
1255 2005-07-16  Colin Walters  <walters@verbum.org>
1256
1257         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1258         from bus_driver_handle_get_connection_unix_security_context.  Update for
1259         error usage.
1260         (message_handlers): Update for renames.
1261
1262         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1263         _dbus_string_init failure correctly.
1264         (bus_selinux_append_context): Convert SID to context.  Append it
1265         as a byte array.
1266         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1267         hasn't been called.
1268
1269         * bus/selinux.h: Update prototype.
1270
1271         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1272         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1273
1274 2005-07-15  Colin Walters  <walters@verbum.org>
1275
1276         * doc/TODO: Add note about convenience wrappers.
1277
1278 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1279
1280         * NEWS: Update to 0.35
1281
1282 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1283
1284         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1285         so distcheck doesn't fail
1286
1287         * glib/examples/Makefile.am: Add example-service.xml and 
1288         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1289
1290         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1291         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1292
1293         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1294         compiler looks in the right places during distcheck
1295
1296 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1297
1298         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1299         to fail
1300
1301 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1302
1303         * python/examples/example-service.py,
1304         python/examples/example-signal-emitter.py: Fixed up examples
1305         for API changes
1306
1307 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1308
1309         * python/__init__.py: Upped to version (0,42,0) because of
1310         the API change
1311
1312 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1313
1314         * ChangeLog: fix date in last entry
1315
1316         * configure.in, bus/system.conf.in: add the ability to configure 
1317         the system bus user at compiletime with the --with-dbus-user flag
1318         (patch from Kristof Vansant)
1319
1320 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1321
1322         * bus/dispatch.c, test/test-service.c: Add testcase
1323         for sending messages to oneself (TODO item).
1324
1325         * python/service.py (class Object): Swap ordering of bus_name 
1326         and object_path parameters to better support inheritance.
1327
1328         * doc/dbus-tutorial.xml: change Python docs to reflect change
1329         in parameter ordering and fix the inheritance section.
1330
1331         * doc/TODO: remove sending message to oneself TODO item
1332
1333 2005-07-15  Ross Burton  <ross@openedhand.com>
1334
1335         * glib/dbus-gproxy.c:
1336         Fix a leak when calling methods via the proxy.
1337
1338 2005-07-15  Colin Walters  <walters@verbum.org>
1339
1340         * bus/selinux.c (bus_selinux_append_context): Wrap in
1341         HAVE_SELINUX.
1342
1343 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1344
1345         * python/_dbus.py (Bus::remove_signal_receiver):
1346         don't add a callback to the match if none has been passed in
1347         
1348         * python/matchrules.py (SignalMatchTree::remove): if the rule
1349         being matched does not have a callback treat it as a wildcard
1350         fix matching logic
1351
1352         * doc/dbus-tutorial.xml: Add Python tutorial
1353
1354 2005-07-14  Colin Walters  <walters@verbum.org>
1355
1356         * bus/driver.c
1357         (bus_driver_handle_get_connection_unix_security_context): New function.
1358         (message_handlers): Add.
1359
1360         * bus/selinux.c (bus_selinux_append_context): New function; appends
1361         security context to message.
1362
1363         * bus/selinux.h: Prototype.
1364
1365         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1366
1367 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1368
1369         * bus/activation.c: clean up all tabs to be 8 spaces 
1370         (bus_activation_activate_service): make sure we clean up
1371         if activation fails
1372
1373         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1374         (check_shell_fail_service_auto_start): New function
1375         tests to make sure we get fail properly when trying to auto start a service
1376         with a faulty command line
1377         (check_shell_service_success_auto_start): New function tests to make sure
1378         auto started services get the arguments on the command line
1379
1380         * test/test-shell-service.c: Added service for testing auto-starting with 
1381         command line arguments
1382
1383         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1384         test/data/valid-service-files/debug-shell-echo-success.service.in:
1385         Added service files for testing auto-starting with command line arguments
1386
1387         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1388
1389 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1390
1391         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1392         
1393         * dbus/Makefile.am: added new files to build.
1394
1395         * bus/activation.c (bus_activation_activate_service): support
1396         activation commands with parameters.
1397
1398         * test/shell-test.c: added test program for the shell parsing
1399         code.
1400
1401 2005-07-13  David Zeuthen  <davidz@redhat.com>
1402
1403         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1404         64 bit signed and unsigned parameters
1405
1406 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1407
1408         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1409
1410         * python/service.py (class Name): renamed BusName to make it clearer
1411         what the object is for (a name on the bus)
1412
1413         * python/examples/example-service.py,
1414         python/examples/example-signal-emitter.py: change the Name object to
1415         BusName
1416
1417 2005-07-12  Colin Walters  <walters@verbum.org>
1418
1419         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1420
1421         * tools/dbus-launch.c: Include sys/select.h.
1422
1423 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1424         * python/dbus_bindings.pyx.in: removed
1425
1426         * python/dbus_bindings.pyx: Added.
1427         - Fixed some memleaks (patch from 
1428         Sean Meiners <sean.meiners@linspireinc.com>)
1429         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1430         own pxd file (Pyrex definition)
1431         - Broke out glib dependancies into its own pyx module
1432         
1433         * python/dbus_bindings.pdx: Added.
1434         - Defines C class Connection for exporting to other modules
1435
1436         * python/dbus_glib_bindings.pyx: Added.
1437         - New module to handle lowlevel dbus-glib mainloop integration
1438
1439         * python/glib.py: Added.
1440         - Registers the glib mainloop when you import this module
1441
1442         * python/services.py: Removed (renamed to service.py)
1443         
1444         * python/service.py: Added.
1445         - (class Server): renamed Name
1446
1447         * python/__init__.py: Bump ro version (0,41,0)
1448         -don't import the decorators or service module
1449         by default.  These now reside in the dbus.service namespace
1450
1451         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1452         setup function on creation 
1453
1454         * python/examples/example-service.py,
1455         python/examples/example-signal-emitter.py: update examples
1456
1457         * python/examples/gconf-proxy-service.py,
1458         python/examples/gconf-proxy-service2.py: TODO fix these up
1459
1460         * doc/TODO: Addition
1461         - Added a Python Bindings 1.0 section
1462         - added "Add match on args or match on details to match rules"
1463
1464
1465 2005-07-12  Colin Walters  <walters@verbum.org>
1466
1467         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1468         (statemachine-glue.h): 
1469         * glib/examples/Makefile.am (example-service-glue.h) 
1470         (example-signal-emitter-glue.h): 
1471         * glib/Makefile.am (dbus-glib-error-switch.h): 
1472         Add libtool --mode=execute so we use the built library instead
1473         of any installed one.
1474
1475 2005-07-11  Colin Walters  <walters@verbum.org>
1476
1477         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1478         (dbus_g_value_types_init): Remove assertion.
1479         (dbus_g_value_get_g_type, dbus_g_value_open)
1480         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1481         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1482         functions related to DBusGValue.  Now we marshal/demarshal
1483         structures as GValueArray.
1484         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1485         structures.
1486         (signature_iter_to_g_type_array): Don't call
1487         signature_iter_to_g_type_struct.
1488         (signature_iter_to_g_type_struct): Delete.
1489         (dbus_gvalue_to_signature): Delete.
1490         (dbus_gvalue_to_signature): New function with same name as other
1491         one; we can convert structures to signatures.
1492         (demarshal_valuearray): New function.
1493         (get_type_demarshaller): Use it.
1494         (demarshal_recurse): Delete.
1495         (marshal_proxy): New function.
1496         (marshal_map): Warn if we can't determine signature from type.
1497         (marshal_collection_ptrarray): Ditto.
1498         (marshal_collection_array): Ditto.
1499         (get_type_marshaller): Use marshal_valuearray.
1500         (marshal_recurse): Delete.
1501         (_dbus_gvalue_test): Add some tests.
1502
1503         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1504         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1505         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1506         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1507         (dbus_g_value_free): Remove prototypes.
1508
1509         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1510         G_TYPE_VALUE_ARRAY.
1511
1512         * glib/examples/example-service.c:
1513         * glib/examples/example-client.c: Implement GetTuple.
1514
1515         * test/glib/test-dbus-glib.c:
1516         * test/glib/test-service-glib.c:
1517         * test/glib/test-service-glib.xml: Add structure tests.
1518
1519 2005-07-10  Colin Walters  <walters@verbum.org>
1520
1521         * doc/TODO: Knock off some GLib items with this patch.
1522
1523         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1524         (_dbus_gvalue_signals_error): New functions.
1525
1526         * glib/dbus-gvalue-utils.h: Prototype them.
1527
1528         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1529         and change to not output const/retval flags for input args.  All
1530         callers updated.
1531         (invoke_object_method): Refactor to handle return values.  Add
1532         some more comments in various places.  Remove debug g_print.
1533
1534         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1535
1536         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1537         Handle G_TYPE_NONE.
1538         (compute_gsignature): New function; refactored from code from
1539         compute_marshaller and compute_marshaller_name.  Enhance to
1540         handle return values and async ops more cleanly.  Update for
1541         async ops returning NONE instead of BOOLEAN.
1542         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1543         and output appropriate string.
1544         (generate_glue): Handle return value annotation.  Also don't dump
1545         constness flag for input arguments.
1546
1547         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1548         files shared between installed library and utilities.
1549         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1550         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1551         binding tool can access gtype utility functions.
1552
1553         * test/glib/test-service-glib.c: 
1554         * test/glib/test-service-glib.xml: 
1555         * test/glib/test-dbus-glib.c: Add some tests for return values.
1556
1557 2005-07-09  Colin Walters  <walters@verbum.org>
1558
1559         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1560         argument if available, not method.
1561
1562         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1563         (invoke_object_method): First, remove some redundant
1564         GValues (object_value, error_value) in favor of working on
1565         array directly.  Second, rework constness to be less buggy.
1566         Now we iterate directly over the argument metadata instead
1567         of parallel iterating over output signature and metadata.
1568
1569         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1570
1571         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1572         annotation on input args.
1573         
1574 2005-07-09  Colin Walters  <walters@verbum.org>
1575
1576         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1577         Define.
1578
1579         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1580         annotation.
1581
1582         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1583         (method_dir_signature_from_object_info): Handle arg_iterate change.
1584         (write_interface): Ditto.
1585         (lookup_object_info): Don't barf if format_version is > 0.
1586         (invoke_object_method): Handle arg constness.
1587
1588         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1589         (arg_info_new): Create.
1590         (arg_info_unref): Destroy.
1591         (arg_info_get_annotations, arg_info_get_annotation) 
1592         (arg_info_add_annotation): New functions.
1593
1594         * glib/dbus-gidl.h: Prototype them.
1595
1596         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1597         args, disallow them in properties.
1598         (parse_annotation): Handle arg annotations.
1599
1600         * test/glib/test-service-glib.xml: 
1601         * test/glib/test-service-glib.c: Update to make some methods
1602         const.
1603
1604 2005-07-08  Colin Walters  <walters@verbum.org>
1605
1606         * test/glib/test-service-glib.xml: 
1607         * test/glib/test-service-glib.c:
1608         * test/glib/test-dbus-glib.c: Test a{sv}.
1609
1610         * glib/examples/statemachine/statemachine.c:
1611         * glib/examples/statemachine/statemachine-server.c:
1612         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1613         add progress bar, etc.
1614
1615         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1616         needed anymore due to generic array/map marshalling.
1617         (dbus_g_value_types_init): Don't register basic arrays or the
1618         string/string hash.
1619         (dbus_gtype_from_signature_iter): Don't try to recurse into
1620         variants.
1621         (dbus_gtype_to_signature): Check collection/map before type
1622         metadata.
1623         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1624         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1625         generic map creation/append functions instead of hash table
1626         specifically.
1627         (get_type_demarshaller): Handle maps.
1628         (demarshal_collection): Dispatch on collection type to either
1629         demarshal_collection_ptrarray or demarshal_collection_array.
1630         (get_type_marshaller): Handle maps.
1631         (marshal_collection): Dispatch collection type to either
1632         marshal_collection_ptrarray or marshal_collection_array.
1633         (_dbus_gvalue_test): New test.
1634
1635         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1636         (hash_free_from_gtype): Use it to free GValues.
1637         (hashtable_append): New function.
1638         (ptrarray_append): Fix prototype.
1639         (slist_append): Ditto.
1640         (_dbus_gvalue_utils_test): Extend tests.
1641
1642         * glib/dbus-gtype-specialized.c
1643         (dbus_g_type_specialized_init_append): Renamed from
1644         dbus_g_type_specialized_collection_init_append.  Remove const from
1645         value, since we steal it.
1646         (dbus_g_type_specialized_map_append): New function.
1647
1648         * glib/dbus-gtype-specialized.h: Update prototypes.
1649         Add DBusGTypeSpecializedMapAppendFunc.
1650
1651         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1652         _dbus_gvalue_test.
1653         
1654         * glib/dbus-gtest.h: Prototype it.
1655
1656 2005-07-08  Ross Burton  <ross@openedhand.com>
1657
1658         * dbus/dbus-glib.h:
1659         Add DBysGAsyncData for the async bindings.
1660
1661         * glib/dbus-binding-tool-glib.c:
1662         Re-enable the async bindings.
1663
1664         * test/glib/test-dbus-glib.c:
1665         Add a test for the generated async bindings.
1666
1667 2005-07-08  Colin Walters  <walters@verbum.org>
1668
1669         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1670         connection concept.
1671         
1672 2005-07-08  Colin Walters  <walters@verbum.org>
1673         
1674         * tools/Makefile.am: Kill of print-introspect in favor of using
1675         dbus-send --print-reply=literal.
1676
1677         * test/glib/test-service-glib.xml: 
1678         * test/glib/test-service-glib.c (my_object_get_objs): New test
1679         for "ao".
1680
1681         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1682         (main): Test GetObjs.
1683
1684         * glib/examples/statemachine/Makefile.am:
1685         * glib/examples/statemachine/sm-marshal.list:
1686         * glib/examples/statemachine/statemachine-client.c:
1687         * glib/examples/statemachine/statemachine-server.c:
1688         * glib/examples/statemachine/statemachine-server.xml:
1689         * glib/examples/statemachine/statemachine.c:
1690         * glib/examples/statemachine/statemachine.h:
1691         * glib/examples/statemachine/statemachine.xml:
1692
1693         New example.
1694
1695         * glib/examples/example-service.c (main): Move invocation
1696         of dbus_g_object_type_install_info earlier, to emphasize it
1697         should only be done once.
1698
1699         * glib/examples/example-signal-emitter.c (main): Ditto.
1700
1701         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1702
1703         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1704         (dbus_gvalue_marshal): Update prototypes.
1705
1706         * glib/dbus-gvalue.c: Update all marshalling functions to take
1707         const GValue instead of GValue.
1708         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1709         types.
1710         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1711         change.
1712         (dbus_gtype_to_signature): Handle generic collecitons and maps.
1713         Return a newly-allocated string.
1714         (demarshal_proxy, demarshal_object_path, demarshal_object)
1715         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1716         we get the wrong types from message.
1717         (get_type_demarshaller): New function, extracted from
1718         dbus_gvalue_demarshal.
1719         (demarshal_collection): New function, demarshals generic
1720         collection.
1721         (dbus_gvalue_demarshal): Just invoke result of
1722         get_type_demarshaller.  Throw error if we don't have one.
1723         (marshal_garray_basic): Abort on OOM.
1724         (get_type_marshaller): New function, extracted from
1725         dbus_gvalue_marshal.
1726         (collection_marshal_iterator, marshal_collection): New functions;
1727         implements generic marshalling for an iteratable specialized
1728         collection.
1729         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1730
1731         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1732         G_TYPE_STRING.
1733         (ptrarray_value_from_gvalue): Ditto.
1734         (ptrarray_append, ptrarray_free): New functions.
1735         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
1736         (slist_append, slist_end_append, slist_free): New functions.
1737         (dbus_g_type_specialized_builtins_init): Add append fuctions
1738         for GPtrArray and GSList.  Register GSList.
1739         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1740
1741         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1742         New.
1743         (dbus_g_type_specialized_collection_init_append)
1744         (dbus_g_type_specialized_collection_append)
1745         (dbus_g_type_specialized_collection_end_append): Prototype.
1746         (DBusGTypeSpecializedCollectionVtable): Add append_func and
1747         end_append_func.
1748
1749         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
1750         (dbus_g_type_specialized_collection_append) 
1751         (dbus_g_type_specialized_collection_end_append): New functions.
1752         (dbus_g_type_map_value_iterate): Take const GValue.
1753         (dbus_g_type_collection_value_iterate): Ditto.
1754
1755         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1756         _dbus_gvalue_utils_test.
1757         
1758         * glib/dbus-gtest.h: Prototype it.
1759
1760         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1761         using uninitialized owner_list.
1762         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1763         public API.
1764         (dbus_g_proxy_end_call_internal): Update to use error set
1765         from dbus_gvalue_demarshal instead of setting it here.
1766         (dbus_g_proxy_begin_call): Move return_if_fail here.
1767
1768         * glib/dbus-gobject.c (write_interface): Update for
1769         dbus_gtype_to_signature returning new string.
1770
1771         * configure.in: Add glib/examples/statemachine.
1772
1773 2005-07-08  Joe Shaw  <joeshaw@novell.com>
1774
1775         * configure.in: Add a configure option, --with-console-auth-dir
1776         
1777         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1778         new setting.  Patch from Kay Sievers.
1779
1780 2005-07-06  Colin Walters  <walters@verbum.org>
1781
1782         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1783         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1784         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1785         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1786         Delete in favor of dbus_g_proxy_begin_call and
1787         dbus_g_proxy_cancel_call.
1788         (DBusGProxyCall, DBusGProxyCallNotify): New.
1789         (dbus_g_proxy_begin_call): Change prototype to take callback, user
1790         data, and destroy function.  This replaces
1791         dbus_g_pending_call_set_notify.
1792         (dbus_g_proxy_cancel_call): Prototype.
1793         (DBusGAsyncData): Delete, shouldn't be needed anymore.
1794
1795         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1796         pending_calls map.
1797         (struct _DBusGProxyManager): Add bus_proxy member, which is an
1798         internal proxy for calls to the bus. Remove
1799         pending_nameowner_calls, now the internal proxy keeps track.
1800         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1801         pending_nameowner_calls.
1802         (got_name_owner_cb): Update prototype, and use
1803         dbus_g_proxy_end_call.
1804         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1805         (dbus_g_proxy_manager_register): Delete directly libdbus code in
1806         favor of using internal proxy.
1807         (dbus_g_proxy_manager_unregister): Update to use
1808         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1809         (dbus_g_proxy_init): Initialize pending calls map.
1810         (dbus_g_proxy_constructor): New.
1811         (dbus_g_proxy_class_init): Add get/set property functions,
1812         constructor, and add NAME, PATH, and INTERFACE properties.
1813         (cancel_pending_call): New function.
1814         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1815         cancel them.
1816         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1817         (GPendingNotifyClosure): New structure.
1818         (d_pending_call_notify, d_pending_call_free): Moved here from
1819         dbus-glib.c.
1820         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1821         ordering.
1822         (manager_begin_bus_call): New internal function for talking to
1823         internal bus proxy.
1824         (dbus_g_proxy_new): Construct object using GObjet properties.
1825         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1826         Create closure of same, and insert call into map of pending calls.
1827         (dbus_g_proxy_end_call_internal): Take call id instead of pending
1828         call.  Look up pending call in current set.  Remove it when we've
1829         completed.
1830         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1831         (dbus_g_proxy_begin_call): Change API to take callback, user data,
1832         and destroy function directly.
1833         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1834         (dbus_g_proxy_call): Invoke with NULL callback.
1835         (dbus_g_proxy_cancel_call): New function, replaces
1836         dbus_g_pending_call_cancel.
1837
1838         * glib/dbus-gparser.c (validate_signature): Fix call to
1839         dbus_set_g_error.
1840
1841         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1842         New quark for attaching metadata to GType.
1843         (info_hash): Delete.
1844         (lookup_object_info): Look up using quark.
1845         (dbus_g_object_type_install_info): Check that a type is classed,
1846         not that it's an object.  Also just install type data using quark
1847         instead of using global hash.
1848
1849         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
1850         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1851         (GPendingNotifyClosure): Delete.
1852         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1853         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1854
1855         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1856         client method generation until we can fix it...
1857         
1858         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1859         (load_from_service_thread_func): Ditto.
1860
1861         * tools/dbus-names-model.c (struct NamesModel): Hold
1862         DBusGProxyCall.
1863         (have_names_notify): Update prototype, use
1864         dbus_g_proxy_cancel_call.
1865         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1866
1867         * tools/dbus-monitor.c (filter_func): Update for print_message
1868         API change.
1869
1870         * test/glib/test-dbus-glib.c: Add more tests for async
1871         invocations.  Update many begin_call/end_call pairs to just use
1872         dbus_g_proxy_call.
1873
1874         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
1875         allows us to dump print-introspect.c.
1876
1877         * tools/dbus-print-message.h (print_message): Add literal argument
1878         to print_message which is intended to allow printing arguments without
1879         metadata like "string=".
1880
1881         * tools/dbus-print-message.c (print_iter): Add literal argument.
1882         (print_message): Allow printing string messages literally.
1883
1884 2005-07-05  Colin Walters  <walters@verbum.org>
1885
1886         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1887         Remove value refcount leak, original patch from Jorn Baayen
1888         <jorn@openedhand.com>.  Also remove useless extra value in favor
1889         of prepending to value array directly.
1890
1891 2005-07-02  Colin Walters  <walters@verbum.org>
1892
1893         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1894
1895 2005-07-01  Colin Walters  <walters@verbum.org>
1896
1897         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1898         
1899         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1900         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1901         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1902         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1903
1904 2005-06-30  Colin Walters  <walters@verbum.org>
1905
1906         * test/glib/test-dbus-glib.c:
1907         * test/glib/test-service-glib.c:
1908         * test/glib/test-service-glib.xml: Update tests for new error
1909         setting bits, also add async tests (patch from Ross Burton).
1910
1911         * test/glib/Makefile.am (test_service_glib_LDADD): Add
1912         DBUS_GLIB_THREADS_LIBS.
1913
1914         * glib/dbus-gproxy.c (get_name_owner)
1915         (dbus_g_pending_call_end_valist): Ditto.
1916
1917         * glib/dbus-gobject.c (error_metadata): New mapping from GError
1918         domain (GQuark) to DBusGErrorInfo.  
1919         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
1920         quark in error_metadata.  Take message interface as default
1921         error message interface.
1922         (gerror_to_dbus_error_message): Pass message interface.
1923         (dbus_set_g_error): Resurrected.
1924         (dbus_g_error_info_free): New function.
1925         (dbus_g_object_type_install_info): Use g_type_class_ref instead
1926         of _peek to actually create the object class if it hasn't been
1927         created yet.
1928         (dbus_g_error_domain_register): New function.
1929
1930         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
1931
1932         * glib/dbus-gparser.c (validate_signature): Ditto.
1933
1934         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
1935         (dbus_g_error_domain_register): Prototype.
1936
1937         * glib/dbus-glib.c (dbus_g_error_set): Delete.
1938         Update tests.
1939
1940 2005-06-29  Colin Walters  <walters@verbum.org>
1941
1942         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
1943         DBUS_TYPE_G_OBJECT_PATH.
1944
1945         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
1946         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
1947         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
1948         (dbus_g_object_path_get_g_type): New function.
1949         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
1950         to DBUS_TYPE_G_OBJECT_PATH by default.
1951         (demarshal_proxy): Remove unused name variable.
1952         (demarshal_object_path, marshal_object_path): New functions.
1953         (demarshal_proxy_array, marshal_proxy_array): Delete.
1954         
1955         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
1956         DBUS_TYPE_G_OBJECT_PATH to char *.
1957         (dbus_g_type_get_lookup_function): Map builtin
1958         DBUS_TYPE_G_OBJECT_PATH.
1959
1960         * test/glib/test-dbus-glib.c
1961         * test/glib/test-service-glib.c (my_object_objpath): 
1962         Adapt tests to new object path marshalling.
1963
1964 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
1965
1966         * configure.in: force check for Python >= 2.4
1967
1968 2005-06-29  Colin Walters  <walters@verbum.org>
1969         
1970         Patch from Ross Burton <ross@openedhand.com>
1971         
1972         * glib/dbus-gobject.c (invoke_object_method): Unset object
1973         value in all cases, not only in async case.
1974
1975 2005-06-29  Colin Walters  <walters@verbum.org>
1976
1977         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
1978         name_call for keeping track of any outgoing GetNameOwner call.
1979         Also add for_owner and associated.
1980         (struct _DBusGProxyManager): Add owner_names, which is hash table
1981         that maps a base name to a list of names it owns (that we're
1982         interested in).  Add pending_nameowner_calls which is a list of
1983         all outstanding GetNameOwner; avoids us having to iterate over
1984         every proxy.  Add unassociated_proxies which keeps track of name
1985         proxies with no associated name owner.
1986         (dbus_g_proxy_manager_unref): Destroy owner_names.
1987         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
1988         name refcounts.
1989         (find_name_in_info, name_owner_foreach)
1990         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
1991         (dbus_g_proxy_manager_monitor_name_owner)
1992         (dbus_g_proxy_manager_unmonitor_name_owner)
1993         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
1994         New functions; they manipulate the owner_names mapping.
1995         (got_name_owner_cb): New function.
1996         (get_name_owner): New function, extracted from
1997         dbus_g_proxy_new_for_name_owner.
1998         (dbus_g_proxy_manager_register): For now we need to keep track of
1999         all NameOwnerChanged.  Also if the proxy is for a name, if we
2000         don't already know the name owner, queue a new GetNameOwner
2001         request and add it to our list of unassociated proxies.  Otherwise
2002         inc the refcount.
2003         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2004         cancel any pending GetNameOwner call, etc.
2005         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2006         the owner_names mapping to look up the current names for the
2007         signal source, and dispatch to any proxies for that name.
2008         (dbus_g_proxy_new): Initialize new members.
2009         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2010         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2011         (dbus_g_pending_call_end_valist): New function, extracted from
2012         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2013         but want to use the GLib infrastructure.  Also note how many
2014         arguments in reply were over.
2015         (dbus_g_pending_call_end): New function, just call
2016         dbus_g_pending_call_end_valist.
2017         (dbus_g_proxy_end_call_internal): Just call
2018         dbus_g_pending_call_end_valist.
2019
2020         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2021         of builtin marshaller for STRING_STRING_STRING.
2022
2023         * test/glib/test-dbus-glib.c: 
2024         * test/glib/test-service-glib.c:
2025         * test/glib/test-service-glib.xml:
2026         Extend tests to cover name proxies, destruction of owner proxies,
2027         etc.
2028         
2029         * glib/examples/example-signal-recipient.c
2030         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2031         
2032         * tools/dbus-send.c (main): Print D-BUS error name in addition
2033         to message.
2034
2035 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2036
2037         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2038         cmessage_function_handler): Patch from 
2039         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2040         by using the Py_GILState_Ensure/Release to synchronize with the
2041         python runtime.
2042         
2043 2005-06-28  Ray Strode  <rstrode@redhat.com>
2044
2045         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2046         babysitter helper process on last unref, bug #2813.
2047
2048 2005-06-27  Colin Walters  <walters@verbum.org>
2049
2050         * test/glib/test-dbus-glib.c: 
2051         * test/glib/test-service-glib.c:
2052         * test/glib/test-service-glib.xml:
2053         Test hash table signal emitting.
2054
2055         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2056         types to their fundamental basis types, since this is what
2057         marshallers operate on.  Also add an entry for VOID__BOXED.
2058         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2059
2060 2005-06-26  Havoc Pennington  <hp@redhat.com>
2061
2062         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2063         from Don Park
2064
2065 2005-06-26  Colin Walters  <walters@verbum.org>
2066
2067         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2068         (dbus_g_error_set): New public function from its ashes; used by
2069         both service-side method implementation and GLib bindings
2070         internals.
2071         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2072         (_dbus_glib_test): Add some tests.
2073
2074         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2075
2076         * test/glib/test-service-glib.c (my_object_throw_error): Use
2077         dbus_g_error_set.
2078
2079         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2080         errors thrown by dbus_g_error_set.
2081
2082         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2083
2084         * glib/dbus-gparser.c (validate_signature): Ditto.
2085
2086         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2087         (dbus_g_proxy_end_call_internal): Ditto.
2088
2089         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2090         converts DBUS_ERROR_x to DBUS_GERROR_x.
2091         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2092
2093         * doc/TODO: Remove error TODO.
2094
2095         * doc/dbus-tutorial.xml: Update with documentation about error
2096         handling.
2097
2098         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2099         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2100         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2101
2102 2005-06-22  Colin Walters  <walters@verbum.org>
2103         
2104         Patch from Ross Burton <ross@openedhand.com>
2105
2106         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2107
2108 2005-06-20  Colin Walters  <walters@verbum.org>
2109
2110         * configure.in: Add glib/examples.
2111
2112         * glib/Makefile.am: Add examples/
2113
2114         * glib/examples/.cvsignore
2115         * glib/examples/Makefile.am
2116         * glib/examples/example-client.c
2117         * glib/examples/example-service.c
2118         * glib/examples/example-service.xml
2119         * glib/examples/example-signal-emitter.c
2120         * glib/examples/example-signal-emitter.xml
2121         * glib/examples/example-signal-recipient.c:
2122         New files; GLib binding examples, ported from
2123         python/examples.
2124
2125 2005-06-20  Colin Walters  <walters@verbum.org>
2126
2127         * dbus/dbus-glib.h: 
2128         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2129         dbus_g_proxy_call.
2130
2131         * glib/dbus-binding-tool-glib.c: 
2132         * doc/dbus-tutorial.xml: 
2133         * test/glib/test-dbus-glib.c: Update for rename.
2134         
2135 2005-06-20  Colin Walters  <walters@verbum.org>
2136
2137         Patch suggested by Ross Burton <ross@openedhand.com>
2138
2139         * glib/dbus-gobject.c (export_signals): Free signal name.
2140         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2141         memory leak.  Add a bit of documentation.
2142         (dbus_g_method_return_error): Free context, and note we do
2143         so.
2144
2145 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2146
2147         * dbus/dbus-glib.h:
2148         * glib/dbus-gobject.c:
2149         * glib/dbus-gproxy.c:
2150         * glib/dbus-gvalue.c: Predeclare structs as 
2151         typedef struct _Something Something instead of 
2152         typedef struct Something Something, so we can 
2153         redeclare the prototypes. Other GNOME libraries 
2154         do this already.
2155
2156 2005-06-17  Colin Walters  <walters@verbum.org>
2157
2158         * tools/dbus-names-model.c (have_names_notify): Fix call
2159         to dbus_g_proxy_end_call.
2160         
2161 2005-06-17  Colin Walters  <walters@verbum.org>
2162
2163         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2164         spew warnings if we get malformed remote signals.
2165
2166         * glib/dbus-gobject.c (propsig_iterate): New function.
2167         (lookup_object_info): New function, extracted from
2168         lookup_object_and_method.
2169         (introspect_properties, introspect_signals): Delete; these
2170         are merged into write_interface.
2171         (write_interface): Write out signals and properties here;
2172         dump the org.gtk.object stuff and use the interface given
2173         in the introspection data blob.  Also fix up property XML.
2174         (lookup_values): New function.
2175         (introspect_interfaces): Gather a mapping from interface to a
2176         list of its methods, signals, and properties, then write out
2177         each interface.
2178         (lookup_object_and_method): Use lookup_object_info.
2179         (struct DBusGSignalClosure): Add interface.
2180         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2181         we can just use the constant data.
2182         (dbus_g_signal_closure_finalize): Don't free signal name.
2183         (signal_emitter_marshaller): Use interface from signal closure.
2184         (export_signals): Only export signals mentioned in introspection
2185         blob.
2186         (dbus_g_connection_register_g_object): Warn if we have no
2187         introspection data for an object.
2188         (funcsig_equal): Remove unused variable.
2189         (dbus_g_object_register_marshaller): Take varargs instead of
2190         list.
2191         (dbus_g_object_register_marshaller_array): New function,
2192         extracted from old dbus_g_object_register_marshaller.
2193
2194         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2195         signals and property data.
2196         (write_quoted_string): New function, extracted from generate_glue.
2197         (generate_glue): Write signals and properties to introspection
2198         blob.
2199
2200         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2201         exported_signals and exported_properties.
2202         (dbus_g_object_register_marshaller): Update prototype.
2203         (dbus_g_object_register_marshaller_array): Prototype.
2204         
2205         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2206
2207         * test/glib/test-service-glib.c: Add new test signals and method
2208         to emit them.
2209
2210         * test/glib/test-service-glib.xml: Add some test signals.
2211
2212         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2213         and my-object-marshal.h
2214         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2215         my-object-marshal.c.
2216         (my-object-marshal.c, my-object-marshal.h): Implement.
2217
2218         * test/glib/.cvsignore: Update.
2219
2220         * doc/TODO: Remove two GLib TODO items fixed by this
2221         patch.
2222
2223 2005-06-16  Colin Walters  <walters@verbum.org>
2224
2225         * doc/TODO: Update for GLib bindings.
2226         
2227 2005-06-16  Colin Walters  <walters@verbum.org>
2228
2229         * glib/dbus-binding-tool-glib.c:
2230         * glib/dbus-gobject.c:
2231         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2232         from Ross Burton, for his GLib bindings work.
2233
2234 2005-06-16  Colin Walters  <walters@verbum.org>
2235
2236         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2237         to iterate instead of walking to G_TYPE_INVALID.
2238
2239         Patch based on a patch from Ryan Gammon.
2240
2241 2005-06-16  Colin Walters  <walters@verbum.org>
2242
2243         * bus/bus.c (bus_context_new): Set parser to NULL
2244         after we unref it (Patch from Chris Boscolo, #2174).
2245         
2246 2005-06-16  Colin Walters  <walters@verbum.org>
2247
2248         * python/dbus_bindings.pyx.in: Import size_t,
2249         __int64_t, __uint64_t, and __signed.
2250
2251         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2252         Define cmsg struct, output it.
2253         (_dbus_read_credentials_unix_socket):
2254         Use cmsg struct.
2255         
2256         Patch from Joe Markus Clarke for FreeBSD support.
2257         
2258 2005-06-16  Colin Walters  <walters@verbum.org>
2259
2260         * tools/dbus-send.c (append_array): Use strtok.
2261         (append_dict): New function.
2262         (type_from_name): New function, extracted from main.
2263         (main): Handle sending dicts.
2264
2265         * tools/dbus-print-message.c (print_iter): Print dict
2266         entries.
2267         
2268 2005-06-16  Colin Walters  <walters@verbum.org>
2269
2270         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2271         values as the empty string (#2948).
2272         
2273 2005-06-16  Colin Walters  <walters@verbum.org>
2274
2275         * dbus/Makefile.am:
2276         * mono/doc/Makefile.am:
2277         * test/glib/Makefile.am:
2278
2279         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2280
2281 2005-06-16  Colin Walters  <walters@verbum.org>
2282
2283         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2284         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2285
2286         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2287         Increment pointer after swapping fixed array.  Add assertion
2288         for array length.
2289                 
2290 2005-06-15  Colin Walters  <walters@verbum.org>
2291
2292         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2293         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2294         
2295 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2296
2297         * NEWS: Update to 0.34
2298
2299 2005-06-15  David Zeuthen  <davidz@redhat.com>
2300
2301         * configure.in (LT_CURRENT): Revert back to 1 as the library
2302         hasn't changed and we've certainly not committed to protocol
2303         stability yet.  All this does is to break ABI. See commit note
2304         from hp@redhat.com 2005-05-05 for details.
2305         
2306 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2307
2308         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2309         (_dbus_connection_run_builtin_filters): New method
2310         (dbus_connection_dispatch): Run the builtin filters which in turn
2311         runs the peer filter which handles Ping messages.
2312
2313         * doc/TODO: 
2314          - Ping isn't handled: This patch fixes it
2315          
2316          - Add a test case for the Ping message: added TODO item
2317
2318 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2319
2320         * dbus/dbus-message.c:
2321         (dbus_message_has_path): New method
2322         (dbus_message_has_interface): New method
2323         (dbus_message_has_member): New method
2324
2325         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2326         New method
2327
2328         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2329         the keyring directory is private to the user
2330
2331         * doc/TODO:
2332          - The convenience functions in dbus-bus.h should perhaps have
2333          the signatures that they would have if they were autogenerated
2334          stubs. e.g. the acquire service function. We should also evaluate
2335          which of these functions to include, in light of the fact that
2336          GLib/Qt native stubs will probably also exist.: Punted
2337
2338          - add dbus_message_has_path(), maybe has_member/interface:
2339          fixed in this patch
2340
2341          - in dbus-keyring.c, enforce that the keyring dir is not
2342          world readable/writable: Fixed in this patch
2343
2344 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2345
2346         * dbus/dbus-marshal-validate.h: Added a new validation
2347         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2348         out of memory errors when validating signitures
2349
2350         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2351         in places where we previously used DBUS_VALID and a FALSE return 
2352         value to indicate OOM
2353         
2354         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2355         Use a stack to track the number of elements inside containers.  The 
2356         stack values are then used to validate that dict entries have only two
2357         elements within them.
2358         (validate_body_helper): check the reason for failure when validating
2359         varients
2360         
2361         * dbus/dbus-message.c (load_message): use 
2362         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2363         DBUS_VALID and a FALSE return value to indicate OOM
2364
2365         * doc/TODO: remove "- validate dict entry number of fields" as this
2366         patch fixes it
2367
2368 2005-06-14  David Zeuthen  <davidz@redhat.com>
2369
2370         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2371         watches (if applicable) and add new watches
2372
2373         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2374         (main): Setup SIGIO signal handler if using D_NOTIFY
2375
2376         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2377
2378         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2379         (merge_included): Also merge conf_dirs list
2380         (bus_config_parser_unref): Clear conf_dirs list
2381         (include_dir): Add directory to conf_dirs list
2382         (bus_config_parser_get_conf_dirs): New function
2383
2384         * bus/dir-watch.[ch]: New files
2385
2386         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2387
2388         * configure.in: Add checks for D_NOTIFY on Linux
2389
2390 2005-06-14  Colin Walters  <walters@verbum.org>
2391
2392         * glib/dbus-binding-tool-glib.c:
2393         * glib/dbus-gobject.c:
2394         * glib/dbus-gvalue.c: Fix indentation and brace style.
2395         
2396 2005-06-14  Ross Burton <ross@openedhand.com>.
2397
2398         * glib/dbus-glib.h: Make DBusGMethodInvocation
2399         a private structure.  Rearrange prototypes a bit.
2400         
2401         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2402         documentation for first_arg_type.
2403         
2404         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2405         here, add documentation.  Move dbus_g_method_return
2406         and dbus_g_method_return_error into public API
2407         section.
2408
2409 2005-06-14  Colin Walters  <walters@verbum.org>
2410
2411         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2412         Add missing return statements, noticed by Ross Burton.
2413         
2414 2005-06-13  Ross Burton <ross@openedhand.com>.
2415
2416         * glib/dbus-gobject.c: Handle errors on message
2417         demarshalling by sending error message back.
2418         * glib/dbus-gvalue.c: Initialize return variables.
2419
2420 2005-06-13  Colin Walters  <walters@verbum.org>
2421
2422         * glib/Makefile.am: Fix thinko in last patch.
2423
2424 2005-06-13  Colin Walters  <walters@verbum.org>
2425
2426         * glib/Makefile.am: Move dbus-gtype-specialized.c
2427         and dbus-gtype-specialized.h into a _HEADERS variable,
2428         install them.
2429
2430 2005-06-12  Colin Walters  <walters@verbum.org>
2431
2432         Async signals and various bugfixes and testing by
2433         Ross Burton <ross@openedhand.com>.
2434
2435         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2436         (dbus_gvalue_genmarshal_name_from_type)
2437         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2438         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2439         (dbus_g_value_types_init, dbus_gtype_from_signature)
2440         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2441         (dbus_gtypes_from_arg_signature): New function prototypes.
2442         (dbus_gvalue_demarshal): Take context and error arguments.
2443         (dbus_gvalue_demarshal_variant): New function.
2444         (dbus_gvalue_demarshal_message): New function.
2445         (dbus_gvalue_store): Delete.
2446
2447         * glib/dbus-gvalue.c:
2448
2449         File has been almost entirely rewritten; now we special-case
2450         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2451         hash tables correctly, etc.  Full support for recursive values
2452         is not yet complete.
2453
2454         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2455         argument of signal to G_TYPE_POINTER since we now pass a
2456         structure.
2457         (lookup_g_marshaller): Delete in favor of
2458         _dbus_gobject_lookup_marshaller.
2459         (marshal_dbus_message_to_g_marshaller): Use
2460         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2461         to handle remote signal callbacks.
2462         (dbus_g_proxy_new_from_proxy): New function; creates a new
2463         DBusGProxy by copying an existing one.
2464         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2465         (dbus_g_proxy_get_path): New functions.
2466         (dbus_g_proxy_marshal_args_to_message): New function;
2467         factored out of existing code.
2468         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2469         from a varargs array.
2470         (dbus_g_proxy_begin_call_internal): New function.
2471         (dbus_g_proxy_end_call_internal): New function.
2472         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2473         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2474         after collecting args into value array.
2475         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2476         invoke dbus_g_proxy_end_call_internal.
2477         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2478         end_call_internal.
2479         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2480         types.
2481         (array_free_all): New function.
2482         (dbus_g_proxy_add_signal): Take GTypes.
2483
2484         * glib/dbus-gobject.h:
2485         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2486         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2487         Prototype.
2488
2489         * glib/dbus-gobject.c: Add a global marshal_table hash which
2490         stores mappings from type signatures to marshallers.  Change lots
2491         of invocations of dbus_gtype_to_dbus_type to
2492         dbus_gtype_to_signature.
2493         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2494         (introspect_signals): Fix test for query.return_type.
2495         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2496         (invoke_object_method): Many changes.  Handle asynchronous
2497         invocations.  Convert arguments with
2498         dbus_gvalue_demarshal_message.  Handle errors.  Use
2499         DBusSignatureIter instead of strlen on args. Handle all arguments
2500         generically.  Special-case variants.
2501         (dbus_g_method_return, dbus_g_method_return_error): New function.
2502         (DBusGSignalClosure): New structure, closes over signal
2503         information.
2504         (dbus_g_signal_closure_new): New function.
2505         (dbus_g_signal_closure_finalize): New function.
2506         (signal_emitter_marshaller): New function; is special marshaller
2507         which emits signals on bus.
2508         (export_signals): New function; introspects object signals and
2509         connects to them.
2510         (dbus_g_object_type_install_info): Take GType instead of
2511         GObjectClass.
2512         (dbus_g_connection_register_g_object): Invoke export_signals.
2513         (dbus_g_connection_lookup_g_object): New function.
2514         (DBusGFuncSignature) New structure; used for mapping type
2515         signatures to marshallers.
2516         (funcsig_hash): New function; hashes DBusGFuncSignature.
2517         (funcsig_equal): New function; compares DBusGFuncSignature.
2518         (_dbus_gobject_lookup_marshaller): New function.
2519         (dbus_g_object_register_marshaller): New function; used to
2520         register a marshaller at runtime for a particular signature.
2521
2522         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2523
2524         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2525         which notes a server method implementation should be
2526         asynchronous.
2527
2528         * glib/dbus-binding-tool-glib.c
2529         (dbus_binding_tool_output_glib_server): Call
2530         dbus_g_value_types_init.
2531         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2532         variants specially.
2533         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2534         of a lookup function.
2535         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2536         (write_untyped_out_args): New method; write output arguments.
2537         (write_formal_declarations_for_direction): Function for
2538         writing prototypes.
2539         (write_formal_parameters_for_direction): Function for
2540         writing implementations.
2541         (write_typed_args_for_direction): Function for writing
2542         arguments prefixed with GTypes.
2543         (write_async_method_client): Write out async version
2544         of method.
2545
2546         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2547         (dbus_g_type_get_marshal_name): Move mapping from GType
2548         to marshal name into here.
2549         (dbus_g_type_get_c_name): Move into here.
2550         (compute_marshaller): Convert signature to type with
2551         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2552         (compute_marshaller_name): Ditto.
2553         (compute_marshaller): Handle async signal annotations.
2554         (gather_marshallers): Return if we don't have a known
2555         prefix.
2556         (generate_glue): Collect introspection blob here, and
2557         write all of the blob at the end.  This allows an object
2558         with multiple interfaces to work.
2559         Mark async methods in introspection blob.
2560
2561         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2562         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2563         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2564
2565         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2566         avoids people accidentally using DBUS_TYPE_* which should
2567         not be necessary anymore.
2568         Do include dbus-gtype-specialized.h, which are utilities
2569         for GLib container types.
2570         Add various #defines for types such as
2571         DBUS_TYPE_G_BOOLEAN_ARRAY.
2572         (DBusGValueIterator, DBusGValue): Define, not fully used
2573         yet.
2574         (dbus_g_value_get_g_type): Type for recursive value.
2575         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2576         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2577         (dbus_g_value_free): Prototypes.
2578         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2579         (dbus_g_proxy_set_interface): Prototype.
2580         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2581         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2582         types.
2583         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2584         Accessors.
2585         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2586         doing async invocations.
2587         (dbus_g_method_return, dbus_g_method_return_error):
2588         Prototypes.
2589         * doc/dbus-tutorial.xml: Update GLib section.
2590         
2591         * tools/dbus-viewer.c (load_child_nodes): Update
2592         for new invocation type of dbus_g_proxy_end_call.
2593         (load_from_service_thread_func): Ditto.
2594
2595         * tools/print-introspect.c (main): Ditto.
2596
2597         * tools/dbus-names-model.c (have_names_notify)
2598         (names_model_reload, names_model_set_connection)
2599         Use GTypes.
2600
2601         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2602         needed since Python bindings use GLib bindings.
2603
2604         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2605         Add --prefix argument.
2606
2607         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2608         unneeded --ignore-unsupported arg.
2609         
2610         * test/glib/test-service-glib.c: 
2611         * test/glib/test-service-glib.xml:
2612         * test/glib/test-dbus-glib.c: Add many more tests.
2613
2614 2005-06-06  David Zeuthen  <davidz@redhat.com>
2615
2616         * doc/TODO: Add item about need to remove deprecated functions.
2617
2618         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2619
2620         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2621         to repair the ABI which was broken with the last commit.
2622
2623 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2624
2625         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2626         (dbus_connection_disconnect): renamed to dbus_connection_close 
2627         for API symmetry with dbus_connection_open
2628         (_dbus_connection_open_internal): 
2629         s/dbus_connection_disconnect/dbus_connection_close
2630
2631         * dbus/dbus-bus.c (dbus_bus_get):
2632         s/dbus_connection_disconnect/dbus_connection_close
2633
2634         * bus/connection.c (bus_connections_unref, 
2635         bus_connections_setup_connection, bus_connections_expire_incomplete):
2636         s/dbus_connection_disconnect/dbus_connection_close
2637
2638         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2639         kill_client_connection_unchecked, check_hello_connection):
2640         s/dbus_connection_disconnect/dbus_connection_close
2641
2642         * bus/bus.c (new_connection_callback):
2643         s/dbus_connection_disconnect/dbus_connection_close
2644
2645         * tools/dbus-send.c (main):
2646         s/dbus_connection_disconnect/dbus_connection_close
2647
2648         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2649         s/dbus_connection_disconnect/dbus_connection_close
2650         
2651         * test/test-service.c (path_message_func, filter_func):
2652         s/dbus_connection_disconnect/dbus_connection_close
2653         
2654         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2655         
2656 2005-05-25  Colin Walters  <walters@verbum.org>
2657
2658         * dbus/dbus-protocol.h: Move various bus service #defines such
2659           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2660           dbus/dbus-shared.h.
2661         * dbus/dbus-shared.h: Various defines moved here.
2662         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2663
2664 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
2665
2666         * python/__init__.py: Python bindings deserve a minor version
2667         update.  Upped to (0, 40, 2)
2668
2669 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
2670
2671         * python/decorators.py: add explicitly_pass_message decorator
2672         for passing in the dbus message as keyword for edge case signal
2673         handling
2674
2675         * python/matchrules.py (SignalMatchRule.__repr__): fix output
2676         to conform with what dbus expects for match rules
2677         (SignalMatchRule.execute): add the dbus message as a keyword
2678         if the signal handler has requested it
2679
2680         * python/examples/example/signal-recipient.py: added some more
2681         examples on how to hook up to signals
2682
2683 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
2684
2685         * python/decorators.py: import dbus_bindings
2686
2687         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
2688         SignalMatchNode): new classes that implement wildcard signal
2689         callback matching using a tree lookup. Heavily modified from a
2690         patch sent by Celso Pinto (fd.o bug #3241)
2691
2692         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2693         use new match classes to handle signals.
2694
2695 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
2696         
2697         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2698
2699 2005-05-18  Havoc Pennington  <hp@redhat.com>
2700
2701         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2702         gettext. Not really worth requiring yet perhaps, but any
2703         production quality 1.0 would require it so we should go ahead and
2704         get things set up. We do have a couple token calls to
2705         bindtextdomain in the code already.
2706
2707 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
2708
2709         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2710         when using recursive g_main_loops
2711
2712         * python/_dbus.py (class Bus): add the ProxyObjectClass
2713         alias for ProxyObject to make it easier for the Twisted 
2714         networking framework to integrate dbus.
2715
2716         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2717         alias for ProxyMethod to make it easier for the Twisted 
2718         networking framework to integrate dbus. 
2719
2720 2005-05-11  Ross Burton  <ross@openedhand.com>
2721
2722         * glib/dbus-glib-tool.c: Add --prefix argument.
2723         * glib/dbus-binding-tool-glib.h: Add prefix argument.
2724         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2725         Add prefix argument.
2726         (generate_glue): Pass prefix argument down.
2727         (dbus_binding_tool_output_glib_server): Pass prefix to
2728         glib-genmarshal.
2729         
2730 2005-05-11  Colin Walters  <walters@verbum.org>
2731
2732         * tools/dbus-send.c (append_array): New function.
2733         (append_arg): Broken out from main.
2734         (main): Add cheesy hack to send arrays and variants.
2735         (usage): Update.
2736         * tools/dbus-print-message.c (print_iter): Broken out
2737         from main.
2738
2739 2005-05-11  Colin Walters  <walters@verbum.org>
2740
2741         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2742         New function, returns signature string for signature iter.
2743         * dbus/dbus-signature.h: Prototype it.
2744         * dbus/dbus-message.c (dbus_message_iter_get_signature):
2745         New function, returns signature string for message iter.
2746         (dbus_message_iter_get_array_len): New function, returns
2747         length of array.
2748         (dbus_message_iter_get_fixed_array): Fix assertion; this
2749         function should be used when the iter is pointing to the
2750         contents of an array
2751         * dbus/dbus-message.h: Prototypes.
2752         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2753         New function; returns length of an array.
2754         * dbus/dbus-marshal-recursive.h: Prototype it.
2755         
2756 2005-05-11  Colin Walters  <walters@verbum.org>
2757
2758         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2759         compilation error.
2760         
2761 2005-05-08  Havoc Pennington  <hp@redhat.com>
2762
2763         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2764         daemon's pid, not the parent's pid, to the file descriptor.
2765         Reported by Taj Morton.
2766
2767 2005-05-05  Havoc Pennington  <hp@redhat.com>
2768
2769         * configure.in (LT_*): add notes on how the libtool versioning
2770         works to save thinking. Increment soname to indicate protocol
2771         breakage (though really the library interface hasn't changed I
2772         guess)
2773
2774         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2775         verify the GUID received from server matches what we were
2776         expecting, if we had an expectation
2777
2778         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2779         (_dbus_auth_get_guid_from_server): new function
2780         (send_begin): parse the OK args
2781
2782         * doc/dbus-specification.xml: add GUID to the auth protocol
2783
2784 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
2785
2786         * Fix my name in previous changelog ;)
2787
2788         * python/proxies.py (ProxyObject.__getattr__): add further patch
2789         from Anthony Baxter to throw an AttributeError when python 
2790         __special__ functions are called instead of marshling them over 
2791         the bus (Bug#1685 comment 3).
2792
2793 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
2794
2795         * python/Makefile.am: changed to use pyexecdir for the binding
2796         shared libraries (Bug#2494)
2797
2798         * python/exceptions.py: bring exceptions over from the bindings
2799         so they can be used in applications (Bug#2036)
2800         Make all exceptions derive from DBusException
2801
2802         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2803         of classes so that print obj doesn't throw an exception (Bug #1685)
2804
2805 2005-05-03  Ross Burton  <ross@openedhand.com>
2806
2807         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2808         Return if we get an error during registration.  Set up a
2809         weak reference on object to unregister if object is destroyed.
2810         (unregister_gobject): New function.
2811         
2812 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
2813
2814         * python/dbus_bindings.pyx.in: 
2815         - added new type classes for hinting to the marashaler what type 
2816         to send over the wire
2817         - added int16 and uint16 marshalers
2818         - Fixed a bug in the type constants that caused int32 to go out
2819         as uint16 over the wire
2820         * python/dbus.py: split up into different files and renamed _dbus.py
2821         * python/__init__.py, python/_util.py, python/decorators.py, 
2822         python/exceptions.py, python/proxies.py, python/services.py,
2823         python/types.py: new files split off from dbus.py
2824         * python/Makefile.am: Add new files, remove dbus.py and 
2825         install all python files to <python module dir>/dbus
2826         * python/examples/*: Added #!/usr/bin/env python to the top of
2827         every example.  Patch provided by Tatavarty Kalyan
2828
2829 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2830
2831         * NEWS: Update to 0.33
2832
2833 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2834
2835         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2836         method for doing async calls
2837         (_pending_call_notification): New C function for handling pendning call
2838         callbacks
2839         (set_notify): New method for setting pending call notification
2840         
2841         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2842         Async capabilities added to remote method calls
2843         (Sender): class removed
2844         (RemoteService): class removed
2845         (ObjectTree): class removed for now
2846         (RemoteObject): Renamed to ProxyObject
2847         (RemoteMethod): Renamed to ProxyMethod
2848         (method): Decorator added for decorating python methods as dbus methods
2849         (signal): Decorator added for decorating python methods as signal emitters
2850         (ObjectType): Metaclass added for generating introspection data and the
2851         method callback vtable
2852         (Interface): Wrapper class added to wrap objects in a dbus interface
2853         (Object): Uses ObjectType as its metaclass and exports Introspect
2854         of the org.freedesktop.DBus.Introspectable interface
2855         (ValidationException, UnknownMethodException): new exceptions
2856
2857         * python/examples/*: Modified to fit with the new bindings
2858
2859 2005-04-23  Havoc Pennington  <hp@redhat.com>
2860
2861         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2862         reported by Tony Houghton
2863
2864         * test/test-service.c (main): test
2865         dbus_connection_get_object_path_data()
2866
2867         * dbus/dbus-object-tree.c (find_handler): be sure we always init
2868         the exact_match
2869         (_dbus_object_tree_get_user_data_unlocked): new function used by
2870         dbus_connection_get_object_path_data()
2871         (do_register): add assertion test for get_user_data_unlocked
2872         (object_tree_test_iteration): more tests
2873
2874         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2875         new function from Dan Reed to let you get the user data from 
2876         dbus_connection_register_object_path()
2877
2878 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
2879
2880         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2881         in numerous places that did not account for the NULL terminator
2882         (signature_from_seed): changed the manual string copy loop to 
2883         just use strcpy instead
2884         make check should now pass
2885
2886 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
2887
2888         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2889         so that it allows messages that are not signals to pass in 
2890         NULL as the interface.
2891
2892 2005-04-18  David Zeuthen  <davidz@redhat.com>
2893
2894         * glib/dbus-gmain.c (io_handler_destroy_source): 
2895         (timeout_handler_destroy_source, connection_setup_free): 
2896         Also unref the source to avoid memory leaks.
2897
2898 2005-04-13  David Zeuthen  <davidz@redhat.com>
2899
2900         * bus/config-parser.c (bus_config_parser_new): Bump this to a
2901         more reasonable, yet still totally arbitrary, value :-). 
2902
2903 2005-04-13  David Zeuthen  <davidz@redhat.com>
2904
2905         * doc/TODO: Added an "important for 1.0" item about selinux
2906         allow/deny messages
2907
2908 2005-04-13  David Zeuthen  <davidz@redhat.com>
2909
2910         * bus/selinux.c: Add c-file-style to top of file
2911         (log_audit_callback): Don't free the data here anymore
2912         (bus_selinux_check): Don't take spid and tpid since appending
2913         that to auxdata may OOM.
2914         (bus_selinux_allows_acquire_service): Handle OOM and signal back
2915         to the caller if we are OOM by taking an error object.
2916         (bus_selinux_allows_send): -do-
2917
2918         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
2919         and bus_selinux_allows_send
2920
2921         * bus/bus.c (bus_context_check_security_policy): Pass error and
2922         pass on OOM thrown by bus_selinux_allows_send()
2923
2924         * bus/services.c (bus_registry_acquire_service): Pass error and
2925         pass on OOM thrown by bus_selinux_allows_acquire_service()
2926
2927 2005-04-13  Havoc Pennington  <hp@redhat.com>
2928
2929         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
2930         message at a time to avoid monopolizing the main loop, bug 
2931         #2953 from Benjamin Otte
2932
2933 2005-04-09  Havoc Pennington  <hp@redhat.com>
2934
2935         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
2936         possible overlap, fix from Daniel Reed
2937         (fixup_alignment): fix signedness warnings
2938         (_dbus_string_append_unichar): ditto
2939
2940 2005-04-09  Havoc Pennington  <hp@redhat.com>
2941
2942         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
2943
2944         * glib/dbus-glib-tool.c (main): fix warning
2945
2946         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
2947
2948         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
2949         add a new function that can be used in simple applications that
2950         don't have a main loop and are willing to block
2951
2952 2005-04-05  David Zeuthen  <davidz@redhat.com>
2953
2954         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
2955
2956         * glib/dbus-gmain.c:
2957         (io_handler_destroy_source): Remove from list of IO handlers
2958         of the ConnectionSetup object
2959         (timeout_handler_destroy_source): -do- for timeout handlers
2960         (io_handler_source_finalized): Don't remove from list since
2961         we now do that in io_handler_destroy_source(). Renamed from
2962         io_handler_source_destroyed
2963         (timeout_handler_source_destroyed): -do- for timeout handlers
2964         (connection_setup_free): It is now safe to iterate over all
2965         IO and timeout handlers as the _destroy_source removes them
2966         from the list synchronously
2967
2968 2005-03-30  Havoc Pennington  <hp@redhat.com>
2969
2970         * configure.in: change check to gtk 2.4
2971
2972         * tools/dbus-viewer.c (name_combo_changed_callback): remove
2973         gtk_combo_box_get_active_text() usage to decrement GTK requirement
2974         to 2.4
2975
2976 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
2977
2978         * News: Update 0.32
2979
2980         * HACKING: Fixed realease instructions.  configure.in should be updated to
2981           the next release by the person who made the last release.
2982
2983 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
2984
2985         * python/lvalue_cast_post_process.py - removed.  Patch has been
2986           submitted to Pyrex maintainers that fixes gcc4.0 errors
2987
2988         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
2989
2990 2005-03-24  Daniel Reed  <n@ml.org>
2991
2992         * tools/Makefile.am: Make print-introspect and
2993         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
2994
2995 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
2996
2997         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
2998
2999         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3000           had in Red Hat packages for a while but for some reason never 
3001           got merged upstream
3002           (_dbus_is_a_number): New checks if a string
3003           can be converted to a number and does the conversion if it can
3004           (_dbus_user_database_lookup): Add check to see if the given username
3005           is a udi.  This allows udi's to be used instead of usernames in the
3006           config file.
3007           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3008           is a gdi.  This allows gdi's to be used instead of groupnames in the
3009           config file.
3010
3011 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3012
3013         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3014           code so that it compiles with gcc4.0
3015
3016         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3017           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3018           results back to dbus_binding.c
3019
3020 2005-03-20  Colin Walters  <walters@verbum.org>
3021
3022         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3023
3024         * configure.in: Require GTK+ 2.6.
3025         
3026 2005-03-20  Colin Walters  <walters@verbum.org>
3027
3028         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3029
3030 2005-03-17  Tom Parker  <palfrey@tevp.net>
3031
3032         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3033         print DBUS_UID_UNSET; instead print passed username.  Also
3034         be sure to actually use gid looked up in cache.
3035         
3036         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3037         for DBUS_GID_UNSET and groupname.
3038
3039 2005-03-17  Colin Walters  <walters@verbum.org>
3040
3041         * bus/print-introspect.c: Move to tools/.
3042         * bus/run-with-tmp-session-bus.sh: Ditto.
3043         
3044         * glib/Makefile.am (dbus-glib-bindings.h): Move
3045         generation to tools/Makefile.am.
3046
3047         * test/glib/run-test.sh: Update to handle move
3048         of run-with-tmp-session-bus.sh.
3049
3050         * test/glib/test-service-glib.c: Update to handle
3051         move of dbus-glib-bindings.h.
3052
3053         * tools/print-introspect.c: Moved here
3054         from bus/, and ported to GLib bindings.
3055
3056         * tools/run-with-tmp-session-bus.sh: Moved here
3057         from bus/.
3058
3059         * tools/Makefile.am: Generate dbus-glib-bindings.h
3060         and dbus-bus-introspect.xml here.
3061
3062         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3063         Update.
3064
3065 2005-03-17  Colin Walters  <walters@verbum.org>
3066
3067         * bus/driver.c (write_args_for_direction): Use
3068         _dbus_string_get_const_data to retrieve string;
3069         _dbus_string_get_const_data_len doesn't actually return
3070         a NULL-terminated substring.
3071
3072         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3073         (main): Change to use org_freedesktop_DBus_request_name
3074         instead of using g_proxy_begin_call/end_call.
3075
3076 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3077
3078         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3079         generating the finalizer.  Fixes from Ben Maurer.
3080
3081 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3082
3083         * mono/BusDriver.cs: Update method names: ListServices
3084         becomes ListNames; GetOwner becomes GetNameOwner.
3085
3086         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3087         onto the eval stack when removing the delegate.
3088
3089 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3090
3091         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3092         LT_CURRENT.  Set it to the autoconf variable.
3093                                                                                 
3094         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3095         classes that disconnects the signal handler delegate from the
3096         service object.  Fixes a big leak of proxy objects on the
3097         client side of things.  Patch from Ben Maurer
3098         <bmaurer@ximian.com>
3099
3100 2005-03-12  Colin Walters  <walters@verbum.org>
3101
3102         * bus/driver.c (write_args_for_direction): New function,
3103         parses a type signature into arguments and outputs to
3104         XML.
3105         (bus_driver_handle_introspect): Use it instead of
3106         hardcoding XML for certain signatures.
3107         
3108         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3109         dependency on dbus-daemon.
3110
3111         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3112         argument, pass it to dbus_binding_tool_output_glib_client.
3113
3114         * glib/dbus-binding-tool-glib.c
3115         (generate_client_glue): Protect against multiple inclusion.
3116         (dbus_binding_tool_output_glib_client): Add
3117         G_BEGIN_DECLS/G_END_DECLS.
3118
3119         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3120         Change to just take iface prefix directly.
3121         (write_formal_parameters): Clarify error message.
3122         (check_supported_parameters): New function; checks to see type
3123         signatures of method parameters are supported.
3124         (generate_client_glue): Handle ignore_unsupported flag.
3125         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3126         parameter.
3127
3128         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3129         --ignore-unsupported by default until glib bindings
3130         support arrays.
3131
3132 2005-03-11  Colin Walters  <walters@verbum.org>
3133
3134         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3135         install it.
3136
3137         * bus/print-introspect.c: New file; prints introspection
3138         data for a given name and object path.
3139
3140         * bus/run-with-tmp-session-bus.sh: New file, refactored
3141         from test/glib/run-test.sh.  Creates a temporary session
3142         bus and runs another program.
3143
3144         * test/glib/run-test.sh: Refactor to invoke
3145         run-with-tmp-session-bus.sh.
3146
3147         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3148         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3149         macros instead of hardcoding.
3150
3151         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3152
3153 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3154
3155         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3156         this unref; it doesn't match up evenly in some codepaths.
3157         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3158         this evenly matches with the ref near the top of this function.
3159
3160 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3161
3162         * dbus/dbus-object-tree.c
3163         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3164         and we try to unregister a path that's not registered, still go
3165         through the process of unlocking and don't just return.
3166
3167 2005-03-09  Colin Walters  <walters@verbum.org>
3168
3169         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3170         to this are generated for client-side wrappers.  Invokes a
3171         D-BUS method and returns reply values.  
3172
3173         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3174         function; writes signature string for argument direction.
3175         (write_args_for_direction): Change to pass input values directly
3176         instead of via address, and fix indentation.
3177         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3178         make generated wrappers inlineable.
3179
3180         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3181         note about using dbus_type_is_fixed.
3182
3183         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3184         dbus/dbus-signature.c as dbus_type_is_fixed.
3185
3186         All callers updated.
3187
3188         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3189         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3190
3191         * dbus/dbus-signature.h: Prototype.
3192
3193         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3194         error printf code.
3195
3196         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3197         appropriate instead of just freeing it.
3198         (main): Free returned strings using g_free.
3199
3200         * test/glib/Makefile.am (test-service-glib-glue.h)
3201         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3202
3203         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3204         simply maps a simple D-BUS type to GType.
3205         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3206         GType.
3207         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3208         initialize the value with it.
3209         (dbus_gvalue_binding_type_from_type): Unused, delete.
3210         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3211         various types instead of unmarshalling to value data directly.
3212         Remove can_convert boolean.
3213         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3214         returning directly instead of using can_convert boolean.
3215         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3216         Stores a GValue in a pointer to a value of its corresponding C
3217         type.
3218
3219         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3220         add dbus_gvalue_store.
3221
3222 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3223
3224         Fix a bunch of lifecycle and memory management problems
3225         in the mono bindings.
3226
3227         * mono/Arguments.cs (Arguments): Implement IDisposable
3228
3229         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3230         strictly a static class.
3231
3232         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3233         delegates into this file.
3234         (Connection): Implement IDisposable.
3235         (Dispose): Disconnect the connection and set the raw connection
3236         pointer to IntPtr.Zero.
3237         (~Connection): Call Dispose().
3238         (RegisterObjectPath): Added.  Manages the registration of object
3239         paths so we can cleanly disconnect them at dispose/finalize time.
3240         (UnregisterObjectPath): Ditto.
3241         (set_RawConnection): Unregister all of the object paths when
3242         changing the underlying DBusConnection.  Add them back onto the
3243         new connection, if any.
3244
3245         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3246         more unmanaged resources anymore, so it's not necessary.  Move all
3247         the DBusObjectPathVTable stuff out of here.
3248         (Handler): Save references to our delegates so that they don't get
3249         finalized.  Call Connection.RegisterObjectPath() instead of
3250         dbus_connection_register_object_path() directly.
3251         (Message_Called): Dispose the message after we're finished with
3252         it.
3253
3254         * mono/Message.cs (Message): Implement IDisposable.
3255         (Dispose): Dispose the Arguments, and set the RawMessage to
3256         IntPtr.Zero.
3257         (SendWithReplyAndBlock): We own the ref to the reply that comes
3258         back from dbus_connection_send_with_reply_and_block() so add a
3259         comment about that and unref it after we've constructed a managed
3260         MethodReturn class around it.  Fixes a big, big leak.
3261
3262         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3263         method.
3264         (BuildSignalHandler): After we've sent the Signal message, dispose
3265         of it.
3266         (BuildMethod): Dispose of the method call and reply messages after
3267         we've sent the message and extracted the data we want from the
3268         reply.
3269
3270         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3271         anymore.
3272         (Service_FilterCalled): Dispose of the message after we're
3273         finished with it.
3274
3275 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3276
3277         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3278         After we attach our pending call to the connection, unref
3279         it.  Fixes a leak.
3280  
3281         * mono/Connection.cs (set_RawConnection): Disconnect our
3282         filter and match callbacks from the old connection and
3283         reconnect them to the new connection, if any.
3284
3285         * mono/DBusType/Array.cs: "Code" is a static member, so
3286         don't use "this" to refer to it.  Fix for stricter checking
3287         in Mono 1.1.4.
3288  
3289         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3290         object path that we pass into unmanaged code.
3291  
3292         * mono/DBusType/String.cs (Append): Don't leak the string
3293         that we pass into unmanged code.
3294
3295 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3296         * NEWS: Update for 0.31
3297
3298         * configure.in: Release 0.31
3299         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3300
3301         * qt/Makefile.am: fixed build
3302
3303         * dbus/Makefile.am: soname bump for libdbus
3304
3305         * glib/Makefile.am: soname bump for libdbus-glib
3306
3307 2005-03-05  Havoc Pennington  <hp@redhat.com>
3308
3309         * dbus/dbus-sysdeps.c:
3310         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3311         value
3312         (_dbus_generate_random_bytes_buffer): fix return value
3313
3314         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3315         checks actually work, from Tom Parker <fdo@tevp.net>
3316
3317 2005-03-01  Colin Walters  <walters@verbum.org>
3318
3319         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3320         functions copied from dbus-glib-tool.c.
3321         (main): Convert lots of error code to use them.
3322         Also add some testing for introspection bits.
3323
3324 2005-03-01  Colin Walters  <walters@verbum.org>
3325         
3326         * doc/TODO: Remove introspection signature TODO.
3327
3328 2005-02-27  Colin Walters  <walters@verbum.org>
3329
3330         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3331         Change return value to const char * instead of int so we can do
3332         full signatures.
3333         (struct PropertyInfo, struct ArgInfo): Store char *.
3334         (property_info_new, arg_info_new): Update parameters, strdup.
3335         (property_info_unref, arg_info_unref): Free.
3336
3337         * glib/dbus-gidl.h: Update prototypes.
3338
3339         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3340         (validate_signature): New function, just validates signature and
3341         sets GError.
3342         (parse_property, parse_arg): Invoke validate_signature.  Store
3343         signature instead of just type code.
3344
3345         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3346         function to return a primary type for a signature, dropping
3347         information about types in container types.
3348         (dbus_gvalue_genmarshal_name_from_type)
3349         (dbus_gvalue_binding_type_from_type)
3350         (dbus_gvalue_ctype_from_type): Update to take full signature
3351          instead of type code.
3352         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3353
3354         * glib/dbus-gvalue.h: Update prototypes for above.
3355
3356         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3357         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3358         (introspect_properties, introspect_signals, write_interface):
3359         Update to handle signatures, and remove usage of
3360         _dbus_gutils_type_to_string.
3361         (handle_introspect): Print out type codes instead of e.g. "string"
3362         in hardcoded introspection XML; also use x_AS_STRING constants
3363         instead of hardcoding in string.
3364
3365         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3366         to string.  Remove usage of _dbus_gutils_type_to_string.
3367
3368         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3369
3370         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3371         deletion.
3372         
3373         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3374         (compute_marshaller_name, generate_glue): Handle signature change
3375         to string.
3376         (write_formal_parameters, write_args_for_direction): Ditto, and
3377         remove FIXME.
3378
3379         * tools/dbus-tree-view.c (type_to_string): Delete.
3380         (info_set_func_text): Update to print full signatures.
3381
3382         * test/glib/test-service-glib.xml: Change types to new
3383         introspection format.
3384
3385 2005-02-26  Havoc Pennington  <hp@redhat.com>
3386
3387         * doc/TODO: remove the "guid" item
3388
3389         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3390         (with_bus_thread_func): use open_private
3391
3392         * dbus/dbus-connection.c (dbus_connection_open_private): new
3393         function that works like the old dbus_connection_open()
3394         (dbus_connection_open): now returns an existing connection if
3395         possible
3396
3397         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3398         through the GUID to the transport
3399
3400         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3401         GUID in hex-encoded form.
3402
3403         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3404         pass GUID argument in to the transport
3405
3406         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3407         guid argument
3408
3409         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3410
3411         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3412
3413 2005-02-25  Havoc Pennington  <hp@redhat.com>
3414
3415         * doc/dbus-specification.xml: document the GUID thing
3416
3417         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3418         globally unique ID for the server, and put a "guid=hexencoded"
3419         field in the address
3420
3421         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3422
3423         * dbus/dbus-message.c: ditto
3424
3425         * dbus/dbus-dataslot.c: ditto
3426
3427         * dbus/dbus-list.c: ditto
3428
3429         * dbus/dbus-internals.h: wait, just include
3430         dbus-threads-internal.h here
3431         
3432         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3433         use in main library
3434
3435         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3436
3437 2005-02-24  Colin Walters  <walters@verbum.org>
3438
3439         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3440
3441 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3442
3443         * glib/Makefile.am: added dbus-gobject.h to sources list
3444         so distcheck doesn't fail
3445         
3446 2005-02-24  Havoc Pennington  <hp@redhat.com>
3447
3448         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3449         you must disconnect before unref, since locking and other things
3450         are screwed up otherwise. Fix assorted other locking stuff.
3451
3452         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3453         fix compilation
3454
3455         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3456         into a private header and don't export from the library
3457
3458         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3459
3460 2005-02-24  Colin Walters  <walters@verbum.org>
3461         
3462         * dbus/dbus-signature.c: New file; implements various functions
3463         related to type signatures.  Includes an interator for parsing,
3464         validation functions.
3465         (dbus_type_is_basic): Moved here from
3466         dbus-marshal-basic.c:_dbus_type_is_basic.
3467         (dbus_type_is_container): Moved here from
3468         dbus-marshal-basic.c:_dbus_type_is_container.
3469
3470         All callers of _dbus_type_is_container and _dbus_type_is_basic
3471         updated, and include dbus-signature.h.
3472
3473         * dbus/dbus-signature.h: New file; prototypes for the above.
3474
3475         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3476         dbus-signature.h.
3477
3478         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3479         function factored out of _dbus_first_type_in_signature.
3480         (_dbus_first_type_in_signature_c_str): New function; returns first
3481         type code for a type signature character.
3482
3483         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3484         handle function moves.
3485
3486         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3487
3488         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3489         function; skips to next complete type in type signature.
3490         Implemented using previous skip_one_complete_type.  Now
3491         skip_one_complete_type just delegates to
3492         _dbus_type_signature_next.
3493
3494         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3495         to dbus-signature.c
3496         (_dbus_type_is_container): Ditto.
3497
3498         * doc/dbus-specification.xml: Update introspection sample to
3499         use real type signatures.
3500
3501         * dbus/dbus-test.h: Prototype signature test.
3502
3503         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3504         signature tests.
3505
3506         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3507
3508 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3509
3510         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3511         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3512
3513 2005-02-21  Colin Walters  <walters@verbum.org>
3514
3515         * dbus/dbus-test-main.c (main): Take optional specific test
3516         argument.
3517
3518         * dbus/dbus-test.c (run_test): New function, runs a test function
3519         with no data directory.
3520         (run_data_test): Like above, but takes data directory.
3521         (dbus_internal_do_not_use_run_tests): Take
3522         specific test argument.  Replace lots of cut n' paste code
3523         with run_test and run_data_test.
3524
3525         * dbus/dbus-test.h: Update prototype for
3526         dbus_internal_do_not_use_run_tests.
3527
3528 2005-02-20  Havoc Pennington  <hp@redhat.com>
3529
3530         Fix bugs reported by Daniel P. Berrange
3531         
3532         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3533         (protected_change_watch): new function
3534         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3535         (_dbus_server_add_watch): change to work like the
3536         dbus-connection.c equivalents; like those, probably kind of
3537         busted, but should at least mostly work for now
3538         (dbus_server_disconnect): drop the lock if we were already
3539         disconnected, patch from Daniel P. Berrange
3540
3541         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3542         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3543         same stuff
3544
3545         * doc/TODO: todo about unscrewing this mess
3546
3547 2005-02-19  Colin Walters  <walters@verbum.org>
3548
3549         * glib/dbus-binding-tool-glib.c
3550         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3551
3552         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3553         as errno.h and sys/stat.h.
3554         (lose): New function, prints error with
3555         newline and exits.
3556         (lose_gerror): Similar, but takes GError for message.
3557         (main): Add --output argument to specify output file to write to,
3558         instead of always printing to stdout.  In this mode, determine
3559         timestamps on source files to see whether any are newer than the
3560         target file.  If not, exit.  Also convert a number of error
3561         messages to use lose (since it's shorter), and switch to using
3562         g_io_channel_shutdown.
3563
3564 2005-02-19  Havoc Pennington  <hp@redhat.com>
3565
3566         * glib/dbus-gobject.c
3567         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3568
3569         * glib/dbus-glib.c: fix doxygen warnings
3570
3571         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3572         is found on an <arg>
3573
3574 2005-02-17  Colin Walters  <walters@verbum.org>
3575
3576         * glib/dbus-gobject.h: Don't export
3577         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3578         
3579         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3580         (invoke_object_method): Handle it.
3581
3582         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3583         Handle rename.
3584         
3585 2005-02-17  Colin Walters  <walters@verbum.org>
3586
3587         * bus/.cvsignore, doc/.cvsignore
3588         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3589         Update.
3590
3591 2005-02-17  Colin Walters  <walters@verbum.org>
3592         
3593         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3594         Rename to DBUS_SERVICE_DBUS.
3595         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3596         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3597         Change the value from "org.freedesktop.Local"
3598         to "org.freedesktop.DBus.Local".
3599         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3600         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3601         DBUS_INTERFACE_INTROSPECTABLE.
3602         Change the value from "org.freedesktop.Introspectable"
3603         to "org.freedesktop.DBus.Introspectable".
3604         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3605         DBUS_INTERFACE_PROPERTIES.
3606         Change the value from "org.freedesktop.Properties"
3607         to "org.freedesktop.DBus.Properties".
3608         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3609         DBUS_INTERFACE_PEER.
3610         Change the value from "org.freedesktop.Peer"
3611         to "org.freedesktop.DBus.Peer".
3612         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3613         DBUS_INTERFACE_LOCAL.
3614         Change the value from "org.freedesktop.Local"
3615         to "org.freedesktop.DBus.Local".
3616
3617         All other users of those constants have been changed.
3618
3619         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3620
3621         * glib/dbus-gobject.c (handle_introspect): Use constants.
3622
3623         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3624
3625 2005-02-17  Colin Walters  <walters@verbum.org>
3626
3627         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3628         (parse_node, parse_interface, parse_method, parse_signal)
3629         (parse_property, parse_annotation): Lose if we're currently in an
3630         annotation.
3631         (parse_annotation): New function.
3632         (parser_start_element, parser_end_element): Handle annotation.
3633         (parse_method, parse_interface): Remove support for c_name attribute,
3634         switch to annotations.
3635
3636         * glib/dbus-gidl.h (interface_info_get_binding_names)
3637         (method_info_get_binding_names)
3638         (interface_info_get_binding_name, method_info_get_binding_name)
3639         (interface_info_set_binding_name, method_info_set_binding_name):
3640         Remove.
3641         (interface_info_get_annotations, method_info_get_annotations)
3642         (interface_info_get_annotation, method_info_get_annotation)
3643         (interface_info_add_annotation, method_info_add_annotation):
3644         Prototype.
3645
3646         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3647         for "bindings".
3648         (struct MethodInfo): Ditto.
3649         Straightfoward conversion of binding methods into annotation methods
3650         as prototyped.
3651
3652         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3653
3654         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3655
3656         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3657         Use new annotation API.
3658
3659         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3660         annotation element.
3661         
3662         * doc/dbus-specification.xml: Discuss introspection annotations,
3663         include list of well-known annotations.
3664
3665         * test/glib/test-service-glib.xml: Make validate against new DTD.
3666
3667 2005-02-17  Colin Walters  <walters@verbum.org>
3668
3669         This patch is based on initial work from
3670         Paul Kuliniewicz <kuliniew@purdue.edu>.
3671
3672         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3673         initialization of GValue from dbus type to here.
3674         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3675         for the "glib-genmarshal" program from a DBus type.
3676         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3677         into the C name for it we use in the glib bindings.
3678         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3679         glib C type (not GValue).
3680         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3681
3682         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3683         from dbus-gobject.c.
3684
3685         * glib/dbus-gutils.h: Prototype it.
3686
3687         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3688         (marshal_dbus_message_to_g_marshaller): Use new shared function
3689         dbus_glib_marshal_dbus_message_to_gvalue_array.
3690
3691         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3692         Will be changed once we have annotations.
3693
3694         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3695         GStaticRWLock.  Callers updated.
3696         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
3697         (string_table_next): New function for iterating over zero-terminated
3698         string value array.
3699         (string_table_lookup): New function; retrieves specific entry in
3700         array.
3701         (get_method_data): New function; look up method data in object data chunk.
3702         (object_error_domain_prefix_from_object_info)
3703         (object_error_code_from_object_info): New functions, but not implemented yet.
3704         (method_interface_from_object_info): New function; retrieve interface name.
3705         (method_name_from_object_info): New function; retrieve method name.
3706         (method_arg_info_from_object_info): New function; retrieve argument data.
3707         (arg_iterate): New function; iterates over serialized argument data.
3708         (method_dir_signature_from_object_info): New function; returns a
3709         GString holding type signature for arguments for just one
3710         direction (input or output).
3711         (method_input_signature_from_object_info)
3712         (method_output_signature_from_object_info): New functions.
3713         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3714         converts dbus message arguments into a GValue array.  Used for both
3715         signal handling and method invocation.
3716         (struct DBusGlibWriteIterfaceData): New utility structure.
3717         (write_interface): New function; generate introspection XML for
3718         an interface.
3719         (introspect_interfaces): New function; gathers all interface->methods,
3720         generates introspection XML for them.
3721         (handle_introspect): Invoke introspect_interfaces.
3722         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3723         (lookup_object_and_method): New function; examines an incoming message
3724         and attempts to match it up (via interface, method name, and argument
3725         signature) with a known object and method.
3726         (gerror_domaincode_to_dbus_error_name): New function; converts a
3727         GError domain and code into a DBus error name.  Needs GError data
3728         added to object introspection to work well.
3729         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3730         GError.
3731         (invoke_object_method): New function to invoke an object method
3732         looked up via lookup_object_and_method.  Parses the incoming
3733         message, turns it into a GValue array, then invokes the marshaller
3734         specified in the DBusGMethodInfo.  Creates a new message with
3735         either return values or error message as appropriate.
3736         (gobject_message_function): Invoke lookup_object_and_method and
3737         invoke_object_method.
3738
3739         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3740         (enum DBusBindingOutputMode): New enum for binding output modes.
3741         (pretty_print): Print binding names.
3742         (dbus_binding_tool_error_quark): GError bits.
3743         (version): Fix typo.
3744         (main): Create GIOChannel for output.  Parse new --mode argument,
3745         possible values are "pretty-print", "glib-server", "glib-client".
3746         Use mode to invoke appropriate function.
3747         
3748         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3749
3750         * glib/dbus-glib-tool.h: New header, just includes GError bits
3751         for now.
3752
3753         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3754         maps binding style to name.
3755         (struct MethodInfo): Ditto.
3756         (get_hash_keys, get_hash_key): Utility function, returns keys for
3757         a GHashTable.
3758         (interface_info_new, method_info_new): Initialize bindings.
3759         (interface_info_unref, method_info_unref): Destroy bindings.
3760         (method_info_get_binding_names, method_info_get_binding_name)
3761         (interface_info_get_binding_names, interface_info_get_binding_name):
3762         Functions for retrieving binding names.
3763         (method_info_set_binding_name, interface_info_set_binding_name):
3764         Functions for setting binding names.
3765
3766         * glib/dbus-binding-tool-glib.h: New file, has prototypes
3767         for glib binding generation.
3768
3769         * glib/dbus-binding-tool-glib.c: New file, implements server-side
3770         and client-side glib glue generation.
3771
3772         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3773         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3774         dbus-glib-tool.h.
3775
3776         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3777         of using GClosureMarshal directly.
3778         (struct DBusGObjectInfo): Add n_infos member.
3779
3780         * test/glib/test-service-glib.xml: New file; contains introspection data
3781         for MyTestObject used in test-service-glib.c.
3782
3783         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3784         (my_object_do_nothing, my_object_increment, my_object_throw_error)
3785         (my_object_uppercase, my_object_many_args): New test methods.
3786         (main): Use dbus_g_object_class_install_info to include generated object
3787         info.
3788
3789         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3790         as well as client-side bindings.
3791
3792         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3793         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3794         using both the dbus_gproxy stuff directly as well as the generated bindings.
3795
3796 2005-02-15  Havoc Pennington  <hp@redhat.com>
3797
3798         * dbus/dbus-connection.c (dbus_connection_dispatch): always
3799         complete a pending call, don't run filters first.
3800
3801         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3802         dbus_pending_call_steal_reply
3803
3804         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3805         _dbus_connection_block_pending_call
3806         (dbus_pending_call_get_reply): change to steal_reply and return a
3807         ref
3808
3809         * dbus/dbus-connection.c
3810         (dbus_connection_send_with_reply_and_block): port to work in terms
3811         of DBusPendingCall
3812         (_dbus_connection_block_pending_call): replace block_for_reply
3813         with this
3814
3815 2005-02-14  Havoc Pennington  <hp@redhat.com>
3816
3817         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3818         properly handle looking up group information by name; fix 
3819         from j@bootlab.org
3820
3821 2005-02-13  Havoc Pennington  <hp@redhat.com>
3822
3823         * dbus/dbus-connection.c (dbus_connection_return_message) 
3824         (dbus_connection_borrow_message): hold dispatch lock while message
3825         is outstanding
3826         (_dbus_connection_block_for_reply): hold dispatch lock while we
3827         block for the reply, so nobody steals our reply
3828         (dbus_connection_pop_message): hold the dispatch lock while we
3829         pluck the message
3830
3831 2005-02-13  Havoc Pennington  <hp@redhat.com>
3832
3833         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3834         (_dbus_connection_release_dispatch)
3835         (_dbus_connection_acquire_io_path)
3836         (_dbus_connection_release_io_path): make the mutex and condvar
3837         control access to the "acquired" flag. Drop the connection lock
3838         while waiting on the condvar. Hopefully these are baby steps in
3839         roughly the right direction.
3840
3841 2005-02-13  Havoc Pennington  <hp@redhat.com>
3842
3843         * dbus/dbus-connection.c: use separate mutexes for the condition
3844         variables; this is some kind of baseline for sanity, but the
3845         condition variables still aren't used correctly afaict
3846
3847 2005-02-13  Havoc Pennington  <hp@redhat.com>
3848
3849         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3850         fix a double-unlock
3851
3852         * dbus/dbus-connection.c
3853         (_dbus_connection_detach_pending_call_unlocked): add this
3854
3855         Initial semi-correct pass through to fix thread locking; there are
3856         still some issues with the condition variable paths I'm pretty
3857         sure
3858         
3859         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3860         lock/unlock calls
3861
3862         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3863         rename to add _unlocked
3864         (struct DBusConnection): move "dispatch_acquired" and
3865         "io_path_acquired" to use only one bit each.
3866         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3867         (dbus_connection_set_watch_functions): hacky fix to reentrancy
3868         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
3869         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
3870         (_dbus_connection_remove_timeout) 
3871         (_dbus_connection_toggle_timeout): drop lock when calling out to
3872         user functions; done in a hacky/bad way.
3873         (_dbus_connection_send_and_unlock): add a missing unlock
3874         (_dbus_connection_block_for_reply): add a missing unlock
3875
3876         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3877         drop lock in a hacky probably unsafe way to call out to user
3878         function
3879
3880 2005-02-12  Havoc Pennington  <hp@redhat.com>
3881
3882         * tools/dbus-tree-view.c (info_set_func_text): display more
3883         details on args
3884
3885         * bus/driver.c (bus_driver_handle_list_services): list the bus
3886         driver
3887
3888         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3889
3890         * glib/dbus-gidl.c (signal_info_get_n_args): new function
3891         (method_info_get_n_args): new function
3892
3893 2005-02-12  Havoc Pennington  <hp@redhat.com>
3894
3895         * bus/driver.c (bus_driver_handle_introspect): add introspection
3896         for bus driver
3897
3898 2005-02-12  Havoc Pennington  <hp@redhat.com>
3899
3900         * bus/driver.c: put the signature of each bus driver method in the
3901         table of handlers and check it on incoming calls; this isn't
3902         really useful, but going to add introspect support in a minute.
3903
3904 2005-02-11  Joe Shaw  <joeshaw@novell.com>
3905
3906         * mono/Connection.cs: The unpredictability of finalizers in mono
3907         prevents us from deterministically disconnecting the filters from
3908         the Service class's finalizer, so move tracking of filters and
3909         matches here.  Add API for that.
3910
3911         * mono/Service.cs: Remove the code, add code which calls the
3912         methods now on the Connection class.
3913
3914 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
3915
3916         * python/dbus.py (class Sender): added to support dbus signals better
3917         (Bus::add_signal_receiver): added expand_args parameter which defaults
3918         to True.  When expand args is True the signal handler will pass the 
3919         message arguments as parameters to the signal handler.  If False
3920         revert to previous behavior where the signal handler must get the
3921         argument list from the message.  This is to help port applications
3922         like HAL that have a tendancy to send variable length argument lists.
3923         self._match_rule_to_receivers is now a dict of dicts.
3924         (Bus::remove_signal_receiver): pop handler off the dict intead of 
3925         removing it from a list
3926         (Bus::_signal_func): change signal handlers so that interface,
3927         signal_name, service, path and message are packed into a Sender
3928         object and that is passed to the handler.  If expand_args is True
3929         extract the args list from the message and append it to the parameter
3930         list
3931         
3932         * python/dbus_bindings.pyx.in (class Signature): added to support 
3933         signiature types
3934         (MessageIter::__init__): changed iteration limit to match D-BUS
3935         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
3936         STRUCT and VARIENT type support
3937         (MessageIter::python_value_to_dbus_sig): made recursive to support
3938         recursive types
3939         (MessageIter::append*): added Signature, dict, tuple 
3940         support
3941
3942         * python/examples/example-client.py: added examples of getting tuples
3943         and dicts
3944
3945         * python/examples/example-service.py: added examples of sending tuples
3946         and dicts
3947
3948         * python/examples/example-signal-recipient.py: Fixed to handle new
3949         signal callback format
3950
3951 2005-02-10  Havoc Pennington  <hp@redhat.com>
3952
3953         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
3954         (call dbus_g_proxy_add_signal)
3955
3956         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3957         escape the hostname
3958         (_dbus_server_new_for_domain_socket): escape the path
3959
3960         * dbus/dbus-address.c (dbus_address_escape_value): new
3961         (dbus_address_unescape_value): new
3962         (dbus_parse_address): unescape values
3963
3964         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
3965
3966         * doc/dbus-specification.xml: explain how to escape values in
3967         addresses
3968
3969 2005-02-10  Havoc Pennington  <hp@redhat.com>
3970
3971         * dbus/dbus-message-factory.c (generate_special): modify test to
3972         avoid using a non-basic dict key
3973
3974         * dbus/dbus-marshal-validate-util.c: add test for the below
3975
3976         * doc/dbus-specification.xml: require that dict keys are a basic
3977         type
3978
3979         * dbus/dbus-marshal-validate.c
3980         (_dbus_validate_signature_with_reason): require that dict key is a
3981         basic type
3982
3983 2005-02-10  Havoc Pennington  <hp@redhat.com>
3984
3985         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3986         change to be _and_unlock instead of _unlocked
3987
3988         * dbus/dbus-connection.c
3989         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
3990         have no_update so we can find this bug quickly in future
3991
3992 2005-02-10  Havoc Pennington  <hp@redhat.com>
3993
3994         * dbus/dbus-message-util.c (verify_test_message): tests for string
3995         array
3996
3997         * dbus/dbus-message.c (dbus_message_append_args_valist): add
3998         support for arrays of string/signature/path
3999
4000 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4001
4002         * dbus/dbus-connection.c
4003         (_dbus_connection_queue_received_message_link,
4004         _dbus_connection_message_sent): Add the path to
4005         the verbose output.
4006         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4007         _dbus_connection_send_preallocated_unlocked(), updated the
4008         dispatch status, and unlocks.  Fixes a bug where certain
4009         situations (like a broken pipe) could cause a Disconnect message
4010         to not be sent, tricking the bus into thinking a service was still
4011         there when the process had quit.
4012         (_dbus_connection_send_preallocated): Call
4013         _dbus_connection_send_preallocated_and_unlock().
4014         (_dbus_connection_send_and_unlock): Added.  Calls
4015         _dbus_connection_send_preallocated_and_unlock().
4016         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4017         (dbus_connection_send_with_reply): Update the dispatch status and
4018         unlock.
4019
4020         * mono/Service.cs (~Service): Added.  Removes the filter so that
4021         we don't get unmanaged code calling back into a GCed delegate.
4022         (RemoveFilter); Added.
4023
4024 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4025
4026         * dbus/dbus-message.c (dbus_message_iter_open_container):
4027         - Removed check for iterator type being an array because
4028         get_arg_type does not work with writer iterators
4029         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4030
4031 2005-02-07  Havoc Pennington  <hp@redhat.com>
4032
4033         * doc/dbus-specification.xml: some more language cleanups; add
4034         stuff about how to deal with invalid protocol and extension
4035         points; add _ to allowed chars in auth commands; add EXTENSION_
4036         auth command prefix
4037
4038 2005-02-06  Havoc Pennington  <hp@redhat.com>
4039
4040         * s/expected/required/ in a couple places for clarity
4041
4042 2005-02-07  Colin Walters  <walters@verbum.org>
4043
4044         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4045         sender or proposed_recipient.
4046
4047 2005-02-06  Havoc Pennington  <hp@redhat.com>
4048
4049         * dbus/dbus-message-factory.c (generate_special): more tests
4050
4051         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4052         array length that exceeds the maximum
4053
4054 2005-02-05  Havoc Pennington  <hp@redhat.com>
4055
4056         * dbus/dbus-message-factory.c (generate_special): more test cases,
4057         increasing coverage
4058
4059         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4060         reason why a signature was invalid
4061
4062         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4063         skip the length of the string before we look at it in validation
4064
4065         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4066         equal_substring
4067
4068         * dbus/dbus-message.c (_dbus_message_loader_new): default
4069         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4070
4071 2005-02-05  Havoc Pennington  <hp@redhat.com>
4072
4073         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4074         if the signature of a variant was empty
4075         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4076         struct with no element type)
4077
4078         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4079         mangled messages to break things
4080
4081 2005-02-04  Havoc Pennington  <hp@redhat.com>
4082
4083         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4084         g_quark_try_string() so it actually can return 0
4085         (dbus_g_proxy_connect_signal): ditto
4086
4087 2005-02-04  Havoc Pennington  <hp@redhat.com>
4088
4089         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4090         bogus warning
4091         (tristring_from_message): assert cleanly on null path/interface
4092         (should not be possible though I decided later)
4093         (dbus_g_proxy_dispose): move proxy manager unregistration here
4094         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4095         g_return_if_fail() checks
4096
4097 2005-02-04  Havoc Pennington  <hp@redhat.com>
4098
4099         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4100
4101         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4102         (with some minor changes)
4103
4104         * doc/dbus-specification.xml: add deprecated attribute to
4105         introspection format
4106
4107 2005-01-31  Havoc Pennington  <hp@redhat.com>
4108
4109         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4110         think it's sort of right
4111
4112 2005-01-30  Havoc Pennington  <hp@redhat.com>
4113
4114         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4115
4116 2005-01-30  Havoc Pennington  <hp@redhat.com>
4117
4118         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4119
4120         * autogen.sh: change to autotools 1.9
4121
4122         * glib/dbus-gproxy.c: completely change how signals work
4123         (dbus_g_proxy_add_signal): new function to specify signature of a
4124         signal
4125         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4126         and g_warning if the incoming message has the wrong signature.
4127
4128 2005-01-30  Havoc Pennington  <hp@redhat.com>
4129
4130         * tools/dbus-names-model.c (have_names_notify): fix this
4131
4132         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4133         up the string array handling a bit 
4134
4135 2005-01-30  Havoc Pennington  <hp@redhat.com>
4136
4137         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4138         (dbus_g_pending_call_cancel): new function
4139
4140         * dbus/dbus-glib.h: move GType decls for connection/message here;
4141         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4142         here, just kind of rationalizing how we handle all that
4143
4144         * tools/dbus-names-model.c: new file for a tree model listing the
4145         services on a bus
4146
4147         * tools/dbus-tree-view.c (model_new): use proper typing on the
4148         model rows
4149
4150 2005-01-30  Havoc Pennington  <hp@redhat.com>
4151
4152         * glib/dbus-gmain.c: add a custom GSource back that just checks
4153         whether the message queue has anything in it; otherwise, there are 
4154         cases where we won't see messages in the queue since there was no 
4155         IO visible to the glib main loop
4156
4157         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4158         increase default message timeout to 25 seconds
4159
4160 2005-01-30  Havoc Pennington  <hp@redhat.com>
4161
4162         * test/glib/test-profile.c (no_bus_stop_server): remove the
4163         warning about the g_warning that I just fixed
4164
4165         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4166         custom source, seems to be a lot easier to understand and work
4167         better.
4168
4169 2005-01-30  Havoc Pennington  <hp@redhat.com>
4170
4171         I think this main loop thing is conceptually broken, but here are 
4172         some band aids. I'll maybe rewrite it in a minute.
4173         
4174         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4175         custom GSource, so don't pass it in; confusing
4176         (gsource_server_finalize, gsource_connection_finalize): add
4177         finalize handlers that remove all the watches.  
4178
4179 2005-01-30  Havoc Pennington  <hp@redhat.com>
4180
4181         * glib/dbus-gobject.c (introspect_properties): fix the XML
4182         generated
4183
4184         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4185         which effectively detects the use of freed messages
4186
4187         * glib/dbus-gobject.c (handle_introspect): modify and return the
4188         reply message instead of the incoming message
4189
4190         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4191         gee, maybe it should SEND THE XML instead of just making a string
4192         and freeing it again ;-)
4193
4194         * tools/dbus-print-message.c (print_message): improve printing of
4195         messages
4196
4197         * configure.in: add debug-glib.service to the output
4198
4199 2005-01-30  Havoc Pennington  <hp@redhat.com>
4200
4201         dbus-viewer introspected and displayed the bus driver
4202         
4203         * dbus/dbus-object-tree.c 
4204         (object_tree_test_iteration): add tests for a handler registered on "/"
4205
4206         * dbus/dbus-object-tree.c
4207         (_dbus_decompose_path): fix to handle path "/" properly
4208         (run_decompose_tests): add tests for path decomposition
4209         
4210         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4211         properly
4212
4213         * glib/dbus-gobject.c (handle_introspect): fix quotes
4214
4215         * test/glib/run-test.sh: support launching the bus, then running
4216         dbus-viewer
4217
4218         * test/glib/test-service-glib.c (main): put in a trivial gobject
4219         subclass and register it on the connection
4220
4221         * bus/driver.c (bus_driver_handle_introspect): implement
4222         introspection of the bus driver service
4223
4224         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4225         identifiers, doctype decl
4226
4227         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4228         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4229         returning the service unchanged.
4230         (bus_driver_handle_message): remove old check for reply_serial in
4231         method calls, now the message type deals with that
4232         (bus_driver_handle_message): handle NULL interface
4233
4234         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4235
4236         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4237         -1 for len
4238
4239         * tools/dbus-viewer.c: add support for introspecting a service on
4240         a bus
4241
4242         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4243         (dbus_g_pending_call_unref): add
4244
4245 2005-01-29  Havoc Pennington  <hp@redhat.com>
4246
4247         * tools/dbus-tree-view.c: add support for displaying properties.
4248         (run dbus-viewer with an introspect xml file as arg, then resize
4249         the window so the tree elements show up, not sure what that is)
4250
4251         * glib/dbus-gobject.c (handle_introspect): return
4252         org.freedesktop.Properties and org.freedesktop.Introspectable
4253         interfaces when we are introspected.
4254
4255         * doc/dbus-specification.xml: allow empty interface name when 
4256         Get/Set a property
4257
4258 2005-01-29  Havoc Pennington  <hp@redhat.com>
4259
4260         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4261         though it uses glib, it could be extended for any binding in
4262         principle
4263
4264         * glib/dbus-gobject.c (gobject_message_function): change to the
4265         new way properties work
4266
4267         * dbus/dbus-protocol.h: add the new interfaces
4268
4269         * doc/dbus-specification.xml: document the introspection format,
4270         Introspectable interface, and add an org.freedesktop.Properties
4271         interface.
4272
4273         * glib/dbus-gparser.c: add support for a <property> element
4274
4275         * glib/dbus-gidl.c: add PropertyInfo
4276
4277         * glib/dbus-gobject.c (handle_introspect): put the outermost
4278         <node> outside the signal and property descriptions.
4279         (introspect_properties): export properties as <property> rather
4280         than as method calls
4281
4282 2005-01-28  Havoc Pennington  <hp@redhat.com>
4283
4284         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4285         related to authentication protocol
4286
4287 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4288
4289         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4290                 - BUS_ACTIVATION -> BUS_STARTER
4291                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4292                 - class MessageIter (__init__): Added recursion checking 
4293                 so we throw a nice error instead of just disconnecting from the
4294                 bus.
4295                 (get): Added arg_type parameter for recursion.
4296                 Removed the nil type
4297                 Added signiture type placeholder (not implemented)
4298                 Added struct type placeholder (not implemented)
4299                 Added varient type placeholder (not implemented)
4300                 Commented out dict type for now     
4301                 (get_element_type): renamed from get_array_type
4302                 (get_*): changed to use the dbus_message_iter_get_basic API
4303                 (get_*_array): removed in favor of recursive get_array method
4304                 (get_array): new recursive method which calls get to marshal
4305                 the elements of the array
4306                 (value_to_dbus_sig): New method returns the corrasponding
4307                 dbus signiture to a python value
4308                 (append): Comment out dict handling for now
4309                 Handle lists with the new recursive API
4310                 Comment out None handling for now
4311                 (append_nil): removed
4312                 (append_*): changed to use dbus_message_iter_append_basic API
4313                 (append_*_array): removed in favor of recursive append_array 
4314                 method
4315                 (__str__): Make it easier to print out recursive iterators
4316                 for debugging
4317                 - class Message (__str__): moved type inspection to the
4318                 MessageIter class' __str__ method
4319                 (get_iter): Added an append parameter wich defaults to False
4320                 If True use the new API's to create an append iterator
4321
4322         * python/dbus.py: Update to use new bindings API
4323                 - TYPE_ACTIVATION -> TYPE_STARTER
4324                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4325                 - class ActivationBus -> class StarterBus
4326                 - class RemoteObject (__call__): get an append iterator
4327                 - (_dispatch_dbus_method_call): get an append iterator
4328                 - class Object (emit_signal): get an append iterator
4329
4330         * python/examples/: Fixed up the examples to work with the new API
4331                 
4332 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4333
4334         * configure.in: Bump version up to 0.30.
4335
4336         * HACKING: Add a release item to bump the version number up after 
4337         a release.
4338
4339 2005-01-28  Havoc Pennington  <hp@redhat.com>
4340
4341         * doc/dbus-specification.xml: update to describe 16-bit types and
4342         dict entries
4343
4344         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4345         assertion
4346
4347         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4348         type
4349
4350         * dbus/dbus-marshal-recursive.c: implement
4351
4352 2005-01-27  Havoc Pennington  <hp@redhat.com>
4353
4354         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4355
4356         * configure.in: find the right type for 16 and 32 bit ints as well
4357         as 64
4358
4359         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4360         the 16-bit types so people don't have to stuff them in 32-bit or
4361         byte arrays.
4362
4363 2005-01-27  Havoc Pennington  <hp@redhat.com>
4364
4365         * dbus/dbus-message.c: byteswap the message if you init an
4366         iterator to read/write from it
4367         
4368         * dbus/dbus-marshal-byteswap.c: new file implementing 
4369         _dbus_marshal_byteswap()
4370
4371         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4372
4373 2005-01-26  Havoc Pennington  <hp@redhat.com>
4374         
4375         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4376         build, apparently - nobody noticed?)
4377         
4378 2005-01-26  Havoc Pennington  <hp@redhat.com>
4379
4380         * dbus/dbus-marshal-recursive.h: remove todo comment
4381
4382 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4383
4384         * Land the mono binding changes to conform to the new APIs.
4385
4386         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4387         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4388
4389         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4390         type code as a string.
4391         (InitAppending): Rename dbus_message_append_iter_init() to
4392         dbus_message_iter_init_append().
4393
4394         * mono/BusDriver.cs: Rename ServiceEventHandler to
4395         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4396         Rename ServiceOwnerChanged to NameOwnerChanged.
4397
4398         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4399         underlying C call.
4400
4401         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4402
4403         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4404         dbus_bus_acquire_service() to dbus_bus_request_name().
4405
4406         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4407         of Type.UnderlyingSystemType to get the correct element type for
4408         the array.
4409         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4410         dbus_message_get_{element|arg}_type() instead of
4411         dbus_message_iter_init_array_iterator().
4412         (Append): Replace dbus_message_iter_append_array() with
4413         dbus_message_iter_open_container() and
4414         dbus_message_iter_close_container().
4415
4416         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4417         types have been removed.
4418         
4419         * mono/DBusType/*.cs: Replace calls of
4420         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4421         but specify the type in the DllImport extern declaration.  Ditto
4422         for dbus_message_iter_append_[type]() ->
4423         dbus_message_iter_append_basic().
4424
4425         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4426         NameOwnerChangedHandler.
4427
4428 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4429
4430         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4431                 - get_base_service -> get_unique_name
4432                 - bus_get_base_service -> bus_get_unique_name
4433                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4434                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4435                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4436                 - bus_activate_service -> bus_start_service_by_name
4437                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4438                 - bus_acquire_service -> bus_request_name
4439                 - dbus_bus_acquire_service -> dbus_bus_request_name
4440                 - bus_service_exists -> bus_name_has_owner
4441                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4442
4443         * python/dbus.py: Rename of methods
4444                 - activate_service -> start_service_by_name
4445                 - bus_acquire_service -> bus_request_name
4446                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4447                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4448
4449         
4450 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4451
4452         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4453         signature for the method that can't be found.
4454
4455         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4456         the message has any arguments, we need to call
4457         _dbus_type_reader_get_current_type(), not
4458         _dbus_type_reader_has_next().
4459
4460 2005-01-24  Havoc Pennington  <hp@redhat.com>
4461
4462         * dbus/dbus-message-factory.c: more testing of message validation
4463
4464         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4465         header
4466
4467 2005-01-23  Havoc Pennington  <hp@redhat.com>
4468
4469         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4470         get this all working, not many tests in the framework yet though
4471
4472 2005-01-22  Havoc Pennington  <hp@redhat.com>
4473
4474         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4475         tutorial, based on work from David Wheeler.
4476
4477 2005-01-21  Havoc Pennington  <hp@redhat.com>
4478
4479         * dbus/dbus-bus.c: add more return_if_fail checks
4480
4481         * dbus/dbus-message.c (load_message): have the "no validation"
4482         mode (have to edit the code to toggle the mode for now though)
4483
4484         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4485         skips all validation; I want to use this at least for benchmark
4486         baseline, I'm not sure if it should be a publicly-available switch.
4487
4488 2005-01-21  Havoc Pennington  <hp@redhat.com>
4489
4490         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4491         toplevel doxygen group as the low-level API stuff
4492
4493         * dbus/dbus.h: note that libdbus is the low-level API
4494
4495 2005-01-20  Havoc Pennington  <hp@redhat.com>
4496
4497         * update-dbus-docs.sh: script to update docs on the web site, only
4498         works for me though. neener.
4499
4500 2005-01-20  Havoc Pennington  <hp@redhat.com>
4501
4502         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4503         code can reveal bugs in it
4504
4505 2005-01-20  Havoc Pennington  <hp@redhat.com>
4506
4507         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4508         select() version, patches from Tor Lillqvist
4509
4510 2005-01-20  Havoc Pennington  <hp@redhat.com>
4511
4512         * doc/dbus-tutorial.xml: replace > with &gt;
4513
4514         * bus/services.c (bus_registry_acquire_service): validate the name
4515         and return a better error if it's no good.
4516
4517         * doc/dbus-specification.xml: note NO_AUTO_START change
4518
4519         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4520         from AUTO_START, we're toggling the default
4521
4522         * bus/dispatch.c: adapt the tests to change of auto-start default
4523
4524 2005-01-18  Havoc Pennington  <hp@redhat.com>
4525
4526         * rename dbus-daemon-1 to dbus-daemon throughout
4527
4528 2005-01-18  Havoc Pennington  <hp@redhat.com>
4529
4530         * Throughout, grand renaming to strip out the use of "service",
4531         just say "name" instead (or "bus name" when ambiguous).  Did not
4532         change the internal code of the message bus itself, only the
4533         programmer-facing API and messages.
4534         
4535         * doc/dbus-specification.xml: further update the message bus section
4536         
4537         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4538         in error case
4539
4540 2005-01-17  Havoc Pennington  <hp@redhat.com>
4541
4542         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4543         ever
4544
4545         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4546         "invalid name character" not only non-ASCII
4547
4548         * doc/dbus-specification.xml: further update spec, message bus 
4549         parts are still out-of-date but the marshaling etc. stuff is now
4550         accurate-ish
4551
4552 2005-01-17  Havoc Pennington  <hp@redhat.com>
4553
4554         * doc/dbus-specification.xml: partially update spec
4555
4556 2005-01-17  Havoc Pennington  <hp@redhat.com>
4557
4558         * Throughout, align variant bodies according to the contained
4559         type, rather than always to 8. Should save a fair bit of space in
4560         message headers.
4561         
4562         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4563         fix handling of case where p == end
4564
4565         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4566
4567 2005-01-17  Havoc Pennington  <hp@redhat.com>
4568
4569         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4570
4571         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4572         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4573         are marshaling/unmarshaling a boolean.
4574
4575 2005-01-16  Havoc Pennington  <hp@redhat.com>
4576
4577         This is about it on what can be disabled/deleted from libdbus
4578         easily, back below 150K anyhow. Deeper cuts are more work than 
4579         just turning the code off as I've done here.
4580         
4581         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4582         signed int convenience funcs
4583
4584         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4585         verbose mode
4586
4587         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4588         things out of libdbus
4589
4590         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4591         
4592         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4593         tests-enabled-only, though it should probably be deleted)
4594
4595         * dbus/dbus-message-util.c: same stuff
4596
4597         * dbus/dbus-auth-util.c: same stuff
4598
4599 2005-01-16  Havoc Pennington  <hp@redhat.com>
4600
4601         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4602
4603         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4604         way for stripping down dbus-userdb.c stuff included in libdbus.
4605         Rename _dbus_parse_uid for consistency.
4606
4607 2005-01-16  Havoc Pennington  <hp@redhat.com>
4608
4609         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4610         name the assertion failed in
4611
4612         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4613         (_dbus_return_val_if_fail): assert that the name of the function
4614         containing the check doesn't start with '_', since we only want to 
4615         use checks on public functions
4616         
4617         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4618         checks to assertions
4619
4620         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4621         change checks to asserts for private function
4622
4623         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4624         to asserts for private function
4625
4626         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4627         broken assertion that was breaking make check
4628         (_dbus_type_reader_array_is_empty): remove this rather than fix
4629         it, was only used in assertions
4630
4631 2005-01-16  Havoc Pennington  <hp@redhat.com>
4632
4633         * test/unused-code-gc.py: hacky script to find code that's used
4634         only by the bus (not libdbus) or used only by tests or not used at
4635         all. It has some false alarms, but looks like we can clean up a
4636         lot of size from libdbus.
4637
4638         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4639         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4640         
4641 2005-01-16  Havoc Pennington  <hp@redhat.com>
4642
4643         * Add and fix docs according to Doxygen warnings throughout
4644         source.
4645         
4646         * dbus/dbus-marshal-recursive.c
4647         (_dbus_type_reader_array_is_empty): change this to just call
4648         array_reader_get_array_len() and make it static
4649
4650         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4651         from get_array_type
4652         (dbus_message_iter_init_append): rename from append_iter_init
4653
4654         * dbus/dbus-marshal-recursive.c
4655         (_dbus_type_reader_get_element_type): rename from
4656         _dbus_type_reader_get_array_type
4657
4658 2005-01-15  Havoc Pennington  <hp@redhat.com>
4659
4660         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4661
4662         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4663         when DBUS_DISABLE_ASSERT
4664         (_dbus_marshal_set_basic): be sure we align for the string length
4665
4666         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4667         this look faster
4668
4669         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4670         inline macro version
4671         (_dbus_string_set_byte): provide inline macro version
4672
4673 2005-01-15  Havoc Pennington  <hp@redhat.com>
4674
4675         * Land the new message args API and type system.
4676
4677         This patch is huge, but the public API change is not 
4678         really large. The set of D-BUS types has changed somewhat, 
4679         and the arg "getters" are more geared toward language bindings;
4680         they don't make a copy, etc.
4681
4682         There are also some known issues. See these emails for details
4683         on this huge patch:
4684         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4685         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4686         
4687         * dbus/dbus-marshal-*: all the new stuff
4688
4689         * dbus/dbus-message.c: basically rewritten
4690
4691         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4692         freed blocks to be all non-nul bytes so using freed memory is less
4693         likely to work right
4694
4695         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4696         DBUS_FAIL_MALLOC=N environment variable, so you can do
4697         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4698         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4699         thorough.
4700
4701         * qt/message.cpp: port to the new message args API
4702         (operator<<): use str.utf8() rather than str.unicode()
4703         (pretty sure this is right from the Qt docs?)
4704
4705         * glib/dbus-gvalue.c: port to the new message args API
4706
4707         * bus/dispatch.c, bus/driver.c: port to the new message args API
4708
4709         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4710         "locked" flag to TRUE and align_offset to 0; I guess we never
4711         looked at these anyhow, but seems cleaner.
4712
4713         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4714         move allocation padding macro to this header; use it to implement
4715         (_DBUS_STRING_STATIC): ability to declare a static string.
4716
4717         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4718         change to return TRUE if the interface is not set.
4719
4720         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4721         to dbus-marshal-validate.[hc]
4722
4723         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4724         dbus-internals.c
4725
4726         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4727         to dbus-marshal-*.[hc]
4728
4729         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4730         function here from dbus-marshal.c
4731
4732 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4733
4734         * NEWS: Update for 0.23.
4735
4736         * configure.in: Release 0.23.
4737
4738 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4739
4740         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
4741         dbus DLL with --debug.  Clean up after the .mdb files this leaves
4742         behind.
4743
4744         * mono/doc/Makefile.am: Need to uninstall the docs on "make
4745         uninstall"
4746
4747         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4748         is an enum, get the enum's underlying type.  Another mono
4749         1.1.3 fix.
4750
4751 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4752
4753         Patch from Sjoerd Simons <sjoerd@luon.net>
4754
4755         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4756         DESTDIR.  It breaks stuff.
4757
4758 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4759
4760         Patch from Tambet Ingo <tambet@ximian.com>
4761
4762         * mono/DBusType/Array.cs (Get): Get the underlying element type by
4763         calling type.GetElementType().  The code previously depended on
4764         broken Mono behavior, which was fixed in Mono 1.1.3.
4765
4766         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4767         Activator.CreateInstance() so that the class's constructor is
4768         called with the right parameters.
4769
4770 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4771
4772         Patch from Timo Teräs <ext-timo.teras@nokia.com>
4773
4774         * dbus/dbus-connection.c
4775         (_dbus_connection_queue_received_message_link): Call
4776         _dbus_connection_remove_timeout() instead of the _locked()
4777         variant, since it's always called from
4778         _dbus_connection_handle_watch(), which handles the locking.
4779         Removed the _locked() variant since it's no longer used.
4780
4781 2005-01-03  Havoc Pennington  <hp@redhat.com>
4782
4783         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4784         return
4785         
4786 2004-12-26  Havoc Pennington  <hp@redhat.com>
4787
4788         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4789
4790 2005-01-03  Havoc Pennington  <hp@redhat.com>
4791
4792         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4793         floating point
4794
4795         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4796
4797 2005-01-02  Havoc Pennington  <hp@redhat.com>
4798
4799         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4800
4801 2005-01-01  Havoc Pennington  <hp@redhat.com>
4802
4803         * configure.in: add -Wfloat-equal
4804
4805 2005-01-01  Havoc Pennington  <hp@redhat.com>
4806
4807         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
4808         for a variety of reasons '==' doesn't do this.
4809
4810 2004-12-31  Havoc Pennington  <hp@redhat.com>
4811
4812         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4813         I keep wishing I had
4814
4815 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4816
4817         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4818
4819 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4820
4821         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4822         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4823         dbus-protocol.h.  Because they are defines and not enums they are not
4824         autogenerated.
4825
4826 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
4827
4828         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4829         dbus_bus_activate_service
4830
4831         * python/dbus.py (Bus.activate_service): activate a service on the
4832         bus.
4833
4834 2004-12-24  Havoc Pennington  <hp@redhat.com>
4835
4836         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4837         file format has also changed and I haven't adapted to that yet
4838         
4839         * Makefile.am: load .gcno files from latest gcc
4840
4841 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
4842         * Patch from Rob Taylor <robtaylor@fastmail.fm>
4843
4844         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4845         lowlevel binding
4846
4847         * python/dbus.py (get_unix_user): Added binding to 
4848         call dbus_bindings.bus_get_unix_user
4849
4850         * python/extract.py: Modified the proto_pat regex to
4851         handle unsigned long
4852
4853 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4854
4855         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4856         better POSIX compliance.
4857
4858 2004-12-19  Havoc Pennington  <hp@redhat.com>
4859
4860         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
4861         (_dbus_string_insert_8_aligned): new functions
4862
4863         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4864
4865 2004-12-18  Havoc Pennington  <hp@redhat.com>
4866
4867         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4868         macro
4869
4870         * dbus/dbus-message.c: fix a comment, and add a still-unused
4871         not-implemented function
4872
4873         * dbus/dbus-marshal.h: fix comment
4874
4875         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4876
4877 2004-12-17  Joe Shaw  <joeshaw@novell.com>
4878
4879         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4880         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4881         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4882         Type.UnderlyingSystemType to get the actual system type
4883         underneath.  This code previously depended on the broken Mono
4884         behavior, which was fixed in 1.1.3.
4885
4886 2004-11-27  Havoc Pennington  <hp@redhat.com>
4887
4888         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4889         are disabled
4890         (_dbus_string_get_const_data): inline when asserts are disabled
4891
4892         * dbus/dbus-message.c: record the _dbus_current_generation of
4893         creation so we can complain if dbus_shutdown() is used improperly.
4894         Do this only if checks are enabled.
4895
4896         * dbus/dbus-connection.c: ditto
4897         
4898 2004-11-26  Havoc Pennington  <hp@redhat.com>
4899
4900         * test/glib/test-profile.c: add with_bus mode to profile echoes
4901         that go through the bus.
4902
4903         * test/glib/run-test.sh: add ability to run test-profile
4904
4905         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4906         config file reload.
4907
4908 2004-11-26  Havoc Pennington  <hp@redhat.com>
4909
4910         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4911         thing was implemented
4912
4913 2004-11-26  Havoc Pennington  <hp@redhat.com>
4914
4915         * test/glib/test-profile.c: tweak a bit, add support for some
4916         made-up minimal malloc overhead with plain sockets, since in 
4917         real life some sort of buffers are unavoidable thus we could 
4918         count them in the theoretical best case
4919
4920 2004-11-26  Havoc Pennington  <hp@redhat.com>
4921
4922         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
4923         where I was trying to cache one too many messages
4924
4925 2004-11-26  Havoc Pennington  <hp@redhat.com>
4926
4927         * dbus/dbus-message.c: reimplement message cache as an array which 
4928         makes the cache about twice as fast and saves maybe 1.5% overall
4929
4930 2004-11-26  Havoc Pennington  <hp@redhat.com>
4931
4932         * dbus/dbus-threads.c (init_global_locks): forgot to put the
4933         message cache lock here
4934
4935 2004-11-26  Havoc Pennington  <hp@redhat.com>
4936
4937         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
4938         the "char byte_order" next to each other to save 4 bytes
4939         (dbus_message_new_empty_header): reduce preallocation, since the
4940         message cache should achieve a similar effect
4941         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
4942         message cache that keeps a few DBusMessage around in a pool,
4943         another 8% speedup or so.
4944
4945         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
4946
4947 2004-11-25  Havoc Pennington  <hp@redhat.com>
4948
4949         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
4950         to write, without reading or blocking, try it before the poll()
4951         and skip the poll() if nothing remains to write. This is about a
4952         3% speedup in the echo client/server
4953
4954 2004-11-25  Havoc Pennington  <hp@redhat.com>
4955
4956         The primary change here is to always write() once before adding
4957         the write watch, which gives us about a 10% performance increase.
4958         
4959         * dbus/dbus-transport-unix.c: a number of modifications to cope
4960         with removing messages_pending
4961         (check_write_watch): properly handle
4962         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
4963         messages_pending stuff
4964         (check_read_watch): properly handle WAITING_FOR_MEMORY and
4965         AUTHENTICATED cases
4966         (unix_handle_watch): after writing, see if the write watch can be
4967         removed
4968         (unix_do_iteration): assert that write_watch/read_watch are
4969         non-NULL rather than testing that they aren't, since they 
4970         aren't allowed to be NULL. check_write_watch() at the end so 
4971         we add the watch if we did not finish writing (e.g. got EAGAIN)
4972
4973         * dbus/dbus-transport-protected.h: remove messages_pending call,
4974         since it resulted in too much inefficient watch adding/removing; 
4975         instead we now require that the transport user does an iteration 
4976         after queueing outgoing messages, and after trying the first
4977         write() we add a write watch if we got EAGAIN or exceeded our 
4978         max bytes to write per iteration setting
4979
4980         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
4981         function
4982
4983         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
4984         freed and then accessed, valgrind flagged this bug, fix it
4985
4986         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
4987         as the last valid field plus 1, where really it is equal to the
4988         last valid field. Corrects some message corruption issues.
4989
4990         * dbus/dbus-mainloop.c: verbosity changes
4991
4992         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
4993         instead of aborting in one of the test codepaths
4994
4995         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
4996         caused not printing the pid ever again if a verbose was missing
4997         the newline at the end
4998         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
4999
5000         * dbus/dbus-connection.c: verbosity changes; 
5001         (dbus_connection_has_messages_to_send): new function
5002         (_dbus_connection_message_sent): no longer call transport->messages_pending
5003         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5004         try to write() immediately, so we can avoid the write watch. This
5005         is the core purpose of this patchset
5006         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5007         dump the outgoing message queue, so nobody will get confused
5008         trying to send them or thinking stuff is pending to be sent
5009
5010         * bus/test.c: verbosity changes
5011
5012         * bus/driver.c: verbosity/assertion changes
5013
5014         * bus/dispatch.c: a bunch of little tweaks to get it working again
5015         because this patchset changes when/where you need to block.
5016
5017 2004-11-23  Havoc Pennington  <hp@redhat.com>
5018
5019         * test/glib/test-profile.c: modify to accept a plain_sockets
5020         argument in which case it will bench plain sockets instead of
5021         libdbus, for comparison purposes.
5022
5023 2004-11-22  Havoc Pennington  <hp@redhat.com>
5024
5025         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5026         threads for more time, so sysprof can get a grip on it.
5027
5028         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5029         pointless variable
5030
5031 2004-11-13  Havoc Pennington  <hp@redhat.com>
5032
5033         * test/glib/test-profile.c: fix this thing up a bit
5034
5035         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5036         preallocation sizes by a fair bit; not sure if this will be an
5037         overall performance win or not, but it does reduce reallocs.
5038
5039         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5040         the test hack that forced constant realloc if asserts are
5041         disabled, so we can profile sanely. Sprinkle in some
5042         _DBUS_UNLIKELY() which are probably pointless, but before I
5043         noticed the real performance problem I put them in.
5044         (_dbus_string_validate_utf8): micro-optimize this thing a little
5045         bit, though callgrind says it didn't help; then special-case
5046         ascii, which did help a lot; then be sure we detect nul bytes as
5047         invalid, which is a bugfix.
5048         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5049         superstition; use memset to nul the padding instead of a manual
5050         loop.
5051         (_dbus_string_get_length): inline this as a
5052         macro; it showed up in the profile because it's used for loop
5053         tests and so forth
5054
5055 2004-11-10  Colin Walters  <walters@verbum.org>
5056
5057         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5058         for extra paranoia.
5059
5060 2004-11-09  Colin Walters  <walters@verbum.org>
5061
5062         * dbus/dbus-string.c (_dbus_string_get_length): New
5063         function, writes DBusString to C buffer.
5064
5065         * dbus/dbus-string.h: Prototype it.
5066
5067         * dbus/dbus-message.c (dbus_message_type_to_string): New
5068         function, converts message type into C string.
5069
5070         * dbus/dbus-message.h: Prototype it.
5071
5072         * bus/selinux.c (bus_selinux_check): Take source pid,
5073         target pid, and audit data.  Pass audit data to
5074         avc_has_perm.
5075         (log_audit_callback): New function, appends extra
5076         audit information.
5077         (bus_selinux_allows_acquire_service): Also take
5078         service name, add it to audit data.
5079         (bus_selinux_allows_send): Also take message
5080         type, interface, method member, error name,
5081         and destination, and add them to audit data.
5082         (log_cb): Initialize func_audit.
5083         
5084         * bus/selinux.h (bus_selinux_allows_acquire_service)
5085         (bus_selinux_allows_send): Update prototypes 
5086
5087         * bus/services.c (bus_registry_acquire_service): Pass
5088         service name to bus_selinux_allows_acquire_service.
5089
5090         * bus/bus.c (bus_context_check_security_policy): Pass
5091         additional audit data.  Move assignment of dest
5092         to its own line.
5093
5094 2004-11-07  Colin Walters  <walters@verbum.org>
5095
5096         * dbus/dbus-transport-unix.c (do_authentication): Always
5097         initialize auth_completed.
5098         
5099 2004-11-07  Colin Walters  <walters@verbum.org>
5100
5101         * bus/bus.c (load_config): Break into three
5102         separate functions: process_config_first_time_only,
5103         process_config_every_time, and process_config_postinit.
5104         (process_config_every_time): Move call of
5105         bus_registry_set_service_context_table into
5106         process_config_postinit.
5107         (process_config_postinit): New function, does
5108         any processing that needs to happen late
5109         in initialization (and also on reload).
5110         (bus_context_new): Instead of calling load_config,
5111         open config parser here and call process_config_first_time_only
5112         and process_config_every_time directly.  Later, after
5113         we have forked but before changing UID,
5114         invoke bus_selinux_full_init, and then call
5115         process_config_postinit.
5116         (bus_context_reload_config): As in bus_context_new,
5117         load parse file inside here, and call process_config_every_time
5118         and process_config_postinit.
5119
5120         * bus/services.h, bus/services.c
5121         (bus_registry_set_service_context_table): Rename
5122         from bus_registry_set_sid_table.  Take string hash from config
5123         parser, and convert them here into SIDs.
5124
5125         * bus/config-parser.c (struct BusConfigParser): Have
5126         config parser only store a mapping of service->context
5127         string.
5128         (merge_service_context_hash): New function.
5129         (merge_included): Merge context string hashes instead
5130         of using bus_selinux_id_table_union.
5131         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5132         simply create a new string hash.
5133         (bus_config_parser_unref): Unref it.
5134         (start_selinux_child): Simply insert strings into hash,
5135         don't call bus_selinux_id_table_copy_over.
5136
5137         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5138         (bus_selinux_id_table_copy_over): Delete.
5139
5140 2004-11-03  Colin Walters  <walters@verbum.org>
5141
5142         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5143         variables.
5144         
5145 2004-11-03  Colin Walters  <walters@verbum.org>
5146
5147         * bus/test-main.c (test_pre_hook): Fix test logic,
5148         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5149
5150 2004-11-02  Colin Walters  <walters@redhat.com>
5151
5152         * bus/selinux.c (bus_selinux_init): Split into two functions,
5153         bus_selinux_pre_init and bus_selinux_post_init.
5154         (bus_selinux_pre_init): Just determine whether SELinux is
5155         enabled.
5156         (bus_selinux_post_init): Do everything else.
5157
5158         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5159         config file, and bus_selinux_post_init after.  This ensures that
5160         we don't lose the policyreload notification thread that
5161         bus_selinux_init created before forking previously.
5162         
5163         * bus/test-main.c (test_pre_hook): Update for split.
5164
5165 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5166
5167         Patch from Johan Fischer <linux@fischaz.com>
5168         
5169         * mono/doc/Makefile.am (install-data-local): Added directory
5170         install for DESTDIR
5171
5172 2004-10-29  Colin Walters  <walters@redhat.com>
5173
5174         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5175         parameter for fd to write pid to.       
5176
5177         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5178         
5179         * bus/bus.c (bus_context_new): Pass print_pid_fd
5180         to _dbus_become_daemon (bug #1720)
5181
5182 2004-10-29  Colin Walters  <walters@redhat.com>
5183
5184         Patch from Ed Catmur <ed@catmur.co.uk>
5185
5186         * mono/doc/Makefile.am (install-data-local): Handle
5187         DESTDIR.
5188
5189 2004-10-29  Colin Walters  <walters@redhat.com>
5190
5191         * bus/.cvsignore, qt/.cvsignore: Update.
5192
5193 2004-10-29  Colin Walters  <walters@redhat.com>
5194
5195         Patch from Kristof Vansant <de_lupus@pandora.be>
5196
5197         * configure.in: Detect Slackware.
5198         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5199         * bus/rc.messagebus.in: New file.
5200
5201 2004-10-29  Colin Walters  <walters@redhat.com>
5202
5203         * tools/dbus-monitor.c (filter_func): Return
5204         DBUS_HANDLER_RESULT_HANDLED in filter function
5205         for now.  See:
5206         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5207
5208 2004-10-29  Colin Walters  <walters@redhat.com>
5209
5210         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5211
5212         * bus/services.c (bus_registry_acquire_service): 
5213         Correctly retrieve service name from DBusString
5214         for printing.
5215
5216 2004-10-29  Colin Walters  <walters@redhat.com>
5217
5218         * dbus/dbus-glib.h: Update documentation to not
5219         refer to internal APIs.
5220
5221 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5222
5223         * mono/Arguments.cs (GetDBusTypeConstructor):
5224         type.UnderlyingSystemType will return "System.Byte" if you do it
5225         on "byte[]", which is not what we want.  So check the type.IsArray
5226         property and use System.Array instead.
5227
5228 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5229
5230         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5231         the DBusUserInfo structure since this is passed into the function.
5232         This would cause a double free when the function that allocated
5233         the structure would try to free it when an error occured.
5234
5235         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5236         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5237         for service activation to avoid 32bit/64bit parallel install issues
5238
5239 2004-10-21  Colin Walters  <walters@verbum.org>
5240
5241         * AUTHORS: Fix my email address, the @gnu.org one
5242         has been bouncing for some time.  Also add J5.
5243         
5244 2004-10-21  Colin Walters  <walters@verbum.org>
5245
5246         * dbus/dbus-transport-unix.c (do_authentication): Return
5247         authentication status to callers.
5248         (unix_handle_watch): If we completed authentication this round,
5249         don't do another read.  Instead wait until the next iteration,
5250         after we've read any pending data in the auth buffer.
5251         (unix_do_iteration): Ditto.
5252         (unix_handle_watch): Updated for new do_authentication prototype.
5253
5254 2004-10-18  Colin Walters  <walters@verbum.org>
5255
5256         * bus/selinux.c (bus_selinux_enabled): Handle
5257         --disable-selinux case.
5258         
5259 2004-10-18  Colin Walters  <walters@verbum.org>
5260
5261         * bus/selinux.h: Add bus_selinux_enabled.
5262         
5263         * bus/selinux.c (bus_selinux_enabled): Implement it.
5264         
5265         * bus/config-parser.c (struct include): Add
5266         if_selinux_enabled member.
5267         (start_busconfig_child): Parse if_selinux_enabled
5268         attribute for include.
5269         (bus_config_parser_content): Handle it.
5270
5271         * bus/session.conf.in, bus/system.conf.in: Add
5272         inclusion of context mapping to default config files;
5273         conditional on SELinux being enabled.
5274         
5275         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5276         
5277         * test/data/invalid-config-files/badselinux-1.conf, 
5278         test/data/invalid-config-files/badselinux-2.conf:
5279         Test files for bad syntax.
5280         
5281 2004-10-17  Colin Walters  <walters@verbum.org>
5282
5283         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5284         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5285         format specifier mismatches.
5286
5287 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5288
5289         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5290         format string.
5291
5292         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5293         pointer (bug #1540, Leonardo Boiko).
5294
5295 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5296
5297         * mono/BusDriver.cs: Changed BusDriver struct to remove
5298         the ServiceCreated and ServiceDeleted events and replace them
5299         with the new ServiceOwnerChanged event.
5300
5301         * mono/example/BusListener.cs: Added a new example program,
5302         which listens for and reports any ServiceOwnerChanged events
5303         on the bus driver.
5304
5305         * mono/example/Makefile.am (DESTDIR): Build changes for the
5306         new BusListener.cs example.
5307
5308 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5309
5310         * bus/signals.c (bus_match_rule_parse): validate the components of
5311         match rules (bug #1439).
5312
5313         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5314
5315 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5316
5317         * doc/dbus-specification.xml: document ServiceOwnerChanged
5318         signal.
5319         
5320         * bus/driver.c, bus/driver.h, bus/services.c: Use
5321         ServiceOwnerChanged signal instead of ServiceCreated and
5322         ServiceDeleted.
5323         
5324         * bus/dispatch.c: update testcase for the new signal.
5325
5326 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5327
5328         Patch from Nat Friedman <nat@novell.com>
5329
5330         * mono/Makefile.am: A number of small build fixes to allow "make
5331         distcheck" to succeed.
5332
5333         * mono/example/Makefile.am: "make distcheck" fixes.
5334
5335         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5336         key in @srcdir@.
5337
5338         * test/Makefile.am: "make distcheck" fixes.
5339
5340 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5341
5342         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5343
5344         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5345
5346         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5347         messages after the first one (bug #1389).
5348         
5349         * bus/dispatch.c (check_double_hello_message): add a test case for
5350         the double hello message bug.
5351         (check_existent_service_activation): fix check of spawning error.
5352         
5353 2004-09-16  David Zeuthen  <david@fubar.dk>
5354
5355         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5356
5357 2004-09-12  David Zeuthen  <david@fubar.dk>
5358
5359         Patch from Kay Sievers <kay.sievers@vrfy.org>
5360
5361         * bus/bus.c (bus_context_new):
5362         * bus/bus.h:
5363         * bus/main.c (usage)
5364         (main):
5365         Add commandline option --nofork to override configuration file
5366         setting.
5367
5368 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5369
5370         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5371         compilers don't like it (bug #974).
5372
5373 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5374
5375         * qt/connection.*: Applied patch by Jérôme Lodewyck
5376         <lodewyck@clipper.ens.fr> to integrate an existing
5377         connection into the Qt eventloop
5378
5379 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5380
5381         * mono/BusDriver.cs: Added.  This is a class for interacting with
5382         the org.freedesktop.DBus service.
5383
5384         * mono/Message.cs: Added a mechanism to expose the message that is
5385         currently being dispatched via the static Message.Current
5386         property.  Added Message.Sender and Message.Destination
5387         properties.
5388
5389         * mono/Handler.cs: Expose the dispatched message via
5390         Message.Current when handling method calls.
5391
5392         * mono/Service.cs: Expose the dispatched message via
5393         Message.Current when handling signal emissions.
5394         
5395         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5396         Connection.BaseService property.
5397
5398 2004-08-28  Havoc Pennington  <hp@redhat.com>
5399
5400         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5401
5402         More fixes from Steve Grubb
5403         
5404         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5405         (_dbus_listen_tcp_socket): fix fd leak
5406
5407         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5408         EINTR to a bit lower in the code
5409
5410 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5411
5412         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5413         TRUE if we are inquiring about the existence of the built-in
5414         org.freedesktop.DBus service.
5415
5416 2004-08-25  John Palmieri  <johnp@redhat.com>
5417         * bus/config-parser.c:
5418         (struct PolicyType): Add POLICY_CONSOLE
5419         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5420         (start_busconfig_child): Sets up console element when
5421         <policy at_console=""> is encountered in a policy file
5422         (append_rule_from_element): Convert console elements to console
5423         rules.
5424
5425         * bus/policy.c: 
5426         (bus_policy_create_client_policy): Add console rules to the client
5427         policy based on if the client is at the console
5428         (bus_policy_append_console_rule): New function for adding a
5429         console rule to a policy
5430         (bus_policy_merge): Handle console rule merging
5431
5432         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5433         where we check for console user files
5434         
5435         * dbus/dbus-sysdeps.c:
5436         (_dbus_file_exists): New function which checks if the given
5437         file exists
5438         (_dbus_user_at_console): New function which does the system
5439         specific process of checking if the user is at the console
5440
5441         * dbus/dbus-userdb.c:
5442         (_dbus_is_console_user): New function converts a UID to user name
5443         and then calls the system specific _dbus_user_at_console to 
5444         see if the user is at the console and therefor a console user
5445
5446 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5447
5448         * bus/config-parser.c (set_limit):
5449         * bus/dbus-daemon-1.1.in:
5450         * test/data/valid-config-files/many-rules.conf: set the
5451         max_match_rules_per_connection limt from the config file. 
5452
5453         * doc/busconfig.dtd: update the DTD.
5454
5455         * bus/driver.c: remove some unused variables.
5456
5457 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5458
5459         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5460         it's been replaced by dbus_g_bus_get
5461
5462 2004-08-23  Colin Walters  <walters@redhat.com>
5463
5464         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5465
5466         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5467
5468         * bus/selinux.c: Create a thread for policy reload notification.
5469         (bus_selinux_get_policy_root): Implement.
5470
5471         * bus/config-parser.c (start_busconfig_child)
5472         (bus_config_parser_content): Support SELinux-root relative
5473         inclusion.
5474
5475         * configure.in <HAVE_SELINUX>: Add -lpthread.
5476         
5477         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5478         (test_post_hook): Move memory checking into here.
5479         (test_pre_hook, test_post_hook): Move SELinux checks in
5480         here, but conditional on a DBUS_TEST_SELINUX environment
5481         variable.  Unfortunately we can't run the SELinux checks
5482         as a normal user, since they won't have any permissions
5483         for /selinux.  So this will have to be tested manually
5484         for now, until we have virtualization for most of
5485         libselinux.
5486         
5487 2004-08-23  Havoc Pennington  <hp@redhat.com>
5488
5489         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5490         drop supplementary groups, suggested by Steve Grubb
5491
5492 2004-08-20  Colin Walters  <walters@redhat.com>
5493
5494         * bus/config-parser.c (start_busconfig_child): Remove some unused
5495         variables.
5496         
5497         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5498         warning.
5499
5500 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5501
5502         * configure.in: If --enable-mono is passed in, if we can't find
5503         mono error out.
5504
5505         * mono/Makefile.am: Use /gacutil to install assemblies into the
5506         GAC and not /root.
5507
5508 2004-08-12  Havoc Pennington  <hp@redhat.com>
5509
5510         * NEWS: update for 0.22
5511
5512         * configure.in: release 0.22
5513
5514 2004-08-11  Colin Walters  <walters@redhat.com>
5515
5516         * tools/dbus-send.c (main, usage): Add --reply-timeout
5517         argument.
5518
5519 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5520
5521         * bus/bus.c (process_config_first_time_only): get rid of an unused
5522         DBusError that was causing a memoy leak (bug #989).
5523
5524         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5525         fix compilation on Solaris/Forte C (bug #974)
5526
5527         * bus/main.c (main): plug two minuscule memleaks.
5528
5529 2004-08-10  Havoc Pennington  <hp@redhat.com>
5530
5531         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5532
5533 2004-08-09  Havoc Pennington  <hp@redhat.com>
5534
5535         * COPYING: switch to Academic Free License version 2.1 instead of
5536         2.0, to resolve complaints about patent termination clause.
5537
5538 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5539
5540         * README: added documentation for the --enable-python 
5541         configure switch.
5542
5543 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5544
5545         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5546         _unref in the SELinux support.
5547
5548         * doc/busconfig.dtd: update DTD for SELinux support.
5549
5550         * bus/config-loader-libxml.c: fix error handler and parser
5551         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5552
5553         * configure.in: remove the warning about libxml2.
5554
5555         * dbus/dbus-bus.c: silence doxygen warning.
5556
5557 2004-07-31  Colin Walters  <walters@redhat.com>
5558
5559         * configure.in: Move #error in SELinux check to its own line.
5560
5561 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5562
5563         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5564         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5565         dbus_error_set.
5566
5567         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5568         broken by the change in the _SET_OOM macros.
5569
5570 2004-07-31  Colin Walters  <walters@redhat.com>
5571
5572         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5573         BUS_SET_OOM.
5574
5575 2004-07-31  Colin Walters  <walters@redhat.com>
5576
5577         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5578         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5579         AC_MSG_CHECKING.
5580
5581 2004-07-24  Havoc Pennington  <hp@redhat.com>
5582
5583         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5584
5585         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5586         functionality
5587
5588         * configure.in: add --enable-selinux
5589         
5590         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5591
5592         * bus/main.c (main): initialize and shut down selinux
5593
5594         * bus/connection.c: store SELinux ID on each connection, to avoid 
5595         repeated getting of the string context and converting it into 
5596         an ID
5597
5598         * bus/bus.c (bus_context_get_policy): new accessor, though it
5599         isn't used
5600         (bus_context_check_security_policy): check whether the security
5601         context of sender connection can send to the security context of
5602         recipient connection
5603
5604         * bus/config-parser.c: add parsing for <selinux> and <associate>
5605         
5606         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5607         implement dbus_connection_get_unix_fd()
5608
5609         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5610         function, used by the selinux stuff
5611         
5612 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5613
5614         * bus/config-loader-libxml.c: complete the implementation of
5615         libxml backend for config file loader. Doesn't work with full OOM
5616         test yet. 
5617         
5618         * configure.in: change error when selecting libxml into a warning.
5619         
5620         * test/data/invalid-config-files: add two non-well-formed XML
5621         files. 
5622         
5623         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5624         
5625         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5626         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5627         be necessary to read all the buffer. (bug #894)
5628
5629         * bus/activation.c (bus_activation_activate_service): fix a
5630         potential assertion failure (bug #896). Small optimization in the
5631         case of auto-activation messages.
5632
5633         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5634         add test case for byte-through-vararg bug (#901). patch by Kimmo
5635         Hämäläinen. 
5636
5637 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5638
5639         * python/dbus.py:
5640         * python/dbus_bindings.pyx.in:
5641         Add dbus.init_gthreads (), allow emit_signal to pass
5642         arguments to the signal.
5643         
5644 2004-07-24  Havoc Pennington  <hp@redhat.com>
5645
5646         * AUTHORS: add some people, not really comprehensively, let me
5647         know if I missed you
5648
5649 2004-07-24  Havoc Pennington  <hp@redhat.com>
5650
5651         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5652         Owen
5653
5654         * test/Makefile.am (DIST_SUBDIRS): here also
5655
5656 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5657
5658         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5659         breaking build on Solaris, reported by Farhad Saberi on the ML.
5660
5661         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5662         va_arg invocation to account for integer promotion in the case of
5663         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5664
5665         * bus/services.c (bus_service_remove_owner): fix bug #902, use
5666         _dbus_list_get_first_link, not _dbus_list_get_first.
5667
5668         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5669
5670         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5671         handler functions so that the asserts in _dbus_object_subtree_unref
5672         do not fail.
5673
5674         * dbus/dbus-transport-unix.c (do_reading):
5675         _dbus_transport_queue_messages return value is of type
5676         dbus_bool_t, not DBusDispatchStatus.
5677         
5678 2004-07-19  David Zeuthen  <david@fubar.dk>
5679
5680         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5681
5682         * bus/dispatch.c:
5683         (check_get_connection_unix_user): Debug says GetProperty; but the
5684         method is called GetConnectionUnixUser
5685         (check_get_connection_unix_process_id): New function
5686         (bus_dispatch_test): Actually call check_get_connection_unix_user();
5687         also call check_get_connection_unix_process_id()
5688         
5689         * bus/driver.c:
5690         (bus_driver_handle_get_connection_unix_process_id): New function,
5691         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5692         interface
5693         
5694         * dbus/dbus-auth.c:
5695         (handle_server_data_external_mech): Set pid from the credentials
5696         obtained from the socket
5697         
5698         * dbus/dbus-connection.c:
5699         (dbus_connection_get_unix_process_id): New function
5700         
5701         * dbus/dbus-connection.h: 
5702         Add prototype for dbus_connection_get_unix_process_id
5703         
5704         * dbus/dbus-transport.c:
5705         (_dbus_transport_get_unix_process_id): New function
5706         
5707         * dbus/dbus-transport.h:
5708         Add prototype for _dbus_transport_get_unix_process_id
5709         
5710 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5711
5712         * dbus/dbus-message.c: Message counter fix, patch by Christian
5713         Hammond <chipx86@gnupdate.org>
5714
5715 2004-07-18  Seth Nickell  <seth@gnome.org>
5716
5717         * python/dbus.py:
5718         * python/dbus_bindings.pyx.in:
5719         * python/tests/test-client.py:
5720
5721         Add dbus.ByteArray and dbus_bindings.ByteArray
5722         types so that byte streams can be passed back.
5723
5724         Give jdahlin the heaps of credit that are so
5725         rightfully his.
5726         
5727 2004-07-12  Seth Nickell  <seth@gnome.org>
5728
5729         * python/dbus.py:
5730
5731         Add message argument to the default object_method_handler
5732         function.
5733         
5734         * python/dbus_bindings.pyx.in:
5735
5736         Automatically return NIL when passed an empty list
5737         (we can't pass back a list since lists are typed
5738         and we don't have any idea what type the the client
5739         intended the list to be... :-( )
5740         
5741 2004-07-10  Seth Nickell  <seth@gnome.org>
5742
5743         * python/examples/Makefile.am:
5744
5745         Fix distcheck breakage caused by new examples.
5746
5747 2004-07-10  Seth Nickell  <seth@gnome.org>
5748
5749         * python/dbus.py:
5750
5751         Add "message" argument to service-side dbus.Object
5752         methods. This will break existing services written
5753         using the python bindings, but will allow extraction
5754         of all the message information (e.g. who its from).
5755
5756         Add improved "object oriented" signal handling/emission.
5757         
5758         * python/examples/example-service.py:
5759
5760         Nix this example.
5761         
5762         * python/examples/example-signal-emitter.py:
5763         * python/examples/example-signal-recipient.py:
5764
5765         Two new examples that show how to emit and receive
5766         signals using the new APIs.
5767         
5768         * python/examples/example-signals.py:
5769         * python/examples/gconf-proxy-service.py:
5770         * python/examples/gconf-proxy-service2.py:
5771
5772         Add "message" argument to service methods.
5773
5774 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
5775
5776         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5777         * dbus/bus.c (dbus_bus_get_unix_user)
5778         * doc/dbus-specification.xml: implement GetConnectionUnixUser
5779         method of org.freedesktop.DBus interface.
5780
5781         * bus/dispatch.c: test case
5782
5783 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
5784
5785         * python/Makefile.am: switched include directory from glib/ to dbus/
5786         since dbus-glib.h moved
5787  
5788 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5789
5790         * configure.in: prevent building the gcj stuff and libxml loader
5791         since they are broken.
5792
5793 2004-06-20  Havoc Pennington  <hp@redhat.com>
5794
5795         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
5796         codes from the dbus error names
5797         
5798         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
5799         as dbus/dbus-glib.h and that breakage is now visible due to 
5800         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5801         
5802         * glib/dbus-glib.h: s/gproxy/g_proxy/
5803
5804         * dbus/dbus-shared.h: new header to hold stuff shared with
5805         binding APIs
5806         
5807         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5808         than dbus-errors.h
5809
5810         * glib/dbus-glib.h (dbus_set_g_error): move to
5811         dbus-glib-lowlevel.h
5812
5813         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5814         of stuff to enable this
5815
5816         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5817
5818         * a bunch of other changes with the same basic "separate glib 
5819         bindings from dbus.h" theme
5820         
5821 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
5822
5823         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5824
5825         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5826
5827 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5828
5829         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5830         the reply value of the ServiceExists message.
5831
5832 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
5833
5834         * python/dbus_bindings.pyx.in: No longer need to parse path
5835         elements and pass them as arrays of strings.  The C API now
5836         accepts plain path strings.
5837         (_build_parsed_path): removed 
5838
5839 2004-06-07  Havoc Pennington  <hp@redhat.com>
5840
5841         * doc/TODO: remove auto-activation item since it's done; sort
5842         items by importance/milestone
5843
5844 2004-06-07  Havoc Pennington  <hp@redhat.com>
5845
5846         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5847         random signature when using REQUIRED_FIELDS (this hack won't work
5848         in the long term)
5849
5850         * dbus/dbus-message.c: change the signature to be a header field,
5851         instead of message->signature special-case string. Incremental
5852         step forward. Then we can fix up code to send the signature in the
5853         message, then fix up code to validate said signature, then fix up
5854         code to not put the typecodes inline, etc.
5855         (load_one_message): don't make up the signature after the fact
5856         (decode_header_data): require signature field for the known
5857         message types
5858
5859         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5860
5861         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5862
5863 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
5864
5865         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5866
5867         * mono/Handler.cs: Updated to follow new path argument for
5868         (un-)registering objects.
5869
5870         * mono/example/Makefile.am:
5871         * mono/Makefile.am:
5872         * configure.in: Bumped required version for mono and use new -pkg
5873         syntax for deps
5874
5875 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5876
5877         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5878         registration functions take the path argument as char* instead of
5879         char**.
5880
5881         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5882         split off the path decompostion part of
5883         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5884         warnings. 
5885
5886         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5887         
5888 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5889  
5890         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5891         machine approach.  A state is implemented as a function that
5892         handles incoming events as specified for that state.
5893         
5894         * doc/dbus-specification.xml: Update auth protocol state machine
5895         specification to match implementation.  Remove some leftover
5896         base64 examples.
5897
5898 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5899
5900         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5901         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5902         quiet doxygen.
5903
5904         * Doxyfile.in: remove deprecated options.
5905
5906         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5907         glib/test-thread.h, glib/test-thread-client.c,
5908         glib/test-thread-server.c, glib/test-profile.c,
5909         glib/test-dbus-glib.c: remove these unused files.
5910
5911 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5912
5913         * dbus/dbus-object-tree.c
5914         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5915         non-fallback handlers (bug #684).
5916         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5917         (find_subtree_recurse): report wether the returned subtree is an
5918         exact match or a "fallback" match higher up in the tree.
5919         (object_tree_test_iteration): update test case.
5920
5921 2004-06-01  Seth Nickell  <seth@gnome.org>
5922
5923         * python/dbus_bindings.pyx.in:
5924         * python/tests/test-client.py:
5925
5926         Round off basic type support. Add dicts (yay!), and 
5927         remaining array types.
5928
5929         Make MessageIter more general so it works for dicts too.
5930
5931         Mark all loop variables as C integers.
5932         
5933 2004-05-31  Havoc Pennington  <hp@redhat.com>
5934
5935         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
5936         "in" before "out"
5937
5938         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
5939
5940         * glib/dbus-glib-tool.c (main): set up to have a --self-test
5941         option that runs the tests, and start filling in some code
5942         including for starters just dumping the interfaces to stdout
5943
5944         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
5945
5946         * test/data/valid-introspection-files/lots-of-types.xml: test of
5947         an example introspection file
5948
5949         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
5950         "node" (I think...)
5951
5952 2004-05-31  Seth Nickell  <seth@gnome.org>
5953
5954         * python/dbus_bindings.pyx.in:
5955         * python/tests/test-client.py:
5956
5957         Test Suite: 1
5958         Python Bindings: 0
5959
5960         Fix string array memory trashing bug... oops...
5961
5962 2004-05-30  Seth Nickell  <seth@gnome.org>
5963
5964         * python/dbus.py:
5965
5966         Add a nicer-but-less-flexible alternate API for handling 
5967         calls to virtual objects in dbus.ObjectTree.
5968
5969         Screw up the argument order to the dbus.Object constructor
5970         for consistency with dbus.ObjectTree (and to make dbus_methods
5971         optional for future extension)
5972         
5973         * python/examples/Makefile.am:
5974         * python/examples/gconf-proxy-service.py:
5975         * python/examples/gconf-proxy-service2.py:
5976
5977         Alternate implementation of gconf-proxy-service using the
5978         nicer dbus.ObjectTree API.
5979         
5980         * python/examples/example-service.py:
5981         * python/tests/test-server.py
5982
5983         Reverse the argument order to deal with dbus.Object constructor
5984         changes.
5985         
5986 2004-05-30  Seth Nickell  <seth@gnome.org>
5987
5988         * python/examples/example-client.py:
5989         * python/examples/example-service.py:
5990
5991         Take it back. Lists seem to work but they're broken
5992         in the test suite. Make the base examples use
5993         lists (works fine).
5994
5995 2004-05-30  Seth Nickell  <seth@gnome.org>
5996
5997         * python/dbus_bindings.pyx.in:
5998         * python/tests/test-client.py:
5999
6000         Add some more tests and fix errors that crop up.
6001         Unfortunately, currently it seems like marshalling
6002         and unmarshalling of lists is completely broken :-(
6003
6004 2004-05-30  Seth Nickell  <seth@gnome.org>
6005
6006         * python/dbus_bindings.pyx.in:
6007
6008         Add support for ObjectPath type.
6009
6010         * python/dbus.py:
6011
6012         Refactor message handling code to a common function.
6013         
6014         * python/tests/test-client.py:
6015         * python/tests/test-server.py:
6016
6017         Add tests that check to make sure values of all types
6018         can be echoed from a service w/o mangling.
6019         
6020 2004-05-29  Seth Nickell  <seth@gnome.org>
6021
6022         * python/dbus.py:
6023
6024         Add ObjectTree class which allows implementation
6025         of trees of "virtual" objects. Basically the python
6026         wrapper for "register_fallback".
6027         
6028         * python/examples/Makefile.am
6029         * python/examples/gconf-proxy-client.py:
6030         * python/examples/gconf-proxy-service.py:
6031
6032         Implement a simple GConf proxy service that supports
6033         get/set on string and int GConf keys using the ObjectTree.
6034         
6035 2004-05-29  Seth Nickell  <seth@gnome.org>
6036
6037         * python/dbus.py:
6038         * python/examples/example-client.py:
6039         * python/examples/example-service.py:
6040         * python/examples/list-system-services.py:
6041
6042         Add SessionBus, SystemBus and ActivationBus classes
6043         so you don't need to know the special little BUS_TYPE
6044         flag.
6045         
6046 2004-05-29  Havoc Pennington  <hp@redhat.com>
6047
6048         * bus/config-parser.c (process_test_valid_subdir): temporarily
6049         stop testing config parser OOM handling, since expat has issues
6050         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6051
6052         * bus/dbus-daemon-1.1.in: change requested_reply to
6053         send_requested_reply/receive_requested_reply so we can send the
6054         replies, not just receive them.
6055
6056         * bus/config-parser.c: parse the new
6057         send_requested_reply/receive_requested_reply
6058
6059         * bus/policy.c (bus_client_policy_check_can_send): add
6060         requested_reply argument and use it
6061
6062         * bus/bus.c (bus_context_check_security_policy): pass through
6063         requested_reply status to message send check
6064
6065         * bus/system.conf.in: adapt to requested_reply change
6066         
6067 2004-05-28  Havoc Pennington  <hp@redhat.com>
6068
6069         * test/glib/test-service-glib.c (main): remove unused variable
6070
6071         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6072
6073         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6074         from the enum, no longer in use.
6075
6076         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6077         works right.
6078
6079         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6080         whether error_name passed in is a valid error name.
6081
6082 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6083
6084         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6085         OBJECT_PATH and OBJECT_PATH_ARRAY
6086
6087 2004-05-28  Seth Nickell  <seth@gnome.org>
6088
6089         * python/examples/Makefile.am:
6090
6091         Forget to add Makefile.am. Do not pass go.
6092
6093 2004-05-28  Michael Meeks  <michael@ximian.com>
6094
6095         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6096         fix no int64 case.
6097
6098         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6099
6100         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6101         (_dbus_message_iter_get_basic_type_array): impl.
6102         drastically simplify ~all relevant _get methods to use these.
6103         (_dbus_message_iter_append_basic_array),
6104         (dbus_message_iter_append_basic): impl
6105         drastically simplify ~all relevant _append methods to use these.
6106
6107         * dbus/dbus-message-builder.c (parse_basic_type) 
6108         (parse_basic_array, lookup_basic_type): impl.
6109         (_dbus_message_data_load): prune scads of duplicate /
6110         cut & paste coding.
6111
6112         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6113         (_dbus_demarshal_basic_type): implement,
6114         (demarshal_and_validate_len/arg): beef up debug.
6115         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6116
6117 2004-05-27  Seth Nickell  <seth@gnome.org>
6118
6119         * configure.in:
6120         * python/Makefile.am:
6121
6122         Include the example python apps in the tarball.
6123         
6124         * python/examples/list-system-services.py
6125
6126         Add a python new example that fetches the list of services
6127         from the system bus.
6128         
6129 2004-05-27  Seth Nickell  <seth@gnome.org>
6130
6131         * python/dbus.py:
6132         * python/dbus_bindings.pyx.in:
6133
6134         Fix failure to notify that a signal was not handled,
6135         resulted in hung functions.
6136         
6137 2004-05-25  Colin Walters  <walters@redhat.com>
6138
6139         * tools/dbus-monitor.c (main): Monitor all types of messages.
6140
6141 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6142
6143         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6144         which unregisters the object path and disposes the handler.
6145
6146 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6147  
6148         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6149          
6150         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6151         operands to && so we call dbus_message_iter_next () for the last
6152         argument also.
6153
6154 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6155
6156         * dbus/dbus-object-tree.c
6157         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6158         children even if the requested path isn't registered.
6159         (object_tree_test_iteration): test object_tree_list_registered.
6160
6161         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6162         it to 0.
6163         
6164 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6165
6166         * doc/TODO: Remove resolved items.
6167
6168         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6169         field.
6170         
6171         * bus/connection.c (bus_connections_expect_reply): Enforce the
6172         per-connection limit on pending replies.
6173         
6174         Patch from Jon Trowbridge <trow@ximian.com>:
6175  
6176         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6177         up a watch that triggers a config reload when one end of the pipe
6178         becomes readable.
6179         (signal_handler): Instead of doing the config reload in our SIGHUP
6180         handler, just write to the reload pipe and let the associated
6181         watch handle the reload when control returns to the main loop.
6182  
6183         * bus/driver.c (bus_driver_handle_reload_config): Added.
6184         Implements a ReloadConfig method for requesting a configuration
6185         file reload via the bus driver.
6186  
6187 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6188
6189         * HACKING: Updated release instructions concerning the wiki page.
6190
6191 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6192
6193         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6194         filter against auth->allowed_mechs; we only add allowed mechs in
6195         record_mechanisms().
6196  
6197         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6198         ALLOWED_MECHS to auth-script format so we can set the list of
6199         allowed mechanisms.
6200  
6201         * data/auth/client-out-of-mechanisms.auth-script: New test to
6202         check client disconnects when it is out of mechanisms to try.
6203  
6204         * dbus/dbus-auth.c (process_command): Remove check for lines
6205         longer that 1 MB; we only buffer up maximum 16 kB.
6206  
6207         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6208         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6209         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6210         assume there might be unused bytes.
6211  
6212         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6213         client-out-of-mechs, it is handled in process_reject(). Move check
6214         for max failures to send_rejected(), as it's a server-only thing.
6215
6216         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6217         send_auth(), send_data(), send_rejected(), send_error(),
6218         send_ok(), send_begin() and send_cancel().
6219
6220 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6221
6222         Remove base64 encoding, replace with hex encoding. Original patch
6223         from trow@ximian.com, added error handling.
6224
6225         * dbus/dbus-string.c (_dbus_string_base64_encode)
6226         (_dbus_string_base64_decode): Remove.
6227         (_dbus_string_hex_decode): Add end_return argument so we can
6228         distinguish between OOM and invalid hex encoding.
6229         (_dbus_string_test): Remove base64 tests and add test case for
6230         invalid hex.
6231
6232         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6233         Replace base64 with hex.
6234
6235         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6236         for invalid hex encoded data in auth protocol.
6237
6238 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6239
6240         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6241         leak.
6242
6243 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6244
6245         * mono/dbus-sharp.dll.config.in: Added for GAC
6246         * mono/dbus-sharp.snk: Added for GAC
6247         * mono/Assembly.cs.in: Added for GAC
6248         * mono/Makefile.am: Changes for GAC installation        
6249         * configure.in: Added refs for dbus-sharp.dll.config.in and
6250         Assembly.cs.in. More fixes for mono testing
6251         * mono/example/Makefile.am: Changed var to CSC
6252         * Makefile.am: Changed flag name to DBUS_USE_CSC
6253
6254 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6255
6256         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6257         * mono/doc/*: Added documentation framework
6258         * configure.in: Added monodoc check
6259         * README: Added description of mono configure flags
6260
6261 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6262
6263         * doc/dbus-specification.xml: Added a "Required" column to the 
6264         header fields table and changed the "zero or more" verbage in
6265         the above paragraph to read "The header must contain the required 
6266         named header fields and zero or more of the optional named header 
6267         fields".
6268         * test/data/invalid-messages/*.message: Added the required PATH 
6269         named header field to the tests so that they don't fail on 
6270         'Missing path field'
6271
6272 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6273
6274         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6275         the stack by implicitly defining variable and parameter types and
6276         removing the hack of defining C pointers as python objects and later
6277         casting them.
6278
6279 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6280
6281         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6282
6283 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6284
6285         * mono/DBusType/Dict.cs: Handle empty dicts
6286         * mono/DBusType/Array.cs: Handle empty arrays
6287         * mono/Arguments.cs: Handle empty arguments
6288
6289 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6290
6291         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6292         field
6293
6294 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6295
6296         * test/data/valid-messages/standard-*.message: Update message
6297         test scripts to new header field names.
6298
6299 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6300
6301         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6302         overflow to times_we_did_each_thing array which would chop off the
6303         first character of the failure_dir string. Increased the size of
6304         the array to 7 to reflect the number of random mutation functions
6305         we have.
6306
6307 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6308
6309         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6310         unix_server->watch here, it is unreffed in disconnect.
6311         (_dbus_server_new_for_tcp_socket): convert NULL host to
6312         "localhost" here so we don't append NULL to address.
6313         
6314         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6315         various addresses, including tcp with no explicit host.
6316
6317 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6318
6319         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6320         fix incorrect setting of .name_offset in the HeaderField (it was
6321         off by two bytes, positioned right after the name and typecode)
6322
6323         * bus/bus.c (bus_context_new, bus_context_unref): test before
6324         calling dbus_server_free_data_slot and _dbus_user_database_unref
6325         in case of an error.
6326
6327         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6328         by libdbus-gtool.
6329
6330 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6331
6332         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6333         _dbus_poll() instead of select().
6334
6335 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6336
6337         * bus/main.c (signal_handler): Reload the configuration files
6338         on SIGHUP.
6339         (main): Set up our SIGHUP handler.
6340
6341         * bus/bus.c (struct BusContext): Store the config file, user and
6342         fork flag in the BusContext.
6343         (process_config_first_time_only): Added.  Contains the code
6344         (previously in bus_context_new) for setting up the BusContext from
6345         the BusConfigParser that should only be run the first time the
6346         config files are read.
6347         (process_config_every_time): Added.  Contains the code (previously
6348         in bus_context_new) for setting up the BusContext from the
6349         BusConfigParser that should be run every time the config files are
6350         read.
6351         (load_config): Added.  Builds a BusConfigParser from the config
6352         files and passes the resulting structure off to
6353         process_config_first_time_only (assuming this is the first time)
6354         and process_config_every_time.
6355         (bus_context_new): All of the config-related code has been moved
6356         to process_config_first_time_only and process_config_every_time.
6357         Now this function just does the non-config-related initializations
6358         and calls load_config.
6359         (bus_context_reload_config): Added.
6360
6361 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6362
6363         * bus/driver.c (bus_driver_handle_get_service_owner):
6364         implement a GetServiceOwner method.
6365         * doc/dbus-specification.xml: document it.
6366         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6367         
6368         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6369         implement, using the bus GetServiceOwner method.
6370
6371         * test/glib/test-dbus-glib.c:
6372         use dbus_gproxy_new_for_service_owner so that we can receive the
6373         signal. 
6374
6375 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6376
6377         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6378         dbus/dbus-message.c, dbus/dbus-protocol.h
6379         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6380
6381         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6382         dbus/dbus-message.c, dbus/dbus-protocol.h
6383         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6384
6385         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6386         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6387         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6388
6389         * doc/dbus-specification.xml (Header Fields Table):
6390         s/SERVICE/DESTINATION
6391         s/SENDER_SERVICE/SENDER
6392
6393
6394 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6395
6396         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6397         a few seconds.
6398
6399 2004-04-13  Michael Meeks  <michael@ximian.com>
6400
6401         * glib/dbus-gobject.c (handle_introspect): split out
6402         (introspect_properties): this.
6403         (handle_introspect): implement this.
6404
6405         * test/glib/Makefile.am: use the absolute path so the bus
6406         daemon's chdir ("/") doesn't kill us dead.
6407
6408         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6409
6410 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6411
6412         * bus/config-parser.c (struct BusConfigParser): Added
6413         included_files field.
6414         (seen_include): Added.  Checks whether or not a file has already
6415         been included by any parent BusConfigParser.
6416         (bus_config_parser_new): Copy the parent's included_files.
6417         (include_file): Track which files have been included, and fail on
6418         circular inclusions.
6419         (process_test_valid_subdir): Changed printf to report if we are
6420         testing valid or invalid conf files.
6421         (all_are_equiv): Changed printf to be a bit clearer about
6422         what we are actually doing.
6423         (bus_config_parser_test): Test invalid configuration files.
6424
6425 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6426
6427         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6428         argument.  If non-null, the newly-constructed BusConfigParser will
6429         be initialized with the parent's BusLimits instead of the default
6430         values.
6431         (include_file): When including a config file, pass in
6432         the current parser as the parent and then copy the BusLimits
6433         from the included BusConfigParser pack to the current parser.
6434         (process_test_valid_subdir): Renamed from process_test_subdir.
6435         (process_test_equiv_subdir): Added.  Walks through a directory,
6436         descending into each subdirectory and loading the config files
6437         it finds there.  If any subdirectory contains two config files
6438         that don't produce identical BusConfigParser structs, fail.
6439         For now, the BusConfigParser's BusPolicies are not compared.
6440         (bus_config_parser_test): Call both process_test_valid_subdir and
6441         process_test_equiv_subdir.
6442
6443         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6444         argument and pass it along to the call to bus_config_parser_new.
6445         Also made a few small changes to allow this code to compile.
6446
6447         * bus/config-loader-expat.c (bus_config_load): Take a parent
6448         argument and pass it along to the call to bus_config_parser_new.
6449
6450         * bus/bus.c (bus_context_new): Load the config file
6451         with a NULL parent argument.
6452
6453 2004-03-29  Michael Meeks  <michael@ximian.com>
6454
6455         * glib/dbus-gobject.c (introspect_properties): split
6456         out, fix mangled 'while' flow control.
6457         (introspect_signals): implement.
6458         (handle_introspect): update.
6459
6460 2004-03-29  Michael Meeks  <michael@ximian.com>
6461
6462         * glib/dbus-gobject.c (set_object_property): split out / 
6463         re-work, use the property type, and not the message type(!)
6464         (get_object_property): ditto.
6465
6466         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6467         (dbus_gvalue_marshal): make this code re-usable, needed
6468         for signals too, also on both proxy and server side.
6469         Re-write for more efficiency / readability.
6470
6471 2004-03-29  Michael Meeks  <michael@ximian.com>
6472
6473         * dbus/dbus-message.c
6474         (dbus_message_new_error_printf): impl.
6475
6476         * dbus/dbus-connection.c
6477         (dbus_connection_unregister_object_path): fix warning.
6478
6479         * configure.in: fix no-mono-installed situation.
6480
6481 2004-03-27  Havoc Pennington  <hp@redhat.com>
6482
6483         Patch from Timo Teräs:
6484         
6485         * tools/dbus-send.c (main): if --print-reply, assume type is
6486         method call; support boolean type args
6487         
6488         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6489         bunch of memleak and logic bugs
6490         
6491 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6492
6493         * mono/Arguments.cs:
6494         * mono/Introspector.cs:
6495         * mono/Handler.cs:
6496         * mono/InterfaceProxy.cs:
6497         * mono/Message.cs
6498         * mono/ProxyBuilder.cs:
6499         * mono/Service.cs:
6500         Added InterfaceProxy class to avoid building proxies for every
6501         object.
6502
6503         * dbus-message.h:
6504         * dbus-message.c (dbus_message_append_args_valist)
6505         (dbus_message_iter_get_object_path)
6506         (dbus_message_iter_get_object_path_array)
6507         (dbus_message_iter_append_object_path)
6508         (dbus_message_iter_append_object_path_array):
6509         Added object_path iter functions to handle OBJECT_PATH arguments
6510         
6511 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6512
6513         First checkin of mono bindings.
6514         * configure.in:
6515         * Makefile.am:
6516         Build stuff for the bindings
6517         * dbus-sharp.pc.in: Added for pkgconfig
6518         
6519 2004-03-21  Havoc Pennington  <hp@redhat.com>
6520
6521         * test/test-service.c (main): remove debug spew
6522
6523 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6524
6525         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6526         arrays
6527
6528         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6529         (dbus_message_iter_init_array_iterator)
6530         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6531         indicate whether the iterator is empty
6532
6533         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6534         warnings
6535
6536 2004-03-19  Havoc Pennington  <hp@redhat.com>
6537
6538         * NEWS: 0.21 updates
6539
6540         * configure.in: 0.21
6541
6542         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6543         
6544         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6545         you don't need pyrex to make dist
6546
6547         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6548         sources; run moc
6549         
6550 2004-03-18  Richard Hult  <richard@imendio.com>
6551
6552         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6553         (dbus_message_set_auto_activation): Add doxygen docs.
6554
6555 2004-03-16  Richard Hult  <richard@imendio.com>
6556
6557         * bus/activation.c: (bus_activation_service_created),
6558         (bus_activation_send_pending_auto_activation_messages),
6559         (bus_activation_activate_service):
6560         * bus/activation.h:
6561         * bus/dispatch.c: (bus_dispatch),
6562         (check_nonexistent_service_auto_activation),
6563         (check_service_auto_activated),
6564         (check_segfault_service_auto_activation),
6565         (check_existent_service_auto_activation), (bus_dispatch_test):
6566         * bus/driver.c: (bus_driver_handle_activate_service):
6567         * bus/services.c: (bus_registry_acquire_service):
6568         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6569         (dbus_message_get_auto_activation):
6570         * dbus/dbus-message.h:
6571         * dbus/dbus-protocol.h: Implement auto-activation.
6572         
6573         * doc/dbus-specification.xml: Add auto-activation to the spec.
6574
6575 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6576
6577         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6578         fix a bug with CUSTOM types.
6579
6580         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6581         a unit test for this bug (used to fail).
6582
6583 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6584
6585         * bus/activation.c:
6586         (babysitter_watch_callback): notify all pending activations waiting for
6587           the same exec that the activation failed.
6588         (bus_activation_activate_service): shortcut the activation if we 
6589           already waiting for the same executable to start up.
6590
6591 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6592
6593         * bus/activation.c: 
6594         - Added service file reloading. 
6595           Each service files directory is kept in an hash table in 
6596           BusActivation and each BusActivationEntry knows what .service-file it
6597           was read from. So when you try to activate a service the bus will 
6598           check if it's been updated, removed or if new .service-files has 
6599           been installed.
6600         - Test code at the bottom for the service file reloading.
6601         * bus/test-main.c: (main):
6602         * bus/test.h:
6603         - added service reloading test.
6604         * dbus/dbus-sysdeps.c: 
6605         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6606
6607 2004-03-08  Michael Meeks  <michael@ximian.com>
6608
6609         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6610         bail immediately if disconnected, to avoid busy loop.
6611
6612         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6613         cleanup cut/paste/inefficiency.
6614
6615 2004-03-01  David Zeuthen  <david@fubar.dk>
6616
6617         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6618         bug where args were used twice. This bug resulted in a segfault
6619         on a Debian/PPC system when starting the messagebus daemon. Include
6620         dbus-sysdeps.h for DBUS_VA_COPY
6621
6622         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6623
6624         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6625         appropriate va_copy implementation. From GLib
6626         
6627 2004-02-24  Joe Shaw  <joe@ximian.com>
6628
6629         * bus/services.c (bus_registry_acquire_service): We need to pass
6630         in the service name to dbus_set_error() to prevent a crash.
6631
6632 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6633
6634         * AUTHORS: Reveal my True identity.
6635
6636 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6637
6638         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6639         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6640
6641 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6642
6643         * doc/TODO: Added not about better error check of configuration files.
6644
6645 2003-12-02  Richard Hult  <richard@imendio.com>
6646
6647         * Update AFL version to 2.0 throughout the source files to reflect
6648         the update that was done a while ago.
6649
6650 2003-12-02  Richard Hult  <richard@imendio.com>
6651
6652         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6653         wrote_dict_key to FALSE on the iter that the dict is appended to,
6654         just like when appending other types. Fixes a bug where a dict
6655         couldn't be put inside a dict.
6656         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6657         (message_iter_test, _dbus_message_test): Add test case for dict
6658         inside dict.
6659
6660 2003-12-01  David Zeuthen  <david@fubar.dk>
6661
6662         * python/dbus.py: Add the actual message when calling the reciever
6663         of a signal such that parameters can be inspected. Add the method
6664         remove_signal_receiver
6665         
6666 2003-11-26  Mikael Hallendal  <micke@imendio.com>
6667
6668         * bus/*.[ch]:
6669         * dbus/*.[ch]:
6670         * glib/*.[ch]: Made ref functions return the pointer
6671
6672 2003-11-25  Zack Rusin  <zack@kde.org>
6673
6674         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6675
6676         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
6677         wrappers,
6678
6679         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
6680         the Integrator and to better fit with the server,
6681
6682 2003-11-24  Zack Rusin  <zack@kde.org>
6683
6684         * qt/connection.h, qt/connection.cpp: removing initDbus method since
6685         the integrator handles it now
6686
6687         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6688         since QTimer wasn't really meant to be used the way DBusTimeout is
6689
6690 2003-11-24  Zack Rusin  <zack@kde.org>
6691
6692         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
6693         Integrator class which integrates D-BUS with the Qt event loop,
6694
6695         * qt/connection.h, qt/connection.cpp: Move all the code which
6696         was dealing with D-BUS integration to the Integrator class,
6697         and start using Integrator,
6698
6699 2003-11-23  Zack Rusin  <zack@kde.org>
6700
6701         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
6702         wrapper
6703
6704         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6705         switching namespaces to DBusQt, reworking the class,
6706
6707         * Makefile.cvs: switching dependencies so that it matches KDE 
6708         schematics,
6709         
6710         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
6711         the library
6712
6713 2003-11-19  Havoc Pennington  <hp@redhat.com>
6714
6715         * NEWS: update
6716
6717         * configure.in: bump version to 0.20
6718
6719         * configure.in (have_qt): add yet another place to look for qt
6720         (someone hand trolltech a .pc file...)
6721
6722 2003-11-01  Havoc Pennington  <hp@redhat.com>
6723
6724         * doc/dbus-specification.xml: add state machine docs on the auth
6725         protocol; just a first draft, I'm sure it's wrong.      
6726
6727 2003-10-28  David Zeuthen  <david@fubar.dk>
6728
6729         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6730         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6731         
6732 2003-10-28  Havoc Pennington  <hp@redhat.com>
6733
6734         * dbus/dbus-message.c (get_next_field): delete unused function
6735
6736 2003-10-28  Havoc Pennington  <hp@redhat.com>
6737
6738         * bus/expirelist.c (do_expiration_with_current_time): detect
6739         failure of the expire_func due to OOM
6740
6741         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6742
6743         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6744         NoReply error that's now created by the bus when the service exits
6745
6746 2003-10-28  Havoc Pennington  <hp@redhat.com>
6747
6748         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6749         tests for set_path, set_interface, set_member, etc.
6750
6751         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6752
6753         * dbus/dbus-message.c (set_string_field): always just delete and
6754         re-append the field; accept NULL for deletion
6755         (re_align_fields_recurse): reimplement
6756         
6757 2003-10-26  Havoc Pennington  <hp@redhat.com>
6758
6759         * dbus/dbus-connection.c: fix docs to properly describe the
6760         disconnected message
6761         (_dbus_connection_notify_disconnected): remove this function; 
6762         we can't synchronously add the disconnected message, we have to 
6763         do it after we've queued any remaining real messages
6764         (_dbus_connection_get_dispatch_status_unlocked): queue the
6765         disconnect message only if the transport has finished queueing all
6766         its real messages and is disconnected.
6767         (dbus_connection_disconnect): update the dispatch status here
6768
6769 2003-10-22  Havoc Pennington  <hp@redhat.com>
6770
6771         * bus/bus.c (bus_context_check_security_policy): fix up assertion
6772
6773         * bus/connection.c (bus_transaction_send_from_driver): set the
6774         destination to the connection's base service
6775
6776 2003-10-20  Havoc Pennington  <hp@redhat.com>
6777
6778         hmm, make check is currently not passing.
6779         
6780         * doc/dbus-specification.xml: add requirement that custom type
6781         names follow the same rules as interface names.
6782
6783         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6784         duplication and allow 'c' to be 'custom'; dict is now 'm' for
6785         'map'
6786
6787         * doc/dbus-specification.xml: update type codes to match
6788         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6789         CUSTOM. Add type OBJECT_PATH to the spec.
6790
6791 2003-10-17  Havoc Pennington  <hp@redhat.com>
6792
6793         * bus/driver.c (create_unique_client_name): use "." as separator
6794         in base service names instead of '-'
6795
6796         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6797         byte at the end of the string
6798
6799         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6800         optimization macros since string validation seems to be a slow
6801         point.
6802         
6803         * doc/dbus-specification.xml: restrict valid
6804         service/interface/member/error names. Add test suite code for the
6805         name validation.
6806
6807         * dbus/dbus-string.c: limit service/interface/member/error names 
6808         to [0-9][A-Z][a-z]_
6809
6810         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6811         format arg to verbose spew
6812
6813         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6814         memory, return instead of g_error
6815
6816         * test/test-service.c (path_message_func): support emitting a
6817         signal on request
6818
6819         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6820         activation bus type if DBUS_BUS_ACTIVATION was set; default to
6821         assuming the activation bus was the session bus so that services
6822         started manually will still register.
6823         (init_connections_unlocked): fix so that in OOM situation we get
6824         the same semantics when retrying the function
6825         
6826         * test/test-service.c (main): change to use path registration, to
6827         test those codepaths; register with DBUS_BUS_ACTIVATION rather
6828         than DBUS_BUS_SESSION
6829
6830 2003-10-16  Havoc Pennington  <hp@redhat.com>
6831
6832         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6833
6834         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6835         coverage of the tests
6836         (coverage-report.txt): don't move the .da and .bbg files around
6837
6838 2003-10-16  Havoc Pennington  <hp@redhat.com>
6839
6840         * bus/bus.c (struct BusContext): remove struct field I didn't mean
6841         to put there
6842
6843 2003-10-16  Havoc Pennington  <hp@redhat.com>
6844
6845         * bus/connection.c (bus_pending_reply_expired): either cancel or
6846         execute, not both
6847         (bus_connections_check_reply): use unlink, not remove_link, as we
6848         don't want to free the link; fixes double free mess
6849
6850         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6851         where no reply was received
6852
6853         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6854         fix a refcount leak
6855
6856         * bus/signals.c (match_rule_matches): add special cases for the
6857         bus driver, so you can match on sender/destination for it.
6858
6859         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6860         DBUS_PRINT_BACKTRACE is set
6861
6862         * dbus/dbus-internals.c: add pid to assertion failure messages
6863
6864         * dbus/dbus-connection.c: add message type code to the debug spew
6865
6866         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6867         sender=foo not service=foo
6868
6869         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6870         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
6871         DBUS_ACTIVATION_ADDRESS instead
6872
6873         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6874         DBUS_SYSTEM_BUS_ADDRESS if appropriate
6875
6876         * bus/bus.c (bus_context_new): handle OOM copying bus type into
6877         context struct
6878
6879         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6880         (dbus_message_iter_get_object_path_array): new function (half
6881         finished, disabled for the moment)
6882         
6883         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6884         DBUS_MESSAGE_TYPE_ERROR
6885
6886         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6887         avoid redirecting stderr to /dev/null
6888         (babysit): close stdin if not doing the "exit_with_session" thing
6889
6890         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6891         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6892         stdout/stdin, so things don't get confused
6893         
6894         * bus/system.conf.in: fix to allow replies, I modified .conf
6895         instead of .conf.in again.
6896
6897 2003-10-14  David Zeuthen  <david@fubar.dk>
6898
6899         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6900         argtype to arg_type when raising unknown arg type exception.
6901         Changed type list to reflect the changes in dbus-protocol.h so 
6902         the bindings actually work.
6903
6904 2003-10-14  Havoc Pennington  <hp@redhat.com>
6905
6906         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6907         to have a bug keeping it from outputting the .da files sometimes
6908         (string_get_string): don't append garbage nul bytes to the string.
6909
6910 2003-10-15  Seth Nickell  <seth@gnome.org>
6911
6912         * python/Makefile.am:
6913
6914         Include dbus_h_wrapper.h in the dist tarball.
6915
6916 2003-10-14  Havoc Pennington  <hp@redhat.com>
6917
6918         * bus/bus.c (bus_context_check_security_policy): revamp this to
6919         work more sanely with new policy-based requested reply setup
6920
6921         * bus/connection.c (bus_transaction_send_from_driver): set bus
6922         driver messages as no reply
6923
6924         * bus/policy.c (bus_client_policy_check_can_receive): handle a
6925         requested_reply attribute on allow/deny rules
6926
6927         * bus/system.conf: add <allow requested_reply="true"/>
6928
6929         * bus/driver.c (bus_driver_handle_message): fix check for replies
6930         sent to the bus driver, which was backward. How did this ever work
6931         at all though? I think I'm missing something.
6932
6933         * dbus/dbus-message.c (decode_header_data): require error and
6934         method return messages to have a reply serial field to be valid
6935         (_dbus_message_loader_queue_messages): break up this function;
6936         validate that reply serial and plain serial are nonzero; 
6937         clean up the OOM/error handling.
6938         (get_uint_field): don't return -1 from this
6939         (dbus_message_create_header): fix signed/unsigned bug
6940
6941         * bus/connection.c (bus_connections_expect_reply): save serial of
6942         the incoming message, not reply serial
6943
6944 2003-10-14  Havoc Pennington  <hp@redhat.com>
6945
6946         * bus/connection.c: implement pending reply tracking using
6947         BusExpireList
6948
6949         * bus/bus.c (bus_context_check_security_policy): verify that a
6950         reply is pending in order to allow a reply to be sent. Deny 
6951         messages of unknown type.
6952
6953         * bus/dbus-daemon-1.1.in: update to mention new resource limits
6954
6955         * bus/bus.c (bus_context_get_max_replies_per_connection): new
6956         (bus_context_get_reply_timeout): new
6957
6958 2003-10-13  Seth Nickell  <seth@gnome.org>
6959
6960         * python/Makefile.am:
6961
6962         Pass "make distcheck": remove a couple files from DIST_FILES
6963         that weren't included in the final version.
6964
6965 2003-10-12  Havoc Pennington  <hp@pobox.com>
6966
6967         Added test code that 1) starts an actual bus daemon and 2) uses
6968         DBusGProxy; fixed bugs that were revealed by the test. Lots 
6969         more testing possible, but this is the basic framework.
6970         
6971         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
6972         empty proxy lists from the proxy list hash
6973
6974         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
6975         couple of return_if_fail checks
6976
6977         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
6978         to allocate, so everything is cleared to NULL as it should be.
6979
6980         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
6981         source as data to dbus_connection_set_timeout_functions() as the 
6982         timeout functions expected
6983
6984         * test/glib/run-test.sh: add a little script to start up a message
6985         bus and run tests using it
6986
6987         * tools/dbus-launch.1: updates
6988
6989         * tools/dbus-launch.c (main): add --config-file option
6990
6991         * tools/dbus-launch.c (main): remove confusing else if (runprog)
6992         that could never be reached.
6993
6994         * dbus/dbus-message.c (dbus_message_new_method_return) 
6995         (dbus_message_new_error, dbus_message_new_signal): set the
6996         no-reply-expected flag on all these. Redundant, but may
6997         as well be consistent.
6998
6999 2003-10-11  Havoc Pennington  <hp@pobox.com>
7000
7001         * test/decode-gcov.c (function_solve_graph): make broken block
7002         graph a nonfatal error since it seems to be broken. Need to debug
7003         this.
7004
7005         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7006         can't just check type > INVALID < LAST anymore
7007
7008         * dbus/dbus-message.c (dbus_message_get_signature): new function
7009         (dbus_message_has_signature): new function
7010         (struct DBusMessage): add signature field (right now it isn't sent
7011         over the wire, just generated on the fly)
7012         (dbus_message_copy): copy the signature, and init strings to
7013         proper length to avoid some reallocs
7014         (dbus_message_iter_init_array_iterator): return void, since it
7015         can't fail
7016         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7017         (_dbus_message_loader_queue_messages): add silly temporary hack to
7018         fill in message->signature on load
7019
7020         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7021         characters, so they are relatively human-readable.
7022
7023 2003-10-11  Havoc Pennington  <hp@pobox.com>
7024
7025         * dbus/dbus-message.c (_dbus_message_test): add more test
7026         coverage, but #if 0 for now since they uncover a bug 
7027         not fixed yet; I think in re_align_field_recurse()
7028         (re_align_field_recurse): add FIXME about broken assertion
7029
7030         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7031
7032         * bus/connection.c: share a couple code bits with expirelist.c
7033
7034         * bus/expirelist.h, bus/expirelist.c: implement a generic
7035         expire-items-after-N-seconds facility, was going to share between
7036         expiring connections and replies, decided not to use for expiring
7037         connections for now.
7038
7039         * COPYING: include AFL 2.0 (still need to change all the file headers)
7040
7041 2003-10-09  Havoc Pennington  <hp@redhat.com>
7042
7043         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7044         gcc 3.3. Not that we do anything about it yet.
7045
7046         * bus/signals.c (bus_match_rule_parse): impose max length on the
7047         match rule text
7048
7049         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7050
7051 2003-10-09  Havoc Pennington  <hp@redhat.com>
7052
7053         Make matching rules theoretically work (add parser).
7054         
7055         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7056         the case where destination is explicitly specified as bus driver
7057         and someone else is eavesdropping.
7058         
7059         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7060         definition of eavesdropping and assertion
7061
7062         * tools/dbus-send.c (main): use dbus_message_type_from_string
7063
7064         * bus/signals.c (bus_match_rule_parse): implement
7065
7066         * dbus/dbus-message.c (dbus_message_type_from_string): new
7067
7068         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7069
7070 2003-10-02  Havoc Pennington  <hp@pobox.com>
7071
7072         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7073         dbus_gproxy_oneway_call
7074
7075         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7076         (dbus_server_setup_with_g_main): fix to allow calling them more
7077         than once on the same args
7078         (dbus_bus_get_with_g_main): new function
7079
7080 2003-10-02  Havoc Pennington  <hp@redhat.com>
7081
7082         * doc/dbus-tutorial.xml: write some stuff
7083
7084 2003-09-29  Havoc Pennington  <hp@pobox.com>
7085
7086         * configure.in: split checks for Doxygen from XML docs, check for
7087         xmlto
7088
7089         * doc/Makefile.am: XML-ify all the docs, and add a blank
7090         dbus-tutorial.xml
7091
7092 2003-09-29  Havoc Pennington  <hp@pobox.com>
7093
7094         * Merge dbus-object-names branch. To see the entire patch 
7095         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7096         it's huuuuge though.
7097         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7098         
7099 2003-09-28  Havoc Pennington  <hp@pobox.com>
7100
7101         * HACKING: update to reflect new server
7102
7103 2003-09-26  Seth Nickell  <seth@gnome.org>
7104
7105         * python/dbus.py:
7106         * python/examples/example-signals.py:
7107
7108         Start implementing some notions of signals. The API
7109         is really terrible, but they sort of work (with the
7110         exception of being able to filter by service, and to
7111         transmit signals *as* a particular service). Need to
7112         figure out how to make messages come from the service
7113         we registered :-(
7114         
7115         * python/dbus_bindings.pyx.in:
7116
7117         Removed duplicate message_handler callbacks.
7118         
7119 2003-09-25  Havoc Pennington  <hp@redhat.com>
7120
7121         * bus/session.conf.in: fix my mess
7122
7123 2003-09-25  Havoc Pennington  <hp@pobox.com>
7124
7125         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7126
7127 2003-09-25  Seth Nickell  <seth@gnome.org>
7128
7129         * python/examples/example-service.py:
7130
7131         Johan notices complete wrong code in example-service, but
7132         completely wrong in a way that works exactly the same (!).
7133         Johan is confused, how could this possibly work? Example
7134         code fails to serve purpose of making things clear.
7135         Seth fixes.
7136
7137 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7138
7139         * doc/dbus-specification.sgml: don't require header fields
7140         to be 4-byte aligned and specify that fields should be
7141         distinguished from padding by the fact that zero is not
7142         a valid field name.
7143         
7144         * doc/TODO: remove re-alignment item and add item to doc
7145         the OBJECT_PATH type.
7146         
7147         * dbus/dbus-message.c:
7148         (HeaderField): rename the original member to value_offset
7149         and introduce a name_offset member to keep track of where
7150         the field actually begins.
7151         (adjust_field_offsets): remove.
7152         (append_int_field), (append_uint_field),
7153         (append_string_field): don't align the start of the header
7154         field to a 4-byte boundary.
7155         (get_next_field): impl finding the next marhsalled field
7156         after a given field.
7157         (re_align_field_recurse): impl re-aligning a number of
7158         already marshalled fields.
7159         (delete_field): impl deleting a field of any type and
7160         re-aligning any following fields.
7161         (delete_int_or_uint_field), (delete_string_field): remove.
7162         (set_int_field), (set_uint_field): no need to re-check
7163         that we have the correct type for the field.
7164         (set_string_field): ditto and impl re-aligning any
7165         following fields.
7166         (decode_header_data): update to take into account that
7167         the fields aren't 4-byte aligned any more and the new
7168         way to distinguish padding from header fields. Also,
7169         don't exit when there is too much header padding.
7170         (process_test_subdir): print the directory.
7171         (_dbus_message_test): add test to make sure a following
7172         field is re-aligned correctly after field deletion.
7173         
7174         * dbus/dbus-string.[ch]:
7175         (_dbus_string_insert_bytes): rename from insert_byte and
7176         allow the insert of multiple bytes.
7177         (_dbus_string_test): test inserting multiple bytes.
7178
7179         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7180         warning note to docs about having to re-align any
7181         marshalled values following the string.
7182         
7183         * dbus/dbus-message-builder.c:
7184         (append_string_field), (_dbus_message_data_load):
7185         don't align the header field.
7186         
7187         * dbus/dbus-auth.c: (process_test_subdir): print the
7188         directory.
7189         
7190         * test/break-loader.c: (randomly_add_one_byte): upd. for
7191         insert_byte change.
7192         
7193         * test/data/invalid-messages/bad-header-field-alignment.message:
7194         new test case.
7195         
7196         * test/data/valid-messages/unknown-header-field.message: shove
7197         a dict in the unknown field.
7198
7199 2003-09-25  Seth Nickell  <seth@gnome.org>
7200
7201         * python/dbus.py:
7202         * python/dbus_bindings.pyx.in:
7203
7204         Handle return values.
7205         
7206         * python/examples/example-client.py:
7207         * python/examples/example-service.py:
7208
7209         Pass back return values from the service to the client.
7210         
7211 2003-09-24  Seth Nickell  <seth@gnome.org>
7212
7213         * python/dbus.py:
7214
7215         Connect Object methods (when you are sharing an object) up... pass
7216         in a list of methods to be shared. Sharing all the methods just
7217         worked out too weird. You can now create nice Services over the
7218         DBus in Python. :-)
7219         
7220         * python/dbus_bindings.pyx.in:
7221
7222         Keep references to user_data tuples passed into C functions so 
7223         Python doesn't garbage collect on us.
7224
7225         Implement MethodReturn and Error subclasses of Message for creating
7226         DBusMessage's of those types.
7227         
7228         * python/examples/example-client.py:
7229         * python/examples/example-service.py:
7230
7231         Simple example code showing both how create DBus services and objects,
7232         and how to use them.
7233
7234 2003-09-23  Havoc Pennington  <hp@pobox.com>
7235
7236         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7237
7238 2003-09-23  Havoc Pennington  <hp@redhat.com>
7239
7240         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7241         (dbus_gproxy_disconnect_signal): implement
7242         (dbus_gproxy_manager_remove_signal_match): implement
7243         (dbus_gproxy_manager_add_signal_match): implement
7244         (dbus_gproxy_oneway_call): implement
7245
7246 2003-09-23  Havoc Pennington  <hp@pobox.com>
7247
7248         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7249         subclass. This means dropping the transparent thread safety of the
7250         proxy; you now need a separate proxy per-thread, or your own
7251         locking on the proxy. Probably right anyway.
7252         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7253
7254 2003-09-22  Havoc Pennington  <hp@redhat.com>
7255
7256         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7257
7258 2003-09-21  Seth Nickell  <seth@gnome.org>
7259
7260         First checkin of the Python bindings.
7261         
7262         * python/.cvsignore:
7263         * python/Makefile.am:
7264         * python/dbus_bindings.pyx.in:
7265         * python/dbus_h_wrapper.h:
7266
7267         Pieces for Pyrex to operate on, building a dbus_bindings.so
7268         python module for low-level access to the DBus APIs.
7269         
7270         * python/dbus.py:
7271
7272         High-level Python module for accessing DBus objects.
7273
7274         * configure.in:
7275         * Makefile.am:
7276
7277         Build stuff for the python bindings.
7278
7279         * acinclude.m4:
7280
7281         Extra macro needed for finding the Python C header files.
7282
7283 2003-09-21  Havoc Pennington  <hp@pobox.com>
7284
7285         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7286         implementing the proxy manager, didn't get very far.
7287
7288         * dbus/dbus-bus.c (dbus_bus_add_match): new
7289         (dbus_bus_remove_match): new
7290
7291         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7292         path_name argument; adjust the other not-yet-implemented 
7293         gproxy constructors to be what I think they should be.
7294
7295 2003-09-21  Havoc Pennington  <hp@pobox.com>
7296
7297         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7298         by default for message bus connections.
7299
7300         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7301         exit_on_disconnect flag is set and we process the disconnected
7302         signal.
7303         (dbus_connection_set_exit_on_disconnect): new function
7304
7305 2003-09-21  Havoc Pennington  <hp@pobox.com>
7306
7307         Get matching rules mostly working in the bus; only actually
7308         parsing the rule text remains. However, the client side of
7309         "signal connections" hasn't been started, this patch is only the
7310         bus side.
7311         
7312         * dbus/dispatch.c: fix for the matching rules changes
7313         
7314         * bus/driver.c (bus_driver_handle_remove_match)
7315         (bus_driver_handle_add_match): send an ack reply from these
7316         method calls
7317
7318         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7319         arguments, reported by Seth Nickell
7320
7321         * bus/config-parser.c (append_rule_from_element): support
7322         eavesdrop=true|false attribute on policies so match rules 
7323         can be prevented from snooping on the system bus.
7324
7325         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7326         and "destination" in attribute names; fix some docs bugs; 
7327         add eavesdrop=true|false attribute
7328
7329         * bus/driver.c (bus_driver_handle_add_match)
7330         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7331         messages
7332
7333         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7334         rid of broadcast service concept, signals are just always broadcast
7335
7336         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7337         mostly implement matching rules stuff (currently only exposed as signal
7338         connections)
7339
7340 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7341
7342         * doc/dbus-specification.sgml: Change the header field name
7343         to be an enum and update the rest of the spec to reference
7344         the fields using the conventinal name.
7345
7346         * dbus/dbus-protocol.h: update to reflect the spec.
7347
7348         * doc/TODO: add item to remove the 4 byte alignment requirement.
7349         
7350         * dbus/dbus-message.c: Remove the code to generalise the
7351         header/body length and serial number header fields as named
7352         header fields so we can reference field names using the 
7353         protocol values.
7354         (append_int_field), (append_uint_field), (append_string_field):
7355         Append the field name as a byte rather than four chars.
7356         (delete_int_or_uint_field), (delete_string_field): reflect the
7357         fact that the field name and typecode now occupy 4 bytes instead
7358         of 8.
7359         (decode_string_field), (decode_header_data): update to reflect
7360         protocol changes and move the field specific encoding from
7361         decode_string_field() back into decode_header_data().
7362         
7363         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7364         Add utility to aid debugging.
7365         
7366         * dbus/dbus-message-builder.c:
7367         (append_string_field), (_dbus_message_data_load): Update to
7368         reflect protocol changes; Change the FIELD_NAME directive
7369         to HEADER_FIELD and allow it to take the field's conventional
7370         name rather than the actual value.
7371         
7372         * test/data/*/*.message: Update to use HEADER_FIELD instead
7373         of FIELD_NAME; Always align the header on an 8 byte boundary
7374         *before* updating the header length.
7375
7376 2003-09-15  Havoc Pennington  <hp@pobox.com>
7377
7378         * dbus/dbus-pending-call.c: add the get/set object data
7379         boilerplate as for DBusConnection, etc. Use generic object data
7380         for the notify callback.
7381
7382         * glib/dbus-gparser.c (parse_node): parse child nodes
7383
7384         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7385         
7386         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7387         contain functions shared between the convenience lib and the
7388         installed lib
7389
7390         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7391         -export-symbols-regex to the GLib library
7392
7393         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7394         fix the locking in here, and add a default handler for
7395         Introspect() that just returns sub-nodes.
7396
7397 2003-09-14  Havoc Pennington  <hp@pobox.com>
7398
7399         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7400         rather than gfoo consistent
7401
7402         * glib/dbus-gproxy.h: delete for now, move contents to
7403         dbus-glib.h, because the include files don't work right since we
7404         aren't in the dbus/ subdir.
7405         
7406         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7407         (dbus_gproxy_end_call): finish
7408         (dbus_gproxy_begin_call): finish
7409
7410         * glib/dbus-gmain.c (dbus_set_g_error): new
7411
7412         * glib/dbus-gobject.c (handle_introspect): include information
7413         about child nodes in the introspection
7414
7415         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7416         function to help in implementation of introspection
7417
7418         * dbus/dbus-object-tree.c
7419         (_dbus_object_tree_list_registered_and_unlock): new function
7420
7421 2003-09-12  Havoc Pennington  <hp@pobox.com>
7422
7423         * glib/dbus-gidl.h: add common base class for all the foo_info
7424         types
7425
7426         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7427         similar to kdcop
7428
7429         * test/Makefile.am: try test srcdir -ef . in addition to test
7430         srcdir = ., one of them should work (yeah lame)
7431         
7432         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7433         library
7434         
7435         * glib/dbus-gparser.h: make description_load routines return
7436         NodeInfo* not Parser*
7437
7438         * Makefile.am (SUBDIRS): build test dir after all library dirs
7439
7440         * configure.in: add GTK+ detection
7441
7442 2003-09-07  Havoc Pennington  <hp@pobox.com>
7443
7444         * Make Doxygen contented.
7445
7446 2003-09-07  Havoc Pennington  <hp@pobox.com>
7447
7448         * doc/dbus-specification.sgml: more updates
7449
7450 2003-09-06  Havoc Pennington  <hp@pobox.com>
7451
7452         * doc/dbus-specification.sgml: partial updates
7453
7454         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7455         zillionth time; hopefully I edited the right file this time.
7456
7457         * bus/config-parser.c (append_rule_from_element): support
7458         send_type, send_path, receive_type, receive_path
7459
7460         * bus/policy.c: add message type and path to the list of things
7461         that can be "firewalled"
7462
7463 2003-09-06  Havoc Pennington  <hp@pobox.com>
7464
7465         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7466         (dbus_connection_register_object_path): make this not handle
7467         messages to paths below the given path
7468
7469 2003-09-03  Havoc Pennington  <hp@pobox.com>
7470
7471         * test/glib/Makefile.am: add this with random glib-linked test
7472         programs
7473
7474         * glib/Makefile.am: remove the random test programs from here,
7475         leave only the unit tests
7476
7477         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7478         uscore/javacaps conversion, and fix     
7479         (get_object_property, set_object_property): change to .NET
7480         convention for mapping props to methods, set_FooBar/get_FooBar, 
7481         since one language has such a convention we may as well copy it. 
7482         Plus real methods in either getFooBar or get_foo_bar style won't 
7483         collide with this convention.
7484
7485 2003-09-01  Havoc Pennington  <hp@pobox.com>
7486
7487         * glib/dbus-gparser.c: implement
7488
7489         * glib/dbus-gobject.c: start implementing skeletons support
7490
7491         * configure.in: when disabling checks/assert, also define
7492         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7493
7494 2003-09-01  Havoc Pennington  <hp@pobox.com>
7495
7496         * glib/Makefile.am: rearrange a bunch of files and get "make
7497         check" framework set up
7498
7499 2003-08-31  Havoc Pennington  <hp@pobox.com>
7500
7501         * fix build with --disable-tests
7502
7503 2003-08-30  Havoc Pennington  <hp@pobox.com>
7504
7505         * dbus/dbus-connection.c: purge DBusMessageHandler
7506
7507         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7508         use callbacks everywhere
7509
7510 2003-08-30  Havoc Pennington  <hp@pobox.com>
7511
7512         * test/data/valid-config-files/system.d/test.conf: change to 
7513         root for the user so warnings don't get printed
7514
7515         * dbus/dbus-message.c: add dbus_message_get_path,
7516         dbus_message_set_path
7517         
7518         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7519         dispatching to a path
7520
7521         * dbus/dbus-string.c (_dbus_string_validate_path): add
7522
7523         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7524         (_dbus_marshal_object_path): implement
7525
7526         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7527         to contain the path to the target object
7528         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7529         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7530
7531 2003-08-30  Havoc Pennington  <hp@pobox.com>
7532
7533         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7534
7535 2003-08-29  Havoc Pennington  <hp@pobox.com>
7536
7537         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7538         registered
7539         (struct DBusObjectSubtree): shrink this
7540         a lot, since we may have a lot of them
7541         (_dbus_object_tree_free_all_unlocked): implement
7542         (_dbus_object_tree_dispatch_and_unlock): implement
7543
7544 2003-08-29  Havoc Pennington  <hp@pobox.com>
7545
7546         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7547
7548 2003-08-28  Havoc Pennington  <hp@pobox.com>
7549
7550         purge DBusObjectID
7551         
7552         * dbus/dbus-connection.c: port to no ObjectID, create a
7553         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7554
7555         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7556         everything except UnregisterFunction and MessageFunction
7557         
7558         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7559         add DBUS_TYPE_OBJECT_PATH
7560         
7561         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7562         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7563         path-based object IDs
7564
7565 2003-08-25  Havoc Pennington  <hp@pobox.com>
7566
7567         Just noticed that dbus_message_test is hosed, I wonder when I
7568         broke that. I thought make check was passing earlier...
7569         
7570         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7571         container tree, will replace most of dbus-object-registry
7572
7573         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7574         screwup
7575
7576 2003-08-19  Havoc Pennington  <hp@pobox.com>
7577
7578         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7579         (dbus_message_is_error): fix this function
7580
7581         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7582         match
7583
7584         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7585         reflect clarified man page
7586         (bus_client_policy_check_can_send): ditto
7587         
7588         * bus/session.conf.in: fixup
7589
7590         * bus/system.conf.in: fixup
7591
7592 2003-08-18  Havoc Pennington  <hp@redhat.com>
7593
7594         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7595
7596         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7597         dumb bug created earlier (wrong order of args to
7598         decode_header_data())
7599         
7600         * tools/dbus-send.c: port
7601
7602         * tools/dbus-print-message.c (print_message): port
7603
7604         * test/data/*messages: port all messages over
7605         
7606         * dbus/dbus-message-builder.c: support including 
7607         message type
7608         
7609         * bus/driver.c: port over
7610         
7611         * bus/dispatch.c: port over to new stuff
7612
7613         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7614         rename disconnect signal to "Disconnected"
7615
7616 2003-08-17  Havoc Pennington  <hp@pobox.com>
7617
7618         This doesn't compile yet, but syncing up so I can hack on it from
7619         work. What are branches for if not broken code? ;-)
7620         
7621         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7622         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7623         DBUS_HEADER_FIELD_ERROR_NAME
7624         
7625         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7626         for the interface+member pairs
7627         (string_hash): change to use g_str_hash algorithm
7628         (find_direct_function, find_string_function): refactor these to
7629         share most code.
7630         
7631         * dbus/dbus-message.c: port all of this over to support 
7632         interface/member fields instead of name field
7633
7634         * dbus/dbus-object-registry.c: port over
7635         
7636         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7637         from _dbus_string_validate_name
7638
7639         * bus/dbus-daemon-1.1: change file format for the 
7640         <deny>/<allow> stuff to match new message naming scheme
7641
7642         * bus/policy.c: port over
7643
7644         * bus/config-parser.c: parse new format
7645         
7646 2003-08-16  Havoc Pennington  <hp@pobox.com>
7647
7648         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7649         broken assertion
7650
7651         * glib/dbus-gproxy.c: some hacking
7652
7653 2003-08-15  Havoc Pennington  <hp@redhat.com>
7654
7655         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7656
7657         * dbus/dbus-connection.c
7658         (dbus_connection_send_with_reply_and_block): factor out internals;
7659         change to convert any error replies to DBusError instead of 
7660         returning them as a message
7661
7662 2003-08-15  Havoc Pennington  <hp@pobox.com>
7663
7664         * dbus/dbus-connection.c, 
7665         dbus/dbus-pending-call.c: Finish the pending call stuff
7666
7667 2003-08-14  Havoc Pennington  <hp@redhat.com>
7668
7669         * dbus/dbus-pending-call.c: start on new object that will replace
7670         DBusMessageHandler and ReplyHandlerData for tracking outstanding
7671         replies
7672
7673         * dbus/dbus-gproxy.c: start on proxy object used to communicate
7674         with remote interfaces
7675
7676         * dbus/dbus-gidl.c: do the boring boilerplate in here
7677         
7678 2003-08-12  Havoc Pennington  <hp@pobox.com>
7679
7680         * bus/dispatch.c (bus_dispatch): make this return proper 
7681         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7682
7683         * dbus/dbus-errors.c (dbus_set_error): use
7684         _dbus_string_append_printf_valist
7685
7686         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7687         (_dbus_string_append_printf): new
7688
7689         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7690         UNKNOWN_METHOD
7691
7692         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7693         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7694         message is unhandled.
7695
7696 2003-08-11  Havoc Pennington  <hp@pobox.com>
7697
7698         * bus/test.c (client_disconnect_handler): change to return
7699         HANDLED (would have been REMOVE_MESSAGE)
7700
7701         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7702         HANDLED/NOT_YET_HANDLED instead of
7703         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
7704         should be used.
7705
7706 2003-08-10  Havoc Pennington  <hp@pobox.com>
7707
7708         * tools/dbus-send.c (main): add --type argument, for now
7709         supporting only method_call and signal types.
7710
7711         * tools/dbus-print-message.c: print message type
7712
7713         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7714         init connection->objects
7715
7716         * doc/dbus-specification.sgml: fix sgml
7717
7718         * bus/*.c: port over to object-instance API changes
7719
7720         * test/test-service.c: ditto
7721         
7722         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7723         name, we will have to fix up the rest of the code to also handle
7724         this
7725         (dbus_message_new): generic message-creation call
7726         (set_string_field): allow appending name field
7727
7728 2003-08-06  Havoc Pennington  <hp@pobox.com>
7729
7730         * dbus/dbus-object-registry.c: implement signal connection 
7731         and dispatch
7732
7733         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7734
7735         * dbus/dbus-internals.c (_dbus_memdup): new function
7736
7737 2003-08-02  Havoc Pennington  <hp@pobox.com>
7738
7739         * dbus/dbus-message.c (dbus_message_get_no_reply)
7740         (dbus_message_set_no_reply): add these and remove
7741         set_is_error/get_is_error
7742
7743         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
7744         remove the ERROR flag, since there's now an ERROR type
7745
7746 2003-08-01  Havoc Pennington  <hp@pobox.com>
7747
7748         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7749         implement
7750
7751         * dbus/dbus-message.c (dbus_message_get_type): new function
7752
7753         * doc/dbus-specification.sgml: add "type" byte to messages
7754
7755 2003-08-01  Havoc Pennington  <hp@pobox.com>
7756
7757         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7758         a message type enum to distinguish kinds of message
7759         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
7760         that need not be replied to
7761
7762 2003-08-01  Havoc Pennington  <hp@pobox.com>
7763
7764         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7765         (unpack_8_octets): fix no-64-bit-int bug
7766
7767         * dbus/dbus-object-registry.c (validate_id): validate the 
7768         connection ID bits, not just the instance ID.
7769
7770         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7771         the connection-global 33 bits of the object ID
7772
7773         * dbus/dbus-object-registry.c (info_from_entry): fill in 
7774         object ID in the new way
7775
7776         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
7777         define server/client/instance bits.
7778
7779 2003-07-30  Havoc Pennington  <hp@pobox.com>
7780
7781         * dbus/dbus-connection.c (dbus_connection_register_object): fix
7782         build
7783
7784 2003-07-13  Havoc Pennington  <hp@pobox.com>
7785
7786         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7787         fields to DBusObjectVTable and DBusObjectInfo
7788
7789 2003-07-12  Havoc Pennington  <hp@pobox.com>
7790
7791         * dbus/dbus-object-registry.c: implement unit test,
7792         fix bugs discovered in process
7793
7794         * dbus/dbus-connection.c: remove handler_table and
7795         register_handler(), add DBusObjectRegistry usage
7796
7797         * dbus/dbus-objectid.c (dbus_object_id_is_null)
7798         (dbus_object_id_set_null): new functions
7799
7800 2003-07-08  Havoc Pennington  <hp@pobox.com>
7801
7802         * dbus/dbus-object.c: implement some of this
7803
7804         * dbus/dbus-object-registry.c
7805         (_dbus_object_registry_add_and_unlock): fill in the object_id out
7806         param
7807         (_dbus_object_registry_new): handle OOM
7808
7809 2003-07-08  Havoc Pennington  <hp@pobox.com>
7810
7811         * dbus/dbus-object.h: sketch out an API for registering objects
7812         with a connection, that allows us to use as little as 24 bytes
7813         per object and lets application code represent an object in 
7814         any conceivable way.
7815
7816         * dbus/dbus-object-registry.c: implement the hard bits of the
7817         DBusConnection aspect of object API. Not yet wired up.
7818         
7819 2003-07-06  Havoc Pennington  <hp@pobox.com>
7820
7821         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7822         (_dbus_marshal_object_id): new
7823         (_dbus_demarshal_object_id): new
7824         (_dbus_marshal_get_arg_end_pos): support object ID type, and
7825         consolidate identical switch cases. Don't conditionalize handling
7826         of DBUS_TYPE_UINT64, need to handle the type always.
7827         (_dbus_marshal_validate_arg): consolidate identical cases, and
7828         handle DBUS_TYPE_OBJECT_ID
7829
7830         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7831
7832         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7833
7834 2003-09-28  Havoc Pennington  <hp@pobox.com>
7835
7836         * real 0.13 release
7837
7838 2003-09-28  Havoc Pennington  <hp@pobox.com>
7839
7840         * doc/Makefile.am (dbus-specification.html): testing a funky hack
7841         to work with Debian db2html
7842
7843 2003-09-28  Havoc Pennington  <hp@pobox.com>
7844
7845         * configure.in: 0.13
7846
7847         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7848         stylesheet-images for benefit of Debian
7849         
7850         Change back to using filesystem-linked sockets for the system
7851         bus, so only root can create the default system bus address.
7852         
7853         * bus/system.conf.in: change to use
7854         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7855
7856         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7857         from here.
7858
7859         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7860         here, and AC_DEFINE DBUS_SYSTEM_PATH
7861
7862 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7863
7864         * doc/TODO:
7865         * doc/busconfig.dtd:
7866         Add busconfig DTD.
7867         
7868 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7869
7870         * doc/dbus-specification.sgml:
7871         Add activation reply values.
7872         
7873 2003-08-05  Havoc Pennington  <hp@redhat.com>
7874
7875         * configure.in: 0.12
7876
7877 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
7878
7879         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7880         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7881         (add_watch), (remove_watch), (create_source):
7882         Refcount fds, fixes some reentrancy issues.
7883         
7884 2003-07-30  Havoc Pennington  <hp@redhat.com>
7885
7886         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7887         bus address to be abstract if we have abstract sockets
7888
7889         * NEWS: update
7890
7891 2003-07-28  Havoc Pennington  <hp@redhat.com>
7892
7893         * bus/messagebus.in: fix to avoid processname/servicename 
7894         confusion, from Michael Kearey
7895         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7896         
7897 2003-07-23  Havoc Pennington  <hp@pobox.com>
7898
7899         * dbus/dbus-message.c (dbus_message_iter_get_named): 
7900         fix from Andy Hanton to remove broken "+1"
7901
7902 2003-07-16  Havoc Pennington  <hp@pobox.com>
7903
7904         * tools/dbus-launch.c (babysit): close stdout/stderr in the
7905         babysitter process, as suggested by Thomas Leonard, so 
7906         an "eval `dbus-launch --exit-with-session`" will actually 
7907         return
7908
7909 2003-07-16  Havoc Pennington  <hp@pobox.com>
7910
7911         * configure.in: print out EXPANDED_* variables in the summary at
7912         the end; clean up the code that computes EXPANDED_ variables and
7913         get the ones using exec_prefix right. Should make things work
7914         when you build without --prefix
7915
7916 2003-06-29  Havoc Pennington  <hp@pobox.com>
7917
7918         * mono/Test.cs (class Test): fire up a main loop and run it
7919
7920         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
7921         done once, the app has to do it
7922
7923 2003-06-26  Havoc Pennington  <hp@pobox.com>
7924
7925         * mono/Connection.cs: set up connection with the glib main loop
7926
7927 2003-07-01  Havoc Pennington  <hp@redhat.com>
7928
7929         * doc/dbus-specification.sgml: clarify the format of a type code,
7930         change suggested by Jim Blandy
7931
7932 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
7933
7934         * doc/Makefile.am:
7935         * tools/Makefile.am: Don't assume srcdir == builddir.
7936
7937         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
7938         the allocated block.
7939         (_dbus_memory_test): New function.
7940         * dbus/dbus-test.h: Add _dbus_memory_test ().
7941         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
7942
7943         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
7944         of %c%c%c%c.
7945         (dbus_message_new): Remove obsolete @todo.
7946
7947         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
7948         (_dbus_marshal_set_uint64): Fix comment.
7949
7950         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
7951         hardcode FIELD_REPLY_SERIAL.
7952
7953         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
7954         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
7955
7956         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
7957         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
7958
7959 2003-06-24  Havoc Pennington  <hp@pobox.com>
7960
7961         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
7962
7963 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
7964
7965         * configure.in:
7966         * gcj/.cvsignore:
7967         * gcj/Hello.java:
7968         * gcj/Makefile.am:
7969         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
7970         * gcj/org/.cvsignore:
7971         * gcj/org/Makefile.am:
7972         * gcj/org/freedesktop/.cvsignore:
7973         * gcj/org/freedesktop/Makefile.am:
7974         * gcj/org/freedesktop/dbus/.cvsignore:
7975         * gcj/org/freedesktop/dbus/Makefile.am:
7976         * gcj/org/freedesktop/dbus/Message.java: (Message),
7977         (Message.Message):
7978         * gcj/org/freedesktop/dbus/natMessage.cc:
7979         Fix the build system.
7980
7981 2003-06-22  Havoc Pennington  <hp@pobox.com>
7982
7983         * mono/Connection.cs: add more bindings
7984
7985         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
7986         more than once.
7987
7988 2003-06-22  Havoc Pennington  <hp@pobox.com>
7989
7990         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
7991         Start wrapping more stuff.
7992
7993 2003-06-22  Havoc Pennington  <hp@pobox.com>
7994
7995         * mono/Message.cs: implement Message.Wrap() that ensures we only
7996         have a single C# wrapper per DBusMessage, assuming it works which
7997         it probably doesn't.
7998
7999         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8000         (dbus_message_free_data_slot): new
8001         (dbus_message_set_data): new
8002         (dbus_message_get_data): new
8003
8004 2003-06-22  Havoc Pennington  <hp@pobox.com>
8005
8006         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8007         (_dbus_data_slot_allocator_alloc): rework these to keep a
8008         reference count on each slot and automatically manage a global
8009         slot ID variable passed in by address
8010
8011         * bus/bus.c: convert to new dataslot API
8012
8013         * dbus/dbus-bus.c: convert to new dataslot API
8014
8015         * dbus/dbus-connection.c: convert to new dataslot API
8016
8017         * dbus/dbus-server.c: convert to new dataslot API
8018
8019         * glib/dbus-gmain.c: ditto
8020
8021         * bus/test.c: ditto
8022
8023         * bus/connection.c: ditto
8024
8025 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8026
8027         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8028         after the gcj checks so that the correct configuration tags
8029         will be added to libtool.
8030
8031         * dbus-glib-1.pc.in: No need to specify any includes since
8032         dbus-1.pc.in has those.
8033
8034 2003-06-22  Havoc Pennington  <hp@pobox.com>
8035
8036         * mono/*, gcj/*, configure.in, Makefile.am:
8037         Check in makefiles and subdirs for mono and gcj bindings.
8038         Neither binding actually exists, just trying to get through
8039         all the build and other boring bits.
8040
8041 2003-06-21  Philip Blundell  <philb@gnu.org>
8042
8043         * tools/dbus-monitor.1: Updated.
8044
8045         * tools/dbus-send.1: Likewise.
8046
8047 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8048
8049         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8050         for hangup and error after checking read so we won't discard
8051         pending data if both hangup and read are set.
8052
8053 2003-06-19  Philip Blundell  <philb@gnu.org>
8054
8055         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8056
8057         * tools/dbus-send.c: Accept both --system and --session.
8058
8059         * tools/dbus-monitor.c: Same here.
8060
8061 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8062
8063         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8064         from C++ (Patch by Miloslav Trmac).
8065
8066 2003-06-15  Joe Shaw  <joe@assbarn.com>
8067
8068         * configure.in: Check for socklen_t.
8069
8070         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8071
8072         * test/test-segfault.c: Add #include <sys/time.h>
8073
8074         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8075         dbus-launch needs it.
8076
8077 2003-06-09  Havoc Pennington  <hp@redhat.com>
8078
8079         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8080         SUN_LEN, it breaks abstract socket usage
8081
8082         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8083         starts of lines.
8084
8085 2003-06-04  Havoc Pennington  <hp@pobox.com>
8086
8087         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8088         using unix:abstract=/foo, and when listening in a tmpdir
8089         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8090
8091         * dbus/dbus-transport.c (_dbus_transport_open): support
8092         unix:abstract=/foo
8093
8094         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8095         support abstract sockets
8096
8097         * dbus/dbus-transport-unix.c
8098         (_dbus_transport_new_for_domain_socket): support abstract sockets
8099
8100         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8101         toggle as an argument, implement abstract namespace support
8102         (_dbus_listen_unix_socket): ditto
8103
8104         * configure.in: add --enable-abstract-sockets and implement
8105         a configure check for autodetection of the right value.
8106
8107 2003-06-01  Havoc Pennington  <hp@pobox.com>
8108
8109         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8110         in /tmp (though on Linux this will end up being useless,
8111         when we add abstract namespace support)
8112
8113         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8114         subst'ing it
8115
8116 2003-05-28  Colin Walters  <walters@verbum.org>
8117
8118         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8119
8120 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8121
8122         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8123
8124 2003-05-17  Colin Walters  <walters@gnu.org>
8125
8126         * tools/dbus-send.c: Don't exit with an error code if --help was
8127         passed.  Default to using the session bus instead of the system
8128         one.
8129
8130         * tools/dbus-launch.c: Ditto.
8131
8132         * tools/dbus-monitor.c: Ditto.
8133
8134         * tools/dbus-send.1: Update with new arguments.
8135
8136         * tools/dbus-launch.c: Emit code to export variables.  New
8137         arguments -s and -c to specify shell syntax, and a bit of code to
8138         autodetect syntax.  Also, allow specifying a program to run.
8139
8140         * tools/dbus-launch.1: Update with new arguments.
8141
8142         * tools/dbus-send.1: Ditto.
8143
8144         * tools/dbus-monitor.1: Ditto.
8145
8146 2003-05-17  Havoc Pennington  <hp@pobox.com>
8147
8148         * bus/config-parser.c (merge_included): merge in policies from
8149         child configuration file.
8150
8151         * bus/policy.c (bus_policy_merge): function to merge two policies
8152         together
8153
8154 2003-05-16  Havoc Pennington  <hp@redhat.com>
8155
8156         * dbus/dbus-connection.c: disable verbose lock spew
8157
8158         * tools/dbus-send.c: add --print-reply command line option
8159
8160         * tools/dbus-print-message.h (print_message): new util function
8161         shared by dbus-send and dbus-monitor
8162
8163         * tools/dbus-monitor.c (handler_func): exit on disconnect
8164
8165         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8166         disconnected, don't try to use the read_watch
8167
8168         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8169         so we can find this bug more easily
8170
8171 2003-05-16  Havoc Pennington  <hp@redhat.com>
8172
8173         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8174         NULL as DBusHashTable is annoyingly likely to do.
8175
8176 2003-05-16  Colin Walters  <walters@verbum.org>
8177
8178         * tools/dbus-monitor.c: Add --session argument and usage()
8179         function.
8180
8181         * tools/dbus-monitor.1: Update with new --session arg.
8182
8183         * bus/Makefile.am (install-data-hook): Create
8184         $(libdir)/dbus-1.0/services so that the session bus is happy.
8185
8186 2003-05-15  Havoc Pennington  <hp@redhat.com>
8187
8188         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8189         on non-x86. ifdef's are evil.
8190
8191 2003-05-15  Havoc Pennington  <hp@redhat.com>
8192
8193         * configure.in: 0.11
8194
8195         * NEWS: update
8196
8197         * bus/Makefile.am (initddir): apparently we are supposed to put
8198         init scripts in /etc/rc.d/init.d not /etc/init.d
8199
8200         * bus/Makefile.am: remove the "you must --enable-tests to make
8201         check" as it broke distcheck
8202
8203         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8204
8205 2003-05-13  James Willcox  <jwillcox@gnome.org>
8206
8207         * configure.in:
8208         * bus/activation.c: (bus_activation_service_created),
8209         (bus_activation_activate_service):
8210         * bus/driver.c: (bus_driver_send_service_deleted),
8211         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8212         (bus_driver_send_service_acquired),
8213         (bus_driver_send_welcome_message),
8214         (bus_driver_handle_list_services):
8215         * bus/session.conf.in:
8216         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8217         (dbus_bus_service_exists), (dbus_bus_activate_service):
8218         * dbus/dbus-bus.h:
8219
8220         Add some convenience API which lets you activate a service, and did a
8221         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8222         and dbus_message_get_args()
8223
8224 2003-05-11  Havoc Pennington  <hp@pobox.com>
8225
8226         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8227         calling _dbus_marshal_validate_arg() for every byte in a byte
8228         array, etc.
8229
8230         * dbus/dbus-message-handler.c: use atomic reference counting to
8231         reduce number of locks slightly; the global lock in here sucks
8232
8233         * dbus/dbus-connection.c
8234         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8235         update_dispatch_status that can be called with lock held; then use
8236         in a couple places to reduce locking/unlocking
8237         (dbus_connection_send): hold the lock over the whole function
8238         instead of acquiring it twice.
8239
8240         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8241
8242         * bus/connection.c (bus_connections_setup_connection): fix access
8243         to already-freed memory.
8244
8245         * dbus/dbus-connection.c: keep a little cache of linked list
8246         nodes, to avoid using the global linked list alloc lock in the
8247         normal send-message case. Instead we just use the connection lock
8248         that we already have to take.
8249
8250         * dbus/dbus-list.c (_dbus_list_find_last): new function
8251
8252         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8253         change to use a struct for the atomic type; fix docs,
8254         they return value before increment, not after increment.
8255
8256         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8257         (_dbus_string_append_8_aligned): new functions to try to
8258         microoptimize this operation.
8259         (reallocate_for_length): break this out of set_length(), to
8260         improve profile info, and also so we can consider inlining the
8261         set_length() part.
8262
8263         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8264         strings with some preallocation, cuts down on our calls to realloc
8265         a fair bit. Though if we can get the "move entire string to empty
8266         string" optimization below to kick in here, it would be better.
8267
8268         * dbus/dbus-string.c (_dbus_string_move): just call
8269         _dbus_string_move_len
8270         (_dbus_string_move_len): add a special case for moving
8271         an entire string into an empty string; we can just
8272         swap the string data instead of doing any reallocs.
8273         (_dbus_string_init_preallocated): new function
8274
8275 2003-05-11  Havoc Pennington  <hp@pobox.com>
8276
8277         Write a "test-profile" that does echo client-server with threads;
8278         profile reveals lock contention, memcpy/realloc of buffers, and
8279         UTF-8 validation as hot spots. 20% of lock contention eliminated
8280         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8281         contention is global mempool locks for GList and DBusList.
8282
8283         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8284         x86 implementation
8285
8286         * dbus/dbus-connection.c (struct DBusConnection): use
8287         dbus_atomic_t for the reference count
8288
8289         * dbus/dbus-message.c (struct DBusMessage): declare
8290         dbus_atomic_t values as volatile
8291
8292         * configure.in: code to detect ability to use atomic integer
8293         operations in assembly, from GLib patch
8294
8295         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8296         time, tired of it being wrong in threads and forked processes
8297
8298         * glib/test-profile.c: a little program to bounce messages back
8299         and forth between threads and eat CPU
8300
8301         * dbus/dbus-connection.c: add debug spew macros for debugging
8302         thread locks; include config.h at top; fix deadlock in
8303         dbus_connection_flush()
8304
8305 2003-05-08  Havoc Pennington  <hp@pobox.com>
8306
8307         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8308         data from getting written, and there wasn't a good reason to
8309         use _exit really.
8310
8311         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8312         dbus_verbose lines in test coverage
8313         (main): add list of functions sorted by # of untested blocks
8314         to the coverage report
8315
8316         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8317
8318         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8319
8320         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8321         extend test coverage
8322
8323         * test/data/auth/cancel.auth-script: test canceling an
8324         authentication
8325
8326         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8327         aren't used. in CVS history if we end up needing them.
8328
8329 2003-05-04  Havoc Pennington  <hp@pobox.com>
8330
8331         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8332         unit test
8333
8334         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8335         function, which assumed length was in # of strings, not bytes
8336
8337         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8338         missing coverage
8339
8340         * dbus/dbus-connection.c
8341         (_dbus_connection_queue_received_message): disable function for
8342         now, we are only using it in test mode
8343
8344         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8345         remove a mistaken FIXME
8346
8347 2003-05-04  Havoc Pennington  <hp@pobox.com>
8348
8349         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8350         unlock mutex on successful return, patch from Anders Gustafsson
8351
8352 2003-05-04  Havoc Pennington  <hp@pobox.com>
8353
8354         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8355         Anders Gustafsson
8356
8357 2003-05-04  Havoc Pennington  <hp@pobox.com>
8358
8359         * tools/dbus-launch.c: implement
8360
8361         * bus/main.c (main), bus/bus.c (bus_context_new):
8362         implement --print-pid and --fork
8363
8364 2003-05-03  Havoc Pennington  <hp@redhat.com>
8365
8366         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8367         the address had no value, and add to test suite. Fix and
8368         regression test from Miloslav Trmac
8369
8370 2003-05-03  Havoc Pennington  <hp@pobox.com>
8371
8372         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8373         watch is invalid when handled
8374
8375         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8376         dbus-launch utility to launch the bus from a shell script.  Didn't
8377         actually implement dbus-launch yet, it's just a placeholder still.
8378
8379 2003-05-03  Havoc Pennington  <hp@pobox.com>
8380
8381         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8382         daemon; also documents daemon config file, so replaces
8383         doc/config-file.txt. Corrected some stuff from config-file.txt in
8384         the process of moving it.
8385
8386 2003-05-03  Havoc Pennington  <hp@pobox.com>
8387
8388         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8389         add some man pages
8390
8391 2003-05-03  Colin Walters  <walters@verbum.org>
8392
8393         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8394         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8395
8396         * Makefile.am: Update to use new .pc versioning scheme.
8397
8398 2003-05-02  Havoc Pennington  <hp@redhat.com>
8399
8400         * bus/system.conf.in: allow send/receive to/from message bus
8401         service
8402
8403 2003-04-30  Havoc Pennington  <hp@redhat.com>
8404
8405         * configure.in: print a note when building with unit tests and
8406         without assertions
8407
8408 2003-04-30  Havoc Pennington  <hp@redhat.com>
8409
8410         * Makefile.am: add a check-local that complains if you didn't
8411         configure with --enable-tests
8412
8413 2003-04-29  Havoc Pennington  <hp@redhat.com>
8414
8415         * glib/dbus-gmain.c: docs cleanups
8416
8417         * dbus/dbus-types.h: add docs on int64 types
8418
8419         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8420         public API docs section
8421
8422 2003-04-29  Havoc Pennington  <hp@redhat.com>
8423
8424         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8425         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8426         parallel install API version, not with the D-BUS package version.
8427
8428         * HACKING: move some of README over here
8429
8430         * README: updates, and document API/ABI policy
8431
8432         * configure.in: reindentation
8433
8434 2003-04-29  Havoc Pennington  <hp@redhat.com>
8435
8436         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8437         to use this library" to be sure people have the right
8438         expectations.
8439
8440 2003-04-28  Havoc Pennington  <hp@redhat.com>
8441
8442         * configure.in: add --enable-docs which by default is auto yes if
8443         doxygen and db2html found, no otherwise; but can be forced on/off
8444
8445         * doc/Makefile.am: conditionalize whether to build docs on
8446         --enable-docs
8447
8448 2003-04-28  Havoc Pennington  <hp@redhat.com>
8449
8450         * configure.in: 0.10
8451
8452         * NEWS: update
8453
8454         * bus/system.conf.in: add <includedir>system.d</includedir>
8455
8456         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8457         username was provided but not uid
8458
8459         * bus/config-parser.c (struct BusConfigParser): keep track of
8460         whether the parser is toplevel or was included; change some
8461         of the error handling if it's included.
8462
8463 2003-04-27  Havoc Pennington  <hp@pobox.com>
8464
8465         Unbreak my code...
8466
8467         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8468         report correct status if we finish processing authentication
8469         inside this function.
8470
8471         * bus/activation.c (try_send_activation_failure): use
8472         bus_transaction_send_error_reply
8473
8474         * bus/connection.c (bus_connection_get_groups): return an error
8475         explaining the problem
8476
8477         * bus/bus.c (bus_context_check_security_policy): implement
8478         restriction here that inactive connections can only send the
8479         hello message. Also, allow bus driver to send anything to
8480         any recipient.
8481
8482         * bus/connection.c (bus_connection_complete): create the
8483         BusClientPolicy here instead of on-demand.
8484         (bus_connection_get_policy): don't return an error
8485
8486         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8487         sender field in message being replied to
8488
8489         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8490         causing it to return FALSE always
8491
8492         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8493         we checked sender rather than destination
8494
8495 2003-04-25  Havoc Pennington  <hp@redhat.com>
8496
8497         test suite is slightly hosed at the moment, will fix soon
8498
8499         * bus/connection.c (bus_connections_expire_incomplete): fix to
8500         properly disable the timeout when required
8501         (bus_connection_set_name): check whether we can remove incomplete
8502         connections timeout after we complete each connection.
8503
8504         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8505         probably still broken.
8506
8507         * bus/services.c (bus_registry_acquire_service): implement max
8508         number of services owned, and honor allow/deny rules on which
8509         services a connection can own.
8510
8511         * bus/connection.c (bus_connection_get_policy): report errors here
8512
8513         * bus/activation.c: implement limit on number of pending
8514         activations
8515
8516 2003-04-25  Havoc Pennington  <hp@redhat.com>
8517
8518         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8519         where we used >= 0 instead of != DBUS_UID_UNSET.
8520
8521 2003-04-25  Havoc Pennington  <hp@redhat.com>
8522
8523         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8524         were toggled without add/remove, fix from Anders Gustafsson
8525
8526 2003-04-24  Havoc Pennington  <hp@redhat.com>
8527
8528         * test/data/valid-config-files/basic.conf: add <limit> tags to
8529         this test
8530
8531         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8532         <limit> tag in configuration file.
8533
8534 2003-04-24  Havoc Pennington  <hp@redhat.com>
8535
8536         * bus/dispatch.c: somehow missed some name_is
8537
8538         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8539         (_dbus_timeout_set_interval): new
8540
8541         * bus/connection.c (bus_connections_setup_connection): record time
8542         when each connection is first set up, and expire them after the
8543         auth timeout passes.
8544
8545 2003-04-24  Havoc Pennington  <hp@redhat.com>
8546
8547         * dbus/dbus-message.c (dbus_message_name_is): rename
8548         (dbus_message_service_is): rename
8549         (dbus_message_sender_is): rename
8550         (dbus_message_get_service): rename
8551
8552 2003-04-24  Havoc Pennington  <hp@redhat.com>
8553
8554         * configure.in: add --enable-checks
8555
8556         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8557
8558         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8559         to use thread locks.
8560         (_dbus_connection_handler_destroyed_locked): move some private
8561         functions into proper docs group
8562
8563         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8564         _dbus_return_val_if_fail
8565
8566         Throughout: use dbus_return_if_fail
8567
8568 2003-04-23  James Willcox  <jwillcox@gnome.org>
8569
8570         * glib/dbus-glib.h:
8571         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8572         (dbus_connection_setup_with_g_main),
8573         (dbus_server_setup_with_g_main):
8574         * glib/test-dbus-glib.c: (main):
8575         * glib/test-thread-client.c: (main):
8576         * glib/test-thread-server.c: (new_connection_callback), (main):
8577         * tools/dbus-monitor.c: (main):
8578
8579         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8580         and dbus_server_setup_with_g_main().
8581
8582 2003-04-20  Havoc Pennington  <hp@pobox.com>
8583
8584         * doc/dbus-specification.sgml: document the restrictions on
8585         message and service names
8586
8587 2003-04-22  Havoc Pennington  <hp@redhat.com>
8588
8589         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8590         support, and do some code cleanups to share more code and
8591         speed up array marshal/demarshal.
8592
8593         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8594
8595         * configure.in: generate dbus-arch-deps.h
8596
8597         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8598         64-bit typecodes
8599
8600 2003-04-22  Havoc Pennington  <hp@redhat.com>
8601
8602         * test/data/valid-messages/opposite-endian.message: fix test
8603         to use proper type for rply field
8604
8605         * test/data/invalid-messages: add tests for below validation
8606
8607         * dbus/dbus-message.c (decode_header_data): validate field types,
8608         and validate that named fields are valid names
8609         (decode_name_field): consider messages in the
8610         org.freedesktop.Local. namespace to be invalid.
8611
8612         * dbus/dbus-string.c (_dbus_string_validate_name): new
8613
8614 2003-04-19  Havoc Pennington  <hp@pobox.com>
8615
8616         * bus/driver.c (bus_driver_handle_hello): check limits and
8617         return an error if they are exceeded.
8618
8619         * bus/connection.c: maintain separate lists of active and inactive
8620         connections, and a count of each. Maintain count of completed
8621         connections per user. Implement code to check connection limits.
8622
8623         * dbus/dbus-list.c (_dbus_list_unlink): export
8624
8625         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8626         number of bytes in the message queue for a connection
8627
8628 2003-04-18  Havoc Pennington  <hp@pobox.com>
8629
8630         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8631
8632         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8633         memleaks
8634
8635         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8636         on realloc be sure to update the pointer in the keyring
8637
8638         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8639         offset to avoid writing to unallocated memory
8640
8641         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8642         try the next mechanism, so we properly handle OOM
8643
8644         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8645         on OOM.
8646         (_dbus_keyring_new): fix OOM bug
8647         (_dbus_keyring_new_homedir): always set error; impose a maximum
8648         number of keys we'll load from the file, mostly to speed up the
8649         test suite and make its OOM checks more useful, but also for
8650         general sanity.
8651
8652         * dbus/dbus-auth.c (process_error_server): reject authentication
8653         if we get an error from the client
8654         (process_cancel): on cancel, send REJECTED, per the spec
8655         (process_error_client): send CANCEL if we get an error from the
8656         server.
8657
8658 2003-04-18  Havoc Pennington  <hp@pobox.com>
8659
8660         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8661         debug spew
8662
8663         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8664         handling problem
8665
8666         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8667         about DBUS_TEST_HOMEDIR once
8668
8669         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8670         the environment
8671
8672         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8673         config file so we test the right thing
8674
8675         Throughout: assorted docs improvements
8676
8677 2003-04-18  Havoc Pennington  <hp@pobox.com>
8678
8679         * glib/dbus-gmain.c: adapt to watch changes
8680
8681         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8682
8683         * dbus/dbus-server.h: remove dbus_server_handle_watch
8684
8685         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8686
8687         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8688         like DBusTimeout, so we don't need dbus_connection_handle_watch
8689         etc.
8690
8691 2003-04-17  Havoc Pennington  <hp@redhat.com>
8692
8693         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8694         database usage so it all goes via the DBusUserDatabase cache.
8695
8696 2003-04-17  Havoc Pennington  <hp@redhat.com>
8697
8698         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8699         there was an OOM watch we skipped, we always return TRUE so we
8700         iterate again to have a look at it again. Fixes test suite hang.
8701         Code rearrangement also lets us lose some memset and only iterate
8702         over callbacks once.
8703
8704         * bus/driver.c (bus_driver_handle_message): sense of test for
8705         reply was backward
8706
8707 2003-04-16  Havoc Pennington  <hp@pobox.com>
8708
8709         * doc/dbus-specification.sgml: make spec say serials are unsigned
8710
8711         * dbus/dbus-message.h: change message serials to unsigned
8712
8713         * dbus/dbus-connection.c: adapt to message serials being unsigned
8714
8715 2003-04-15  Havoc Pennington  <hp@pobox.com>
8716
8717         * bus/bus.c: create and keep around a shared DBusUserDatabase
8718         object.
8719
8720         * bus/connection.c (bus_connection_get_groups): don't cache
8721         groups for user in the connection object, since user database
8722         object now does that.
8723
8724 2003-04-16  Havoc Pennington  <hp@redhat.com>
8725
8726         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8727         list of size counters
8728         (_dbus_message_loader_putback_message_link): put back a popped link
8729
8730         * dbus/dbus-connection.c
8731         (dbus_connection_set_max_live_messages_size): rename
8732         max_received_size
8733         (dbus_connection_get_outgoing_size): get size of outgoing
8734         queue
8735         (_dbus_connection_set_connection_counter): remove this cruft
8736
8737 2003-04-14  Havoc Pennington  <hp@redhat.com>
8738
8739         * dbus/dbus-userdb.c: user database abstraction, mostly to get
8740         caching, but at some point we might want to be able to use a
8741         different database.
8742
8743         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8744         SHA1 conf file to test the sha1 auth mechanism, since the regular
8745         test always uses EXTERNAL when available.
8746
8747         * configure.in,
8748         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8749         add conf file that requires use of sha1 auth
8750
8751 2003-04-13  Havoc Pennington  <hp@pobox.com>
8752
8753         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8754         from Philip Blundell to send messages and monitor them.
8755
8756 2003-04-13  Havoc Pennington  <hp@pobox.com>
8757
8758         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8759         callbacks
8760
8761         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8762         users
8763
8764         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8765         fix to only recover unused bytes if we're already authenticated
8766         (_dbus_transport_get_is_authenticated): fix to still mark us
8767         authenticated if there are unused bytes.
8768
8769         * bus/dispatch.c: implement security policy checking
8770
8771         * bus/connection.c (bus_transaction_send_from_driver): new
8772
8773         * bus/bus.c (bus_context_check_security_policy): new
8774
8775         * bus/dispatch.c (send_service_nonexistent_error): delete this,
8776         now we just set the DBusError and it gets converted to an error
8777         reply.
8778
8779         * bus/connection.c (allow_user_function): enable code using actual
8780         data from the config file
8781
8782         * bus/policy.c (list_allows_user): handle wildcard rules for
8783         user/group connection perms
8784
8785 2003-04-13  Havoc Pennington  <hp@pobox.com>
8786
8787         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8788
8789         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8790
8791         * bus/policy.c (bus_policy_append_mandatory_rule)
8792         (bus_policy_append_default_rule, bus_policy_append_user_rule)
8793         (bus_policy_append_group_rule): new functions
8794
8795 2003-04-12  Havoc Pennington  <hp@pobox.com>
8796
8797         * bus/config-parser.c (bus_config_parser_new): fix a memleak
8798
8799         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8800         the pid/gid/uid, just for paranoia.
8801
8802         * test/break-loader.c (randomly_do_n_things): find a byte
8803         containing a type code, and randomly change it to a different
8804         type code.
8805
8806 2003-04-12  Havoc Pennington  <hp@pobox.com>
8807
8808         * bus/policy.h: change BusPolicy to be the thing from the config
8809         file, and rename old BusPolicy to BusClientPolicy
8810
8811         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8812         match change in how policy works
8813
8814         * dbus/dbus-internals.h: mark assert_not_reached as
8815         __attribute((noreturn))__
8816
8817 2003-04-11  Havoc Pennington  <hp@redhat.com>
8818
8819         * doc/dbus-specification.sgml: fix a spot with the wrong name for
8820         the broadcast service. Use boolean return for ServiceExists.
8821
8822 2003-04-11  Havoc Pennington  <hp@redhat.com>
8823
8824         * configure.in: add another directory to look for qt in.
8825
8826 2003-04-11  Havoc Pennington  <hp@redhat.com>
8827
8828         * AUTHORS: add Colin Walters
8829
8830 2003-04-11  Havoc Pennington  <hp@redhat.com>
8831
8832         * NEWS: update
8833
8834         * configure.in: 0.9
8835
8836 2003-04-11  Havoc Pennington  <hp@redhat.com>
8837
8838         * bus/messagebus.in: remove pid file when stopping the
8839         message bus, since the bus won't have privileges to remove it
8840         itself.
8841
8842 2003-04-11  Havoc Pennington  <hp@redhat.com>
8843
8844         * bus/bus.c (bus_context_new): move credentials change after
8845         creating pidfile
8846
8847 2003-04-11  Havoc Pennington  <hp@pobox.com>
8848
8849         * test/decode-gcov.c: add "below average functions" to the
8850         coverage report, and change how some of the code works.
8851
8852         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8853         not in the coverage stats.
8854
8855         * test/test-service.c (main): use _dbus_verbose not fprintf in a
8856         couple places so running the test suite doesn't result in megaspam.
8857
8858 2003-04-11  Havoc Pennington  <hp@pobox.com>
8859
8860         * bus/dispatch.c (check_existent_service_activation): accept a no
8861         memory error in a place we didn't before
8862
8863         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8864         in case the first one failed," since the test suite is less
8865         broken now.
8866
8867 2003-04-10  Havoc Pennington  <hp@pobox.com>
8868
8869         * bus/dispatch.c (check_segfault_service_activation): add test
8870         for launching an executable that just crashes.
8871
8872         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8873         don't leave a million cores. We'll see how portable this is.
8874
8875 2003-04-10  Havoc Pennington  <hp@pobox.com>
8876
8877         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8878         the possible parent failures before we fork, so that we don't
8879         fail to create a babysitter after creating the child.
8880
8881         * bus/activation.c (bus_activation_activate_service): kill child
8882         if we don't successfully complete the activation.
8883
8884 2003-04-10  Havoc Pennington  <hp@redhat.com>
8885
8886         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8887         the connection if it's disconnected
8888
8889         * bus/activation.c (bus_activation_service_created): use new
8890         transaction features to roll back removal of pending activation if
8891         we don't successfully create the service after all. Don't remove
8892         pending activation if the function fails.
8893
8894         * dbus/dbus-list.c (_dbus_list_insert_before_link)
8895         (_dbus_list_insert_after_link): new code to facilitate
8896         services.c fixes
8897
8898         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8899         new functionality, so we can preallocate the ability to insert
8900         into a hash table.
8901
8902         * bus/connection.c (bus_transaction_add_cancel_hook): new function
8903         allowing us to put custom hooks in a transaction to be used for
8904         cancelling said transaction
8905
8906         * doc/dbus-specification.sgml: add some discussion of secondary
8907         service owners, and disallow zero-length service names
8908
8909         * bus/services.c (bus_registry_acquire_service): new function,
8910         splits out part of bus_driver_handle_acquire_service() and fixes
8911         a bug where we didn't remove the service doing the acquiring
8912         from the secondary queue if we failed to remove the current owner
8913         from the front of the queue.
8914
8915 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8916
8917         * doc/dbus-specification.sgml:
8918         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
8919
8920 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8921
8922         * bus/.cvsignore:
8923         * glib/.cvsignore:
8924         * test/.cvsignore:
8925         Added files to cvsignore
8926
8927         * dbus/dbus-message.h:
8928         * dbus/dbus-message.c: (dbus_message_iter_get_named):
8929         Make get_named() take two out argument and return a boolean.
8930         (dbus_message_iter_get_args_valist):
8931         Update usage of get_named().
8932         (dbus_message_iter_append_byte):
8933         Fix typo
8934         (dbus_message_iter_append_named)
8935         Fix typo
8936         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
8937         More tests.
8938
8939 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8940
8941         * dbus/dbus-marshal.[ch]:
8942         Add array_type_pos argument to _dbus_marshal_validate_arg.
8943         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
8944
8945         * dbus/dbus-message.[ch]:
8946         Multi-dimensional arrays have full type specification in the
8947         outermost array. Iter code re-arranged to handle this.
8948         Added some more iter tests.
8949
8950         * doc/dbus-specification.sgml:
8951         Add me to authors.
8952         Remove old FIXME.
8953         Update new array encoding description.
8954         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
8955
8956         * test/data/invalid-messages/array-with-mixed-types.message:
8957         * test/data/valid-messages/array-of-array-of-uint32.message:
8958         Change to the new array format.
8959
8960         * test/data/invalid-messages/too-short-dict.message:
8961         Fix bug in test.
8962
8963         * test/data/valid-messages/recursive-types.message:
8964         Fix up and extend test.
8965
8966 2003-04-10  Havoc Pennington  <hp@pobox.com>
8967
8968         * bus/dispatch.c: lots of fixes
8969
8970         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
8971         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
8972         that was crack, broke the test service.
8973
8974         * dbus/dbus-transport.c (_dbus_transport_open): fix error
8975         handling to avoid piling up errors if we get a failure on the
8976         first address.
8977
8978         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
8979         pid in assertion failures.
8980
8981         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
8982         to some fixed size of file descriptor array. Don't return TRUE
8983         anytime a timeout exists, that led to lots of busy loop silliness
8984         in the tests.
8985
8986 2003-04-09  Havoc Pennington  <hp@redhat.com>
8987
8988         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
8989         I'd checked this in earlier but hadn't.
8990
8991 2003-04-09  Havoc Pennington  <hp@redhat.com>
8992
8993         * bus/dispatch.c (bus_dispatch_test): get a bit further through
8994         the activation test (man this is getting old!)
8995
8996 2003-04-09  Havoc Pennington  <hp@redhat.com>
8997
8998         * test/test-utils.c: use dispatch status function to fix this up
8999
9000         * bus/connection.c (connection_watch_callback): don't dispatch
9001         from here
9002         (connection_timeout_callback): don't dispatch from here
9003         (bus_connections_setup_connection): set the dispatch status function
9004         (bus_connection_disconnected): unset it
9005
9006         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9007         used to add a connection to be dispatched
9008         (_dbus_loop_iterate): do the dispatching at the end of each
9009         iteration
9010
9011         * dbus/dbus-connection.c
9012         (dbus_connection_set_dispatch_status_function): new function
9013         allowing us to fix up main loop usage
9014         (_dbus_connection_last_unref): free all the various function
9015         user data
9016         (dbus_connection_dispatch): call the DispatchStatusFunction
9017         whenever this function returns
9018         (dbus_connection_handle_watch): call DispatchStatusFunction
9019         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9020         (reply_handler_timeout): call DispatchStatusFunction
9021         (dbus_connection_flush): call DispatchStatusFunction
9022
9023 2003-04-09  Havoc Pennington  <hp@redhat.com>
9024
9025         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9026         a memory leak
9027
9028         * bus/dispatch.c (check_service_activated): fix bug in test
9029
9030         * dbus/dbus-mainloop.c (check_timeout): fix this up
9031
9032         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9033         verbose output so we can sort out output from different processes,
9034         e.g. in the activation case.
9035
9036 2003-04-08  Colin Walters  <walters@gnu.org>
9037
9038         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9039         the pid file.
9040         (bus_context_new): Set it.
9041         (bus_context_unref): Use it to delete the pid file.
9042
9043 2003-04-08  Havoc Pennington  <hp@redhat.com>
9044
9045         * test/data/invalid-messages/array-with-mixed-types.message:
9046         regression test that fails for the moment
9047
9048         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9049         tests for convenience
9050
9051         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9052         array of nil, it broke things.
9053
9054         * test/data/invalid-messages/array-of-nil.message: regression test
9055
9056         * test/data/valid-messages/array-of-array-of-uint32.message:
9057         happened to write this so added it to suite
9058
9059 2003-04-08  Havoc Pennington  <hp@redhat.com>
9060
9061         * bus/driver.c (bus_driver_handle_acquire_service): init
9062         retval/reply before checking name
9063
9064         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9065         recursion depth argument
9066
9067         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9068         in the public struct for future extension
9069
9070         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9071         typo
9072
9073         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9074         message
9075
9076         * doc/dbus-specification.sgml: fix typo
9077
9078 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9079
9080         Implemented recursive types, named types and new-style iters
9081
9082         * bus/driver.c:
9083         * glib/test-thread-client.c: (thread_func):
9084         * glib/test-thread-server.c: (handle_test_message):
9085         * test/test-service.c: (handle_echo):
9086         Update to new api
9087
9088         * dbus/Makefile.am:
9089         * dbus/dbus-dict.c:
9090         * dbus/dbus-dict.h:
9091         * dbus/dbus.h
9092         Remove DBusDict
9093
9094         * dbus/dbus-internals.c: (_dbus_type_to_string):
9095         Update for new types.
9096
9097         * dbus/dbus-marshal.[ch]:
9098         Implement recursive types and the new marshalling format.
9099         Remove hardcoded dict marshalling.
9100         Marshal named types.
9101
9102         * dbus/dbus-message-builder.c:
9103         Add BYTE_ARRAY.
9104         Remove references to old types
9105
9106         * dbus/dbus-message.[ch]:
9107         New non-refcounted iter API that supports recursive iters.
9108         Use iters for appending, including support for recursive
9109         iters.
9110         Add byte and named type support.
9111         Update everything to new marshalling formats.
9112         Add tests for new API.
9113
9114         * dbus/dbus-protocol.h:
9115         Remove old array types.
9116         Add types: BYTE, ARRAY, DICT, NAMED
9117
9118         * dbus/dbus-string.c:
9119         * dbus/dbus-sysdeps.c:
9120         Make parse_double locale safe.
9121
9122         * dbus/dbus-test-main.c:
9123         Call setlocale.
9124
9125         * dbus/dbus-test.c:
9126         Kill dict test
9127
9128         * doc/dbus-specification.sgml:
9129         Update spec
9130
9131         * test/data/incomplete-messages/missing-body.message:
9132         * test/data/invalid-messages/bad-boolean.message:
9133         * test/data/invalid-messages/bad-boolean-array.message:
9134         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9135         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9136         * test/data/invalid-messages/too-short-dict.message:
9137         * test/data/valid-messages/dict-simple.message:
9138         * test/data/valid-messages/dict.message:
9139         * test/data/valid-messages/emptiness.message:
9140         * test/data/valid-messages/lots-of-arguments.message:
9141         * test/data/valid-messages/no-padding.message:
9142         * test/data/valid-messages/recursive-types.message:
9143         Add missing NAME fields
9144         Fix up dicts & arrays
9145
9146         * test/data/invalid-messages/dict-with-nil-value.message:
9147         Removed, this is not invalid anymore.
9148
9149         * test/data/valid-messages/recursive-types.message:
9150         Add new test for deeply recursive types.
9151
9152 2003-04-07  Havoc Pennington  <hp@pobox.com>
9153
9154         * bus/driver.c (bus_driver_handle_acquire_service): return an
9155         error if you try to acquire a service that starts with ':'
9156
9157 2003-04-07  Havoc Pennington  <hp@redhat.com>
9158
9159         * doc/dbus-specification.sgml: require that base service names
9160         start with ':' and that the base service is created/deleted
9161         as first and last things a connection does on the bus
9162
9163         * bus/dispatch.c (check_existent_service_activation): lots more
9164         work on the activation test; it doesn't fully pass yet...
9165
9166         * test/test-service.c (main): fix so we don't memleak the
9167         connection to the message bus
9168         (filter_func): accept a message asking us to exit
9169
9170 2003-04-06  Havoc Pennington  <hp@pobox.com>
9171
9172         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9173         from Colin Walters
9174
9175         * configure.in: fixes to Qt detection from Colin Walters
9176
9177         * doc/Makefile.am: Only remove generated docbook dirs if they
9178         exist, from Colin Walters
9179
9180         * dbus/dbus-bus.c: change how we set well-known connections to
9181         NULL, so that it works if a single connection is stored in
9182         two well-known array slots.
9183
9184         * test/Makefile.am: remove a lot of stuff that isn't immediately
9185         useful, it's in CVS history if we want it.
9186
9187         * test/test-service.c: use dbus-mainloop instead of that
9188         watch.[hc] crack
9189
9190 2003-04-06  Havoc Pennington  <hp@pobox.com>
9191
9192         * dbus/Makefile.am: split lists of sources into stuff that goes in
9193         the library, util functions that go in the lib and are also used
9194         elsewhere, and util functions that are used in tests/daemon but
9195         don't go in the lib.
9196
9197         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9198         here so it can be used in test binaries also
9199
9200 2003-04-06  Havoc Pennington  <hp@pobox.com>
9201
9202         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9203         here in the parent process, so we can return an error if it
9204         fails. Also, move some of the code into the child so the parent
9205         is less hosed if we fail midway through.
9206
9207         * bus/bus.c (bus_context_new): move pidfile detection further up
9208         in the function, before we start overwriting sockets and such.
9209
9210         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9211
9212         * configure.in: add --with-system-pid-file and --with-system-socket
9213
9214 2003-04-06  Colin Walters  <walters@verbum.org>
9215
9216         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9217
9218         * bus/system.conf.in: Declare a pidfile.
9219
9220         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9221         create one (if appropriate).
9222
9223         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9224         (struct BusConfigParser) [pidfile]: New.
9225         (element_type_to_name, merge_included, start_busconfig_child)
9226         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9227         (bus_config_parser_unref): Free it.
9228         (bus_config_parser_get_pidfile): New function.
9229
9230         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9231
9232         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9233
9234         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9235
9236         * dbus/dbus-sysdeps.h: Prototype it.
9237
9238 2003-04-06  Havoc Pennington  <hp@pobox.com>
9239
9240         * bus/bus.c (bus_context_new): print the address in here, rather
9241         than in main(), because we need to do it before forking the daemon
9242
9243         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9244         on the service nonexistent error
9245
9246         * bus/driver.c (bus_driver_handle_acquire_service): set the
9247         sender on the AcquireService reply
9248
9249         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9250         server also listen on a UNIX socket so services can connect to it.
9251
9252 2003-04-06  Havoc Pennington  <hp@pobox.com>
9253
9254         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9255         so it detects deadlocks and also we actually init threads when
9256         debugging.
9257
9258 2003-04-06  Havoc Pennington  <hp@pobox.com>
9259
9260         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9261         save the domain socket name, and unlink it when we disconnect the
9262         server. Means that at least when we exit normally, we won't leave
9263         a bunch of junk in /tmp
9264
9265         * dbus/dbus-transport-unix.c
9266         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9267         memory management). (I was making a real change here but then
9268         didn't)
9269
9270 2003-04-06  Havoc Pennington  <hp@pobox.com>
9271
9272         * bus/bus.c (bus_context_new): fix wrong handling of
9273         server_data_slot_unref() in the error case.
9274
9275         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9276         "(condition) != 0" to _dbus_real_assert so that
9277         "_dbus_assert (pointer)" doesn't cause a warning
9278
9279         * bus/main.c (main): accept --print-address option to print out
9280         the message bus address
9281
9282         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9283
9284         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9285         "tmpdir" option to unix: address on client side
9286
9287         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9288         to unix: address
9289
9290         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9291         we can use to create sockets in the test suite.
9292
9293         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9294         cleanly. To be used for testing.
9295
9296         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9297
9298         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9299
9300         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9301         handle trying to call this when there's no servers active
9302
9303 2003-04-05  Havoc Pennington  <hp@pobox.com>
9304
9305         * NEWS: update
9306
9307         * configure.in: 0.8
9308
9309 2003-04-05  Havoc Pennington  <hp@pobox.com>
9310
9311         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9312         crash on startup. Need to get "try starting the daemon"
9313         in the test suite I guess. ;-)
9314
9315         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9316         tracked the number of open connections; it's better done in
9317         application-specific code as you want it to span all servers etc.
9318
9319 2003-04-05  Havoc Pennington  <hp@pobox.com>
9320
9321         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9322         patch from Colin Walters
9323
9324 2003-04-05  Havoc Pennington  <hp@pobox.com>
9325
9326         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9327         reality; in fact multiple mechanisms are allowed.
9328
9329         * dbus/dbus-internals.c (_dbus_real_assert)
9330         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9331         _dbus_assert_not_reached() into functions, so that they don't show
9332         up in basic block counts for test coverage, and don't use up as
9333         much disk space. Does mean slower execution speed though, so
9334         assumes --disable-asserts is the normal production case.
9335
9336 2003-04-05  Havoc Pennington  <hp@pobox.com>
9337
9338         * test/Makefile.am (dist-hook): also dist *.in files
9339
9340         * NEWS: update
9341
9342         * configure.in: 0.7
9343
9344 2003-04-05  Havoc Pennington  <hp@pobox.com>
9345
9346         * dbus/dbus-string.c: docs warning
9347
9348         * dbus/dbus-spawn.c: missing docs
9349
9350         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9351
9352 2003-04-05  Havoc Pennington  <hp@pobox.com>
9353
9354         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9355         magic from GLib
9356
9357         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9358         to -1 once we've reaped the babysitter
9359         (_dbus_babysitter_handle_watch): do as much work as we can, not
9360         just one go of it
9361
9362         * bus/activation.c: add code using DBusBabysitter so that we
9363         handle it when a service fails to start up properly.
9364         (bus_activation_service_created): don't remove the activation
9365         entries as we go, just let them get removed when we free the pending
9366         activation. Unref reply messages after sending them.
9367
9368 2003-04-05  Havoc Pennington  <hp@pobox.com>
9369
9370         * test/decode-gcov.c (main): print per-directory stats in the report
9371
9372         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9373
9374 2003-04-05  Havoc Pennington  <hp@pobox.com>
9375
9376         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9377
9378         * test/decode-gcov.c: hack up a little program to suck data
9379         out of gcov files. Yes this is sort of silly.
9380
9381         * configure.in: define something in config.h and do an
9382         AM_CONDITIONAL when gcov is enabled
9383
9384 2003-04-04  Havoc Pennington  <hp@redhat.com>
9385
9386         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9387         return a "babysitter" object that is used to monitor the status of
9388         the spawned process and reap it when required.
9389
9390         * test/test-segfault.c, test/test-exit.c,
9391         test/test-sleep-forever.c: binaries that do various lame things,
9392         used in the test suite.
9393
9394         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9395
9396 2003-04-03  Havoc Pennington  <hp@pobox.com>
9397
9398         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9399         in preparation for modifying it, dbus-sysdeps is getting
9400         a bit unmanageable.
9401
9402 2003-04-03  Havoc Pennington  <hp@redhat.com>
9403
9404         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9405         have multiple ones
9406
9407         * bus/*.[hc]: adapt to mainloop change
9408
9409 2003-04-03  Havoc Pennington  <hp@redhat.com>
9410
9411         * bus/activation.c (load_directory): fix up memleaks
9412         (bus_activation_entry_free): free the entry
9413
9414         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9415         we get one from the message bus; fix memleaks.
9416
9417         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9418
9419 2003-04-03  Havoc Pennington  <hp@pobox.com>
9420
9421         * bus/config-parser.c (bus_config_parser_unref): free
9422         list of mechanisms, bug discovered by test suite enhancements
9423         (putting system.conf and session.conf into suite)
9424
9425         * test/Makefile.am, test/test-service.c: add placeholder for a
9426         test service that we'll activate as part of test suite. Doesn't
9427         do anything yet.
9428
9429         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9430         setting NULL value, and use system malloc not dbus_malloc()
9431         when we have unavoidable memleakage.
9432
9433         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9434         didn't work, and support DBUS_BUS_ACTIVATION.
9435
9436         * bus/activation.c (child_setup): pass our well-known bus type to
9437         the child
9438
9439         * bus/config-parser.c: support <type> to specify well-known type
9440
9441         * doc/dbus-specification.sgml: document the env variables to
9442         locate well-known buses and find service activator
9443
9444 2003-04-02  Havoc Pennington  <hp@redhat.com>
9445
9446         * test/Makefile.am (all-local): add a rule to copy tests to
9447         builddir, so we can have generated tests. Use this to remove the
9448         silly hack for testing system.conf and session.conf. Will use this
9449         shortly to generate .service files pointing to test binaries.
9450
9451 2003-04-02  Havoc Pennington  <hp@redhat.com>
9452
9453         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9454         current alloc and needed new length, not max of the doubled
9455         allocation and needed new length. Also, when building tests,
9456         don't do the double-allocation stuff, just realloc every time.
9457
9458 2003-04-02  Havoc Pennington  <hp@redhat.com>
9459
9460         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9461         in error messages
9462         (_dbus_string_get_dirname): new
9463         (_dbus_sysdeps_test): new
9464         (_dbus_directory_open): include dirnames in error messages
9465
9466         * bus/config-parser.c: interpret <include> and <includedir> and
9467         <servicedir> relative to config file location if the given
9468         filename is not absolute.
9469
9470         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9471
9472 2003-04-02  Havoc Pennington  <hp@redhat.com>
9473
9474         * bus/connection.c (bus_transaction_send_error_reply): set sender
9475         service for the error, and unref the reply on success
9476
9477         * bus/activation.c: convert to use BusTransaction so OOM can be
9478         handled correctly
9479         (bus_activation_service_created): set sender of the message
9480
9481 2003-04-01  Havoc Pennington  <hp@redhat.com>
9482
9483         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9484         <includedir> (at least mostly)
9485
9486         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9487         first, then the user ID
9488
9489 2003-04-01  Havoc Pennington  <hp@pobox.com>
9490
9491         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9492         function
9493
9494         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9495
9496         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9497
9498         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9499         socket 0777, and unlink any existing socket.
9500
9501         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9502         the configuration file so specifies; set up auth mechanism
9503         restrictions
9504
9505         * bus/config-parser.c (bus_config_parser_content): add support
9506         for <fork> option and fill in code for <auth>
9507
9508         * bus/system.conf.in: add <fork/> to default configuration,
9509         and limit auth mechanisms to EXTERNAL
9510
9511         * doc/config-file.txt (Elements): add <fork>
9512
9513         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9514         (_dbus_change_identity): new function
9515
9516 2003-03-31  Havoc Pennington  <hp@redhat.com>
9517
9518         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9519         (_dbus_listen_unix_socket): fix off-by-one error in null
9520         termination spotted by Nalin
9521
9522 2003-03-31  Havoc Pennington  <hp@redhat.com>
9523
9524         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9525         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9526         having a real home directory available.
9527
9528 2003-03-31  Havoc Pennington  <hp@redhat.com>
9529
9530         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9531
9532         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9533
9534         * configure.in: add support for specifying a style of init script
9535         to install
9536
9537 2003-03-31  Havoc Pennington  <hp@redhat.com>
9538
9539         Fix some annoying DBusString API and fix all affected code.
9540
9541         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9542         max_length argument
9543         (_dbus_string_get_data): change to return string instead of using
9544         an out param
9545         (_dbus_string_get_const_data): ditto
9546         (_dbus_string_get_data_len): ditto
9547         (_dbus_string_get_const_data_len): ditto
9548
9549 2003-03-31  Havoc Pennington  <hp@redhat.com>
9550
9551         * bus/main.c (main): fix up the command line arguments to be nicer
9552
9553 2003-03-31  Havoc Pennington  <hp@redhat.com>
9554
9555         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9556         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9557         final location that lands in the config file
9558
9559         * bus/config-loader-expat.c (bus_config_load): fix type of
9560         XML_Parser variable
9561
9562         * doc/TODO: remove TODO item for dbus_bus_get()
9563
9564         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9565
9566 2003-03-31  Havoc Pennington  <hp@pobox.com>
9567
9568         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9569         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9570         argument since they are always client side
9571
9572         * dbus/dbus-server.c (dbus_server_get_address): new function
9573
9574         * bus/main.c (main): take the configuration file as an argument.
9575
9576         * test/data/valid-config-files/debug-allow-all.conf: new file to
9577         use with dispatch.c tests for example
9578
9579         * bus/test-main.c (main): require test data dir
9580
9581         * bus/bus.c (bus_context_new): change this to take a
9582         configuration file name as argument
9583
9584         * doc/config-file.txt (Elements): add <servicedir>
9585
9586         * bus/system.conf, bus/session.conf: new files
9587
9588         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9589         well-known socket if none set
9590
9591         * configure.in: create system.conf and session.conf
9592
9593 2003-03-30  Havoc Pennington  <hp@pobox.com>
9594
9595         * bus/config-parser.c: hacking
9596
9597         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9598         to shut down, since it could cause weirdness with the DBusList
9599         lock
9600
9601         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9602         link-oriented stack routines
9603         (alloc_link): free the mempool if the first alloc from it fails
9604
9605         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9606
9607         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9608         from GLib
9609         (_dbus_string_skip_white): new
9610
9611         * doc/config-file.txt (Elements): add <includedir>
9612
9613 2003-03-28  Havoc Pennington  <hp@pobox.com>
9614
9615         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9616         (_dbus_string_copy_data): new functions
9617
9618 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9619
9620         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9621         * dbus/dbus-bus.h:
9622         Add dbus_bus_get.
9623
9624         * dbus/dbus-memory.c:
9625         Fix a doc comment.
9626
9627 2003-03-28  Havoc Pennington  <hp@pobox.com>
9628
9629         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9630         I think it may have just been superstition. Not sure.
9631
9632         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9633         failures that were not being handled.
9634
9635         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9636
9637         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9638         row that will fail on out-of-memory.
9639
9640         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9641         function for testing out-of-memory handling.
9642
9643         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9644         allocation functions, they do map exactly to the expat ones.
9645
9646 2003-03-27  Havoc Pennington  <hp@redhat.com>
9647
9648         * bus/config-loader-libxml.c (bus_config_load): add another error
9649         check
9650
9651 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9652
9653         * doc/TODO:
9654         Add note about automatic service activation.
9655
9656         * doc/dbus-specification.sgml:
9657         Rename the specification and clarify a few things.
9658
9659 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9660
9661         * Doxyfile.in:
9662         * dbus/dbus-address.c:
9663         * dbus/dbus-dict.c:
9664         * dbus/dbus-marshal.c:
9665         * dbus/dbus-server-debug-pipe.c:
9666         * dbus/dbus-transport-unix.c:
9667         Fix documentation warnings.
9668
9669 2003-03-26  Havoc Pennington  <hp@pobox.com>
9670
9671         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9672         after every test so it's quick and easy to see which leaked, and
9673         so we test multiple dbus_shutdown() calls
9674
9675         * configure.in: change configure.in XML stuff to also support
9676         expat
9677
9678         * config-loader-libxml.c: some hacking
9679
9680         * config-loader-expat.c: some hacking
9681
9682         * config-parser.c: some hacking, plus tests
9683
9684 2003-03-25  Havoc Pennington  <hp@redhat.com>
9685
9686         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9687
9688         * configure.in: add --with-xml option to specify XML library,
9689         right now only libxml is supported.
9690
9691         * bus/config-loader-libxml.c, config-parser.c: sync some minor
9692         nonworking code between home and work, still just stubs
9693
9694 2003-03-24  Havoc Pennington  <hp@redhat.com>
9695
9696         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9697         file
9698
9699         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9700         NULL argument for "message" if the error is a well-known one,
9701         fill in a generic message in this case.
9702
9703         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9704         favor of DBusError
9705
9706         * bus/test.c (bus_test_flush_bus): add
9707
9708         * bus/policy.c (bus_policy_test): test code stub
9709
9710 2003-03-24  Havoc Pennington  <hp@pobox.com>
9711
9712         * bus/connection.c (bus_connections_setup_connection): set up
9713         the "can this user connect" function, but it always returns
9714         TRUE until we have a config file parser so we can have a config
9715         file that allows connections.
9716
9717 2003-03-23  Havoc Pennington  <hp@pobox.com>
9718
9719         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9720         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9721         the mutex, so we can check for proper memory management
9722         and OOM handling.
9723
9724         * dbus/dbus-dataslot.c: remove the mutex from
9725         DBusDataSlotAllocator and lock it manually when using it,
9726         to simplify fitting it into the global slots framework.
9727
9728         * dbus/dbus-threads.c (init_static_locks): rework how we're
9729         handling global locks so they are easily shut down.
9730
9731         * bus/policy.c (bus_policy_append_rule): fix
9732
9733         * bus/test-main.c (main): check for memleaks
9734
9735         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9736         test suite check for memleaks
9737
9738         * dbus/dbus-memory.c: add support in test mode for tracking
9739         number of outstanding blocks
9740
9741 2003-03-23  Havoc Pennington  <hp@pobox.com>
9742
9743         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9744         policies code
9745
9746         * dbus/dbus-hash.h: add ULONG hash keys
9747
9748         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9749         (_dbus_get_group_id): new function
9750
9751 2003-03-20  Havoc Pennington  <hp@redhat.com>
9752
9753         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9754         new function
9755         (dbus_connection_get_unix_user): new function
9756
9757 2003-03-20  Havoc Pennington  <hp@pobox.com>
9758
9759         * bus/connection.c (bus_connection_send_oom_error): assert that
9760         message has a sender
9761         (connection_execute_transaction): ditto
9762         (bus_connection_preallocate_oom_error): fix to set the sender, and
9763         set recipient to the destination service, not the bus driver
9764
9765         * bus/policy.c: hacking
9766
9767         * dbus/dbus-message.c (dbus_message_service_is): new function
9768         (dbus_message_sender_is): new
9769
9770 2003-03-19  Havoc Pennington  <hp@redhat.com>
9771
9772         * bus/policy.c: start sketching code for policy restrictions on
9773         what connections can do.
9774
9775 2003-03-18  Havoc Pennington  <hp@redhat.com>
9776
9777         * doc/TODO: some notes on high-level todo items. Little nitpick
9778         stuff is all in @todo, so no need to add it here.
9779
9780         * doc/config-file.txt: some notes on how config file might look
9781
9782 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
9783
9784         * configure.in: 0.6
9785
9786         * NEWS: Update.
9787
9788 2003-03-17  Havoc Pennington  <hp@redhat.com>
9789
9790         * dbus/dbus-internals.h: add gcc attributes so that
9791         our printf-style functions warn on bad arguments to
9792         format
9793
9794         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9795         format bug
9796
9797         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9798         printf format bug
9799
9800 2003-03-17  Havoc Pennington  <hp@redhat.com>
9801
9802         * bus/test-main.c (main): make it print something as it runs
9803         so make check doesn't look stuck
9804
9805         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9806         from CVS, now obsolete
9807
9808 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9809
9810         * bus/dispatch.c: (bus_dispatch):
9811         Refetch the service name since it may have been reallocated
9812         when dbus_message_set_sender was called.
9813
9814         * dbus/dbus-sysdeps.c: (_dbus_accept):
9815         Add address and address length variables and use them to stop
9816         valgrind from complaining.
9817
9818 2003-03-17  Havoc Pennington  <hp@pobox.com>
9819
9820         All tests pass, no memleaks, no valgrind complaints.
9821
9822         * bus/test.c: refcount handler_slot
9823
9824         * bus/connection.c (bus_connections_new): refcount
9825         connection_data_slot
9826
9827         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9828         bytes so that auth scripts pass.
9829
9830         * bus/dispatch.c: init message_handler_slot so it gets allocated
9831         properly
9832
9833         * bus/dispatch.c (message_handler_slot_ref): fix memleak
9834
9835         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9836         dealloc server_pipe_hash when no longer used for benefit of
9837         leak checking
9838
9839         * dbus/dbus-auth.c (process_command): memleak fix
9840
9841         * bus/dispatch.c (check_hello_message): memleak fix
9842
9843 2003-03-16  Havoc Pennington  <hp@pobox.com>
9844
9845         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9846
9847 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9848
9849         * bus/activation.c (bus_activation_activate_service): Append
9850         the pending activation entry to the list of pending activations.
9851
9852 2003-03-16  Havoc Pennington  <hp@pobox.com>
9853
9854         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9855         connections
9856
9857         * dbus/dbus-address.c (create_entry): fix OOM handling when
9858         failing to alloc entry->method
9859
9860 2003-03-16  Havoc Pennington  <hp@pobox.com>
9861
9862         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9863         the watch
9864
9865         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9866         add some missing dbus_set_result
9867
9868         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9869         alloc the DBusMessageHandler
9870
9871         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9872         the transport here, since we call this from the finalizer; it
9873         resulted in a double-finalize.
9874
9875         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9876         where we tried to use transport->connection that was NULL,
9877         happened when transport was disconnected early on due to OOM
9878
9879         * bus/*.c: adapt to handle OOM for watches/timeouts
9880
9881         * dbus/dbus-transport-unix.c: port to handle OOM during
9882         watch handling
9883
9884         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9885         reference to unused bytes instead of a copy
9886
9887         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9888         out of memory
9889
9890         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9891         FALSE on OOM
9892
9893         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9894         of memory
9895
9896 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9897
9898         * doc/dbus-specification.sgml:
9899         Document reply message for ActivateService.
9900
9901 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9902
9903         * bus/activation.c: (bus_pending_activation_entry_free),
9904         (bus_pending_activation_free), (bus_activation_new),
9905         (bus_activation_unref), (bus_activation_service_created),
9906         (bus_activation_activate_service):
9907         * bus/activation.h:
9908         * bus/bus.c: (bus_context_new):
9909         * bus/desktop-file.c: (new_section):
9910         * bus/driver.c: (bus_driver_send_service_deleted),
9911         (bus_driver_handle_activate_service):
9912         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9913         * bus/services.h:
9914         * dbus/dbus-connection.c:
9915         (dbus_connection_send_with_reply_and_block):
9916         * dbus/dbus-message.c: (dbus_message_append_args_valist):
9917         * dbus/dbus-protocol.h:
9918         Make activation work better. Now pending activations will be queued
9919         and the daemon won't try to activate services that are already registered.
9920
9921 2003-03-16  Havoc Pennington  <hp@pobox.com>
9922
9923         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
9924         connection data
9925
9926         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
9927         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
9928
9929 2003-03-16  Havoc Pennington  <hp@pobox.com>
9930
9931         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
9932         this. always run the test suite before commit...
9933
9934         * bus/*: adapt to DBusConnection API changes
9935
9936         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
9937         requires renaming stuff to avoid dbus_connection_dispatch name
9938         conflict.
9939
9940         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
9941         function
9942
9943         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9944         separate from _dbus_message_loader_return_buffer()
9945
9946         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
9947         this, because it's now always broken to use; the number of
9948         messages in queue vs. the number still buffered by the message
9949         loader is undefined/meaningless. Should use
9950         dbus_connection_get_dispatch_state().
9951         (dbus_connection_dispatch): rename from
9952         dbus_connection_dispatch_message
9953
9954 2003-03-16  Havoc Pennington  <hp@pobox.com>
9955
9956         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
9957         implementation
9958
9959 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9960
9961         * dbus/dbus-connection.c:
9962         (dbus_connection_send_with_reply_and_block):
9963         Decrease connection->n_incoming when removing an entry
9964         from the list.
9965         * dbus/dbus-dict.c: (dbus_dict_entry_free),
9966         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9967         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9968         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
9969         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
9970         (dbus_dict_get_byte_array):
9971         Handle NULL arrays and strings. Also add support for byte arrays.
9972
9973         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
9974         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
9975         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
9976         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
9977         (_dbus_demarshal_dict), (demarshal_and_validate_len),
9978         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
9979         * dbus/dbus-marshal.h:
9980         Add support for marshalling and demarshalling empty arrays and strings.
9981
9982         * dbus/dbus-message.c: (dbus_message_append_args_valist),
9983         (dbus_message_append_string_array),
9984         (dbus_message_iter_get_boolean),
9985         (dbus_message_iter_get_boolean_array),
9986         (dbus_message_iter_get_int32_array),
9987         (dbus_message_iter_get_uint32_array),
9988         (dbus_message_iter_get_double_array),
9989         (dbus_message_iter_get_byte_array),
9990         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
9991         (check_message_handling):
9992         Add support for getting empty arrays and dicts.
9993
9994         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
9995         Don't do any validation at all for now, that's better than just checking
9996         for ASCII.
9997
9998         * test/data/valid-messages/emptiness.message:
9999         New test message with lots of empty arrays.
10000
10001 2003-03-16  Havoc Pennington  <hp@pobox.com>
10002
10003         * dbus/dbus-connection.c
10004         (_dbus_connection_queue_received_message_link): new function that
10005         can't fail due to OOM
10006
10007         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10008         new function pops a message together with a list link
10009         containing it.
10010
10011         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10012         message queuing functions to avoid needing to alloc memory
10013
10014 2003-03-16  Havoc Pennington  <hp@pobox.com>
10015
10016         Oops - test code was only testing failure of around 30 of the
10017         mallocs in the test path, but it turns out there are 500+
10018         mallocs. I believe this was due to misguided linking setup such
10019         that there was one copy of dbus_malloc etc. in the daemon and one
10020         in the shared lib, and only daemon mallocs were tested. In any
10021         case, the test case now tests all 500+ mallocs, and doesn't pass
10022         yet, though there are lots of fixes in this patch.
10023
10024         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10025         this so that it doesn't need to allocate memory, since it
10026         has no way of indicating failure due to OOM (and would be
10027         annoying if it did).
10028
10029         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10030
10031         * bus/Makefile.am: rearrange to create two self-contained
10032         libraries, to avoid having libraries with overlapping symbols.
10033         that was resulting in weirdness, e.g. I'm pretty sure there
10034         were two copies of global static variables.
10035
10036         * dbus/dbus-internals.c: move the malloc debug stuff to
10037         dbus-memory.c
10038
10039         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10040         empty.
10041
10042         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10043
10044         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10045         on failure.
10046
10047         * bus/dispatch.c (bus_dispatch_add_connection): free
10048         message_handler_slot when no longer using it, so
10049         memory leak checkers are happy for the test suite.
10050
10051         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10052
10053         * bus/bus.c (new_connection_callback): disconnect in here if
10054         bus_connections_setup_connection fails.
10055
10056         * bus/connection.c (bus_connections_unref): fix to free the
10057         connections
10058         (bus_connections_setup_connection): if this fails, don't
10059         disconnect the connection, just be sure there are no side
10060         effects.
10061
10062         * dbus/dbus-string.c (undo_alignment): unbreak this
10063
10064         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10065         leaking
10066         (_dbus_auth_new): fix the order in which we free strings
10067         on OOM failure
10068
10069         * bus/connection.c (bus_connection_disconnected): fix to
10070         not send ServiceDeleted multiple times in case of memory
10071         allocation failure
10072
10073         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10074         get the base service name
10075         (dbus_bus_register_client): don't return base service name,
10076         instead store it on the DBusConnection and have an accessor
10077         function for it.
10078         (dbus_bus_register_client): rename dbus_bus_register()
10079
10080         * bus/dispatch.c (check_hello_message): verify that other
10081         connections on the bus also got the correct results, not
10082         just the one sending hello
10083
10084 2003-03-15  Havoc Pennington  <hp@pobox.com>
10085
10086         Make it pass the Hello handling test including all OOM codepaths.
10087         Now to do other messages...
10088
10089         * bus/services.c (bus_service_remove_owner): fix crash when
10090         removing owner from an empty list of owners
10091         (bus_registry_ensure): don't leave service in the list of
10092         a connection's owned services if we fail to put the service
10093         in the hash table.
10094
10095         * bus/connection.c (bus_connection_preallocate_oom_error): set
10096         error flag on the OOM error.
10097
10098         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10099         handle _dbus_transport_set_connection failure
10100
10101         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10102         to create watches up front and simply enable/disable them as
10103         needed.
10104         (unix_connection_set): this can now fail on OOM
10105
10106         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10107         of enabling/disabling a watch or timeout.
10108
10109         * bus/loop.c (bus_loop_iterate): don't touch disabled
10110         watches/timeouts
10111
10112         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10113
10114 2003-03-15  Havoc Pennington  <hp@pobox.com>
10115
10116         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10117         write useful test code, after all that futzing around ;-)
10118
10119         Test does not yet pass because we can't handle OOM in
10120         _dbus_transport_messages_pending (basically,
10121         dbus_connection_preallocate_send() does not prealloc the write
10122         watch). To fix this, I think we need to add new stuff to
10123         set_watch_functions, namely a SetEnabled function so we can alloc
10124         the watch earlier, then enable it later.
10125
10126         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10127         dbus-memory.c to the convenience lib
10128
10129         * bus/test.c: rename some static functions to keep them clearly
10130         distinct from stuff in connection.c. Handle client disconnection.
10131
10132 2003-03-14  Havoc Pennington  <hp@pobox.com>
10133
10134         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10135         transport, tests more of the real codepath. Set up clients
10136         with bus_setup_debug_client.
10137
10138         * bus/test.c (bus_setup_debug_client): function to set up debug
10139         "clients" on the main loop
10140
10141         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10142         support
10143
10144         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10145         server type
10146
10147         * dbus/dbus-server-debug.c: support a debug server based on pipes
10148
10149         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10150         (_dbus_close): new function
10151
10152         * configure.in: check for socketpair
10153
10154 2003-03-14  Havoc Pennington  <hp@redhat.com>
10155
10156         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10157         cheesy hack
10158
10159         * dbus/dbus-transport-debug.c: rework this a good bit to be
10160         less complicated. hopefully still works.
10161
10162         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10163         manually
10164
10165         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10166         after running it
10167
10168         * dbus/dbus-message.c (dbus_message_copy): rename from
10169         dbus_message_new_from_message, fix it up to copy
10170         all the message fields, add test case
10171
10172         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10173         not quite passing yet
10174
10175 2003-03-14  Havoc Pennington  <hp@pobox.com>
10176
10177         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10178         until no work remains" in test code. (the large diff here
10179         is just code movement, no actual changes)
10180
10181         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10182         1, no point waiting around for test code.
10183         (_dbus_server_debug_accept_transport): unref the timeout
10184         after adding it (right?)
10185
10186         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10187
10188 2003-03-13  Havoc Pennington  <hp@redhat.com>
10189
10190         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10191         out of memory
10192
10193         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10194         of memory
10195
10196         * dbus/dbus-connection.h: Make AddWatchFunction and
10197         AddTimeoutFunction return a bool so they can fail on out-of-memory
10198
10199         * bus/bus.c (bus_context_new): set up timeout handlers
10200
10201         * bus/connection.c (bus_connections_setup_connection): set up
10202         timeout handlers
10203
10204         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10205         can fail
10206
10207         * bus/bus.c (bus_context_new): adapt to changes
10208
10209         * bus/connection.c: adapt to changes
10210
10211         * test/watch.c: adapt to DBusWatch changes
10212
10213         * bus/dispatch.c (bus_dispatch_test): started adding this but
10214         didn't finish
10215
10216 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10217
10218         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10219
10220 2003-03-13  Havoc Pennington  <hp@pobox.com>
10221
10222         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10223         set up a test framework as for the library
10224
10225 2003-03-12  Havoc Pennington  <hp@pobox.com>
10226
10227         Throughout: purge global variables, introduce BusActivation,
10228         BusConnections, BusRegistry, etc. objects instead.
10229
10230         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10231         message bus object
10232
10233         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10234         going to redo this a bit differently I think
10235
10236 2003-03-12  Havoc Pennington  <hp@redhat.com>
10237
10238         Mega-patch that gets the message bus daemon initially handling
10239         out-of-memory. Work still needed. Also lots of random
10240         moving stuff to DBusError instead of ResultCode.
10241
10242         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10243
10244         * dbus/dbus-connection.c
10245         (dbus_connection_send_with_reply_and_block): use DBusError
10246
10247         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10248         DBusResultCode
10249
10250         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10251         code here, as the only failure possible is OOM.
10252
10253         * bus/connection.c (bus_connection_disconnect):
10254         rename bus_connection_disconnected as it's a notification only
10255
10256         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10257         "name" on get_args failure, should be done by get_args;
10258         don't disconnect client for bad args, just return an error.
10259         (bus_driver_handle_service_exists): ditto
10260
10261         * bus/services.c (bus_services_list): NULL-terminate returned array
10262
10263         * bus/driver.c (bus_driver_send_service_lost)
10264         (bus_driver_send_service_acquired): send messages from driver to a
10265         specific client to the client's unique name, not to the broadcast
10266         service.
10267
10268         * dbus/dbus-message.c (decode_header_data): reject messages that
10269         contain no name field
10270         (_dbus_message_get_client_serial): rename to
10271         dbus_message_get_serial and make public
10272         (_dbus_message_set_serial): rename from set_client_serial
10273         (_dbus_message_set_reply_serial): make public
10274         (_dbus_message_get_reply_serial): make public
10275
10276         * bus/connection.c (bus_connection_foreach): allow stopping
10277         iteration by returning FALSE from foreach function.
10278
10279         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10280         (dbus_connection_free_preallocated_send)
10281         (dbus_connection_preallocate_send): new API for sending a message
10282         without possibility of malloc failure.
10283         (dbus_connection_send_message): rename to just
10284         dbus_connection_send (and same for whole function family)
10285
10286         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10287
10288         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10289
10290         * bus/activation.c: handle/return errors
10291
10292         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10293
10294         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10295         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10296         (_dbus_result_from_errno): move to this file
10297
10298 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10299
10300         * dbus/dbus-marshal.c:
10301         (_dbus_marshal_set_string):
10302         Take a length argument so we can marshal the correct string
10303         length.
10304
10305         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10306         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10307         (_dbus_marshal_test):
10308         * dbus/dbus-marshal.h:
10309         Add support for marshalling and demarshalling dicts.
10310
10311         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10312         Add support for TYPE DICT.
10313
10314         * dbus/dbus-message.c: (set_string_field):
10315         Adjust header padding.
10316
10317         (dbus_message_append_args_valist), (dbus_message_append_dict),
10318         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10319         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10320         (check_message_handling), (check_have_valid_message):
10321         * dbus/dbus-message.h:
10322         Add functions for setting and getting dicts.
10323
10324         * dbus/dbus-protocol.h:
10325         Add DBUS_TYPE_DICT.
10326
10327         * dbus/dbus.h:
10328         Add dbus-dict.h
10329
10330         * doc/dbus-specification.sgml:
10331         Add information about how dicts are marshalled.
10332
10333         * test/data/invalid-messages/dict-with-nil-value.message:
10334         * test/data/invalid-messages/too-short-dict.message:
10335         * test/data/valid-messages/dict-simple.message:
10336         * test/data/valid-messages/dict.message:
10337         Add sample messages containing dicts.
10338
10339 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10340
10341         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10342
10343 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10344
10345         * dbus/Makefile.am:
10346         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10347         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10348         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10349         (dbus_dict_set_double), (dbus_dict_set_string),
10350         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10351         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10352         (dbus_dict_set_string_array), (_dbus_dict_test):
10353         * dbus/dbus-dict.h:
10354         Fix according to comments from Havoc.
10355
10356 2003-03-06  Michael Meeks  <michael@server.home>
10357
10358         * configure.in: if we don't have kde-config, disable have_qt.
10359
10360 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10361
10362         * dbus/Makefile.am:
10363         Add dbus-dict.[ch]
10364
10365         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10366         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10367         (dbus_dict_remove), (dbus_dict_get_value_type),
10368         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10369         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10370         (dbus_dict_put_double), (dbus_dict_put_string),
10371         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10372         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10373         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10374         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10375         (dbus_dict_get_double), (dbus_dict_get_string),
10376         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10377         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10378         (dbus_dict_get_string_array), (_dbus_dict_test):
10379         * dbus/dbus-dict.h:
10380         Add DBusDict implementation
10381
10382         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10383         * dbus/dbus-test.h:
10384         Add _dbus_dict_test
10385
10386 2003-03-04  Havoc Pennington  <hp@pobox.com>
10387
10388         * test/data/auth/*: adapt to changes
10389
10390         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10391         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10392         userid
10393
10394         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10395         more stuff from being in a context name, to make the protocol
10396         simpler to deal with
10397
10398         * dbus/dbus-errors.c (dbus_error_has_name): new function
10399         (dbus_error_is_set): new function
10400
10401         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10402         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10403
10404         * dbus/dbus-connection.c (dbus_connection_flush): also read
10405         messages during a flush operation
10406
10407         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10408
10409 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10410
10411         * configure.in: Check for gethostbyname on Solaris.
10412
10413         * dbus/dbus-transport.c: (_dbus_transport_open):
10414         Remove duplicate "tcp" entry.
10415
10416         * doc/dbus-specification.sgml:
10417         Clarify some things.
10418
10419 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10420
10421         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10422         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10423         (_dbus_keyring_test):
10424         * dbus/dbus-md5.c: (_dbus_md5_compute):
10425         * dbus/dbus-sha.c: (_dbus_sha_compute):
10426         Plug memory leaks.
10427
10428 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10429
10430         * README: Add some things.
10431
10432 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10433
10434         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10435         after case DBUS_TYPE_BOOELAN.
10436
10437 2003-03-02  Havoc Pennington  <hp@pobox.com>
10438
10439         * test/break-loader.c (randomly_set_extreme_ints): add test that
10440         sets really huge and small integers
10441
10442         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10443         that length of boolean array fits in the string, and that
10444         string has room for boolean value in single-bool case.
10445
10446         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10447         optional value to "ALIGN" command which is what to fill the
10448         alignment with.
10449
10450         * test/data/valid-messages/no-padding.message: add regression
10451         test for the message padding problem
10452
10453 2003-03-02  Havoc Pennington  <hp@pobox.com>
10454
10455         * dbus/dbus-message.c (decode_header_data): fix to always init
10456         message_padding, from Benjamin Dauvergne
10457
10458 2003-03-02  Havoc Pennington  <hp@pobox.com>
10459
10460         * configure.in: 0.5
10461
10462         * NEWS: Update.
10463
10464 2003-03-01  Joe Shaw  <joe@assbarn.com>
10465
10466         * configure.in: Check for "struct cmsgcred" and try to access its
10467         members for BSD-like unices.
10468
10469         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10470         _dbus_read_credentials_unix_socket().
10471         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10472         read() for reading the credential byte off the unix socket.  Use
10473         struct cmsgcred on systems that support it.
10474
10475 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10476
10477         * glib/Makefile.am:
10478         * configure.in:
10479         Make gthreads-2.0 dependency optional. Don't build thread test if
10480         its not found.
10481
10482 2003-02-27  Havoc Pennington  <hp@pobox.com>
10483
10484         * dbus/dbus-connection.c
10485         (dbus_connection_send_message_with_reply_and_block): fix doh!
10486         doh! doh! bug that resulted in never removing a reply from the
10487         queue, no wonder we called get_reply_serial so much ;-)
10488
10489         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10490         and client serial instead of demarshaling them every time
10491
10492 2003-02-27  Havoc Pennington  <hp@pobox.com>
10493
10494         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10495         more inlined, using dbus-string-private.h, speeds things up
10496         substantially
10497
10498         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10499         when freeing the string
10500         (_dbus_string_steal_data): fix for align offset
10501         (undo_alignment): new function
10502
10503 2003-02-26  Havoc Pennington  <hp@redhat.com>
10504
10505         All kinds of audit fixes from Owen, plus initial attempt to
10506         handle unaligned memory returned from malloc.
10507
10508         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10509         leave room for align_offset and nul byte
10510         (fixup_alignment): function to track an align_offset and
10511         ensure real->str is aligned
10512         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10513         to allow a nul byte plus align offset
10514         (_dbus_string_lock): fix overflow issue
10515         (_dbus_string_init_const_len): add assertions on sanity of len,
10516         assign allocated to be ALLOCATION_PADDING larger than len
10517         (set_length): fixup the overflow handling
10518         (_dbus_string_get_data_len): fix overflow in assertion
10519         (open_gap): detect overflow in size of gap to be opened
10520         (_dbus_string_lengthen): add overflow check
10521         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10522         (_dbus_string_append): add overflow check
10523         (_dbus_string_append_unichar): overflow
10524         (_dbus_string_delete): fix overflow in assertion
10525         (_dbus_string_copy_len): overflow in assertion
10526         (_dbus_string_replace_len): overflows in assertions
10527         (_dbus_string_find): change to implement in terms of
10528         _dbus_string_find_to
10529         (_dbus_string_find_to): assorted fixage
10530         (_dbus_string_equal_c_str): assert c_str != NULL,
10531         fix logic so the function works
10532         (_dbus_string_ends_with_c_str): fix overflow thingy
10533         (_dbus_string_base64_encode): overflow fix
10534         (_dbus_string_validate_ascii): overflow
10535         (_dbus_string_validate_nul): overflow
10536
10537 2003-02-26  Havoc Pennington  <hp@redhat.com>
10538
10539         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10540
10541 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10542
10543         * configure.in:
10544         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10545
10546         * dbus/dbus-connection.c:
10547         * dbus/dbus-connection.h:
10548         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10549         Add dbus_connection_set_wakeup_main_function and use it when queueing
10550         incoming and outgoing messages.
10551
10552
10553         * dbus/dbus-dataslot.c:
10554         Threadsafe usage of DBusDataSlotAllocator
10555
10556         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10557         dbus_new can fail.
10558
10559         * dbus/dbus-server-unix.c:
10560         Add todo comment
10561
10562         * glib/dbus-gmain.c:
10563         Implement the new wakeup functions for glib.
10564
10565         * glib/Makefile.am:
10566         * glib/test-thread-client.c:
10567         * glib/test-thread-server.c:
10568         * glib/test-thread.h:
10569         Initial cut at some thread test code. Not really done yet.
10570
10571 2003-02-26  Havoc Pennington  <hp@pobox.com>
10572
10573         * dbus/dbus-connection.c
10574         (dbus_connection_send_message_with_reply_and_block): fix crash
10575         where we ref'd the outgoing message instead of the returned reply
10576
10577         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10578         at the end of this function, so if we didn't need to read for
10579         authentication, we reinstall it for receiving messages
10580
10581         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10582         a NULL sender for peer-to-peer case
10583
10584         * dbus/dbus-transport-unix.c (check_read_watch): handle
10585         !authenticated case correctly
10586
10587         * glib/dbus-gmain.c: add support for DBusServer
10588
10589         * dbus/dbus-server.c: add data slot support
10590
10591         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10592         return values and handle errors
10593
10594         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10595         DBusConnection
10596
10597         * Doxyfile.in (INPUT): add glib subdir
10598
10599         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10600         setup_with_g_main instead of hookup_with_g_main; write docs
10601
10602 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10603
10604         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10605         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10606         * dbus/dbus-message.c: (dbus_message_append_boolean),
10607         (dbus_message_append_boolean_array),
10608         (dbus_message_get_args_valist), (_dbus_message_test):
10609         * dbus/dbus-message.h:
10610         * doc/dbus-specification.sgml:
10611         Various fixes as pointed out by Havoc.
10612
10613         * test/data/invalid-messages/bad-boolean-array.message:
10614         * test/data/invalid-messages/bad-boolean.message:
10615         Add invalid boolean value test cases.
10616
10617 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10618
10619         * dbus/dbus-internals.c: (_dbus_type_to_string):
10620         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10621         (_dbus_marshal_validate_arg):
10622         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10623         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10624         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10625         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10626         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10627         (dbus_message_iter_get_double),
10628         (dbus_message_iter_get_boolean_array), (message_iter_test):
10629         * dbus/dbus-message.h:
10630         * dbus/dbus-protocol.h:
10631         * doc/dbus-specification.sgml:
10632         * test/data/valid-messages/lots-of-arguments.message:
10633         Add support for boolean and boolean array types.
10634
10635 2003-02-23  Havoc Pennington  <hp@pobox.com>
10636
10637         * dbus/dbus-keyring.c: finish most of this implementation and
10638         simple unit test
10639
10640         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10641         these barf if the error isn't cleared to NULL
10642
10643         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10644         (_dbus_create_directory): new function
10645
10646         * dbus/dbus-errors.c (dbus_set_error): fix warning
10647
10648         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10649         (_dbus_string_hex_decode): new function
10650         (test_hex_roundtrip): test code
10651
10652         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10653
10654         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10655
10656         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10657         the save-to-temp/rename trick to atomically write the new file
10658         (_dbus_string_parse_uint): new function
10659
10660 2003-02-22  Havoc Pennington  <hp@pobox.com>
10661
10662         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10663
10664 2003-02-22  Havoc Pennington  <hp@pobox.com>
10665
10666         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10667         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10668
10669         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10670
10671         * dbus/test/data/sha-1: add US government test suite for SHA-1
10672
10673 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10674
10675         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10676         Make string arrays NULL-terminated.
10677
10678         * dbus/dbus-memory.c: (dbus_free_string_array):
10679         * dbus/dbus-memory.h:
10680         New function for freeing NULL-terminated string arrays.
10681
10682         * dbus/dbus-message-builder.c: (append_quoted_string),
10683         (_dbus_message_data_load):
10684         Add support for array types.
10685
10686         * dbus/dbus-message.c: (check_message_handling):
10687         Add more types as test cases.
10688
10689         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10690         (_dbus_string_parse_double):
10691         Add the start offset to the end offset.
10692
10693         * test/data/valid-messages/lots-of-arguments.message:
10694         New test message with lots of arguments.
10695
10696 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10697
10698         * dbus/dbus-message.c: (dbus_message_append_nil),
10699         (dbus_message_append_int32), (dbus_message_append_uint32),
10700         (dbus_message_append_double), (dbus_message_append_string),
10701         (dbus_message_append_int32_array),
10702         (dbus_message_append_uint32_array),
10703         (dbus_message_append_double_array),
10704         (dbus_message_append_byte_array),
10705         (dbus_message_append_string_array):
10706         Fix all out-of-memory handling in these functions.
10707
10708 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10709
10710         * dbus/dbus-message.c: (dbus_message_append_nil):
10711         Fix a silly.
10712
10713 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10714
10715         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10716         (dbus_message_append_nil), (dbus_message_append_int32_array),
10717         (dbus_message_append_uint32_array),
10718         (dbus_message_append_double_array),
10719         (dbus_message_append_byte_array),
10720         (dbus_message_append_string_array), (dbus_message_get_args_valist),
10721         (dbus_message_iter_get_int32_array),
10722         (dbus_message_iter_get_uint32_array),
10723         (dbus_message_iter_get_double_array),
10724         (dbus_message_iter_get_byte_array),
10725         (dbus_message_iter_get_string_array):
10726
10727         * dbus/dbus-message.h:
10728         Add functions for appending and getting arrays.
10729
10730 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10731
10732         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10733         element size at least 8 bytes, fixes mempool tests on
10734         64-bit machines.
10735
10736 2003-02-20  Alexander Larsson  <alexl@redhat.com>
10737
10738         * dbus/dbus-transport-unix.c (unix_do_iteration):
10739         Unlock the connection mutex during a blocking select call.
10740         Add todo about how we need a way to wake up the select.
10741
10742         * dbus/dbus-connection-internal.h:
10743         * dbus/dbus-connection.c:
10744         Add _dbus_connection_lock and _dbus_connection_unlock.
10745
10746 2003-02-19  Havoc Pennington  <hp@pobox.com>
10747
10748         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10749         Doxyfile.in, not Doxyfile
10750
10751         * dbus/dbus-keyring.c: do some hacking on this
10752
10753         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10754
10755         * dbus/dbus-errors.c (dbus_set_error_const): do not call
10756         dbus_error_init
10757         (dbus_set_error): remove dbus_error_init, check for message ==
10758         NULL *before* we sprintf into it, and add @todo about including
10759         system headers in this file
10760
10761         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10762
10763         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10764
10765         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10766         get various bits of user information based on either username
10767         or user ID
10768         (_dbus_homedir_from_username): new function
10769
10770 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
10771
10772         * configure.in:
10773         Add check for nonposix getpwnam_r
10774
10775         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10776         Align the pool element size to a sizeof (void *) boundary.
10777
10778         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10779         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10780         General Solaris fixes.
10781
10782         * test/data/valid-messages/simplest-manual.message:
10783         Explicitly state that we want little-endian packing.
10784
10785 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
10786
10787         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10788
10789         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10790         Added to create a transport connecting using a tcp/ip socket.
10791
10792         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10793         to a tcp socket at given host and port.
10794         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10795         hostname and port.
10796
10797         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10798
10799         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10800         Added to create a server listening on a TCP/IP socket.
10801
10802 2003-02-19  Havoc Pennington  <hp@pobox.com>
10803
10804         Throughout: mop up all the Doxygen warnings and undocumented
10805         stuff.
10806
10807         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10808         to search any paths.
10809
10810         * dbus/dbus-threads.c: move global mutex initializers to
10811         dbus-internals.h, multiple prototypes was confusing doxygen
10812         besides being kind of ugly
10813
10814         * Doxyfile (PREDEFINED): have Doxygen define
10815         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10816         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10817         (do not abuse the feature! it's for stuff like the autogenerated
10818         macros in dbus-md5.c, not just for things you don't feel like
10819         documenting...)
10820
10821 2003-02-18  Havoc Pennington  <hp@pobox.com>
10822
10823         * dbus/dbus-string.c (_dbus_string_zero): new function
10824
10825         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10826         wrap it in some dbus-friendly API
10827
10828         * dbus/dbus-types.h: add 16-bit types
10829
10830 2003-02-18  Joe Shaw  <joe@assbarn.com>
10831
10832         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10833         credentials from our currently running process.
10834         (get_word): Fix a buglet where we were copying the entire length
10835         instead of relative to our position.
10836
10837         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10838         keys on the stack... it's 640k of data.
10839
10840         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10841         read the credentials byte off the socket, even if we don't have
10842         SO_PEERCRED.
10843         (_dbus_poll): Implement poll() using select() for systems which
10844         don't have it.
10845
10846         * glib/test-dbus-glib.c (main): Print out an error if no
10847         parameters are given.
10848
10849         * test/data/auth/fallback.auth-script: Added.  Tests that a client
10850         can fallback to a secondary auth mechanism if the first fails.
10851
10852 2003-02-18  Havoc Pennington  <hp@pobox.com>
10853
10854         * AUTHORS: add Alex
10855
10856 2003-02-17  Havoc Pennington  <hp@pobox.com>
10857
10858         * doc/dbus-specification.sgml: lots of cosmetic
10859         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10860         env variable to DBUS_BUS_ADDRESS, s/client/application/,
10861         s/server/bus/ (except in authentication section). Add a section
10862         "Message Bus Message Routing"
10863
10864 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
10865
10866         Release 0.4
10867
10868         * NEWS: Update
10869
10870 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10871
10872         * doc/dbus-specification.sgml:
10873         Specification updates.
10874
10875 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10876
10877         * bus/activation.c: (bus_activation_init), (child_setup),
10878         (bus_activation_activate_service):
10879         * bus/activation.h:
10880         * bus/main.c: (main):
10881         Set DBUS_ADDRESS environment variable.
10882
10883         * dbus/dbus-errors.c: (dbus_set_error):
10884         Don't use va_copy since that's a C99 feature.
10885
10886         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10887         (_dbus_spawn_async):
10888         * dbus/dbus-sysdeps.h:
10889         Add child_setup_func to _dbus_spawn_async.
10890
10891         * doc/dbus-specification.sgml:
10892         Update specification.
10893
10894         * test/spawn-test.c: (setup_func), (main):
10895         Fix test.
10896
10897 2003-02-17  Alexander Larsson  <alexl@redhat.com>
10898
10899         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10900         Added todo.
10901
10902 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10903
10904         * doc/.cvsignore:
10905         * doc/Makefile.am:
10906         * doc/dbus-test-plan.sgml:
10907         Add test plan document.
10908
10909         * test/Makefile.am:
10910         Fix distcheck.
10911
10912 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10913
10914         * dbus/dbus-message.c: (decode_header_data),
10915         (_dbus_message_loader_return_buffer):
10916         Set the header padding amount when loading a message.
10917
10918 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10919
10920         * bus/dispatch.c: (send_one_message):
10921         Only send broadcast messages to registered connections.
10922
10923         * dbus/dbus-message.c: (dbus_message_name_is):
10924         * dbus/dbus-message.h:
10925         New convenience function.
10926
10927         * dbus/dbus-transport-debug.c: (do_reading):
10928         Only dispatch one message per run.
10929
10930         * test/Makefile.am:
10931         * test/bus-test.c: (new_connection_callback), (die),
10932         (test_hello_client1_handler), (test_hello_client2_handler),
10933         (test_hello_replies), (main):
10934
10935         * test/bus-test-loop.[ch]:
10936         Add these.
10937
10938 2003-02-16  Havoc Pennington  <hp@pobox.com>
10939
10940         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10941         backward conditional
10942
10943 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10944
10945         * dbus/dbus-connection.c:
10946         Implement sent_message_with_reply. (with_reply_and block is still
10947         busted).
10948         Made dispatch_message not lose message if OOM.
10949
10950         * dbus/dbus-errors.h:
10951         Add NoReply error (for reply timeouts).
10952
10953 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10954
10955         * dbus/dbus-hash.c (_dbus_hash_table_unref):
10956         Actually free keys and values when destroying hashtable.
10957
10958 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10959
10960         * dbus/dbus-auth.c: (client_try_next_mechanism):
10961         Plug a leak.
10962
10963         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
10964         Return TRUE if there's no thread implementation around.
10965
10966         * glib/dbus-gmain.c: (free_source),
10967         (dbus_connection_hookup_with_g_main):
10968         Make sure to remove the GSource when the connection is finalized.
10969
10970 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10971
10972         * bus/dispatch.c: (bus_dispatch_message_handler):
10973         * dbus/dbus-errors.h:
10974         Return an error if someone tries to send a message to a service
10975         that doesn't exist.
10976
10977 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10978
10979         * bus/activation.c: (load_directory), (bus_activation_init),
10980         (bus_activation_activate_service):
10981         * bus/activation.h:
10982         * bus/driver.c:
10983         (bus_driver_handle_activate_service), (bus_driver_handle_message):
10984         More work on the activation handling.
10985
10986         * dbus/dbus-errors.h:
10987         Add some error messages
10988
10989         * dbus/dbus-message.c: (dbus_message_new_error_reply):
10990         * dbus/dbus-message.h:
10991         New function that creates an error message.
10992
10993         * dbus/dbus-protocol.h:
10994         Add ACTIVATE_SERVER message.
10995
10996         * dbus/dbus-server-unix.c: (unix_handle_watch),
10997         (_dbus_server_new_for_domain_socket):
10998         Call _dbus_fd_set_close_on_exec.
10999
11000         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11001         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11002         (_dbus_fd_set_close_on_exec):
11003         * dbus/dbus-sysdeps.h:
11004         Add _dbus_fd_set_close_on exec function. Also add function that checks
11005         that all open fds are set to close-on-exec and warns otherwise.
11006
11007         * dbus/dbus-transport-unix.c:
11008         (_dbus_transport_new_for_domain_socket):
11009         Call _dbus_fd_set_close_on_exec.
11010
11011 2003-02-16  Havoc Pennington  <hp@pobox.com>
11012
11013         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11014         allow people to avoid setting SIGPIPE to SIG_IGN
11015         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11016         we've been asked not to
11017
11018 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11019
11020         * dbus/dbus-list.c: (_dbus_list_append_link),
11021         (_dbus_list_prepend_link):
11022         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11023         (dbus_realloc):
11024         Warning fixes.
11025
11026 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11027
11028         * bus/Makefile.am:
11029         * bus/activation.c: (bus_activation_entry_free),
11030         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11031         * bus/activation.h:
11032         * bus/main.c: (main):
11033         Add simple activation support, doesn't work yet though.
11034
11035 2003-02-15   Zack Rusin  <zack@kde.org>
11036
11037         * qt/dbus-qthread.cpp:  small casting fix
11038
11039 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11040
11041         * dbus/dbus-errors.c: (dbus_set_error):
11042         * dbus/dbus-errors.h:
11043         Add a few errors and make dbus_set_error void.
11044
11045         * dbus/dbus-sysdeps.c:
11046         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11047         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11048         * dbus/dbus-sysdeps.h:
11049         Add _dbus_spawn_async.
11050
11051         * test/spawn-test.c: (main):
11052         Test for _dbus_spawn_async.
11053
11054 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11055
11056         * dbus/dbus-internals.h:
11057         Fix build without tests.
11058
11059         * dbus/dbus-list.c: (alloc_link):
11060         Fix a segfault when a malloc fails.
11061
11062         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11063         (dbus_malloc0), (dbus_realloc):
11064         Add support for malloc debugging.
11065
11066 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11067
11068         * dbus/dbus-threads.c:
11069         * dbus/dbus-threads.h:
11070         Add condvars. Remove static mutext from API.
11071         Implement static mutexes by initializing them from threads_init.
11072
11073         * glib/dbus-gthread.c:
11074         * qt/dbus-qthread.cpp:
11075         Update with the thread api changes.
11076
11077
11078         * dbus/dbus-list.c:
11079         * dbus/dbus-list.h:
11080         Turn StaticMutex into normal mutex + init function.
11081         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11082         _dbus_list_append_link, _dbus_list_prepend_link
11083
11084
11085         * dbus/dbus-sysdeps.c:
11086         * dbus/dbus-sysdeps.h:
11087         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11088         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11089
11090         * dbus/dbus-protocol.h:
11091         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11092
11093         * dbus/dbus-message.c:
11094         Make ref/unref atomic.
11095         Fix some docs.
11096
11097         * dbus/dbus-connection-internal.h:
11098         * dbus/dbus-connection.c:
11099         * dbus/dbus-connection.h:
11100         Make threadsafe.
11101         Change _peek to _borrow,_return & _steal_borrowed.
11102         Change disconnect callback to event.
11103         Make dbus_connection_dispatch_messages reentrant.
11104
11105         * dbus/dbus-transport.c:
11106         Don't ref the connection on calls to the transport
11107         implementation.
11108
11109         * dbus/dbus-message-handler.c:
11110         Make threadsafe.
11111
11112         * glib/dbus-gmain.c:
11113         Don't use peek_message anymore
11114
11115         * test/Makefile.am:
11116         * test/debug-thread.c:
11117         * test/debug-thread.h:
11118         Simple thread implementation that asserts() on deadlocks in
11119         single-threaded code.
11120
11121         * test/bus-test.c:
11122         (main) Call debug_threads_init.
11123
11124         * test/watch.c:
11125         Use disconnect message instead of disconnect callback.
11126
11127         * bus/connection.c:
11128         * bus/connection.h:
11129         Don't call dbus_connection_set_disconnect_function. Instead export
11130         bus_connection_disconnect.
11131
11132         * bus/dispatch.c:
11133         Call bus_connection_disconnect when we get a disconnected message.
11134
11135 2003-02-15  Havoc Pennington  <hp@pobox.com>
11136
11137         * dbus/dbus-message.c (dbus_message_new): fool around with the
11138         docs
11139
11140 2003-02-14  Havoc Pennington  <hp@pobox.com>
11141
11142         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11143
11144         * dbus/dbus-memory.c: fail if the debug functions indicate we
11145         should
11146
11147         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11148         (_dbus_decrement_fail_alloc_counter): debug functions to
11149         simulate memory allocation failures
11150
11151 2003-02-14  Havoc Pennington  <hp@pobox.com>
11152
11153         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11154         to DBusError
11155
11156 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11157
11158         * bus/driver.c: (bus_driver_handle_hello):
11159         * bus/driver.h:
11160         * bus/services.c: (bus_service_lookup):
11161         Reorder message sending so we get a more sane order.
11162
11163         * test/bus-test.c: (message_handler):
11164         Fix tyop.
11165
11166 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11167
11168         * bus/driver.c: (bus_driver_send_service_deleted),
11169         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11170         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11171         (bus_driver_send_welcome_message),
11172         (bus_driver_handle_list_services),
11173         (bus_driver_handle_acquire_service),
11174         (bus_driver_handle_service_exists):
11175         * dbus/dbus-bus.c: (dbus_bus_register_client),
11176         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11177         * dbus/dbus-errors.c: (dbus_result_to_string):
11178         * dbus/dbus-errors.h:
11179         * dbus/dbus-message.c: (dbus_message_append_args),
11180         (dbus_message_append_args_valist), (dbus_message_get_args),
11181         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11182         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11183         (dbus_message_iter_get_byte_array),
11184         (dbus_message_iter_get_string_array), (message_iter_test),
11185         (check_message_handling), (_dbus_message_test):
11186         * dbus/dbus-message.h:
11187         * test/bus-test.c: (main):
11188         Change fields to arguments in messages, so that they won't be
11189         confused with header fields.
11190
11191         * glib/test-dbus-glib.c: (main):
11192         Remove append_fields from hello message.
11193
11194 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11195
11196         * dbus/dbus-errors.c:
11197         * dbus/dbus-message.c:
11198         * dbus/dbus-string.c:
11199         Documentation fixes.
11200
11201 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11202
11203         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11204         (remove_timeout):
11205         Implement support for timeouts in dbus-glib.
11206
11207 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11208
11209         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11210         * dbus/dbus-message.c: (process_test_subdir):
11211         * test/break-loader.c: (find_breaks_based_on):
11212         Plug some memory leaks.
11213
11214 2003-02-13  Richard Hult  <rhult@codefactory.se>
11215
11216         * bus/main.c: Fix build.
11217
11218         * dbus/dbus-errors.h:
11219         * dbus/dbus-errors.c: Fix copyright for Anders.
11220
11221 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11222
11223         * bus/Makefile.am:
11224         Add utils.[ch]
11225
11226         * bus/connection.c: (bus_connection_foreach):
11227         Fix a warning.
11228
11229         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11230         (unescape_string), (new_section), (parse_section_start),
11231         (parse_key_value), (report_error), (bus_desktop_file_load),
11232         (bus_desktop_file_get_string):
11233         * bus/desktop-file.h:
11234         Use DBusError for error reporting.
11235
11236         * bus/dispatch.c: (send_one_message),
11237         (bus_dispatch_message_handler):
11238         * bus/driver.c: (bus_driver_send_service_deleted),
11239         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11240         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11241         (bus_driver_send_welcome_message),
11242         (bus_driver_handle_list_services),
11243         (bus_driver_handle_acquire_service),
11244         (bus_driver_handle_service_exists):
11245         * bus/loop.c: (bus_loop_run):
11246         * bus/main.c:
11247         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11248
11249         * bus/utils.c: (bus_wait_for_memory):
11250         * bus/utils.h:
11251         New files with general utility functions.
11252
11253         * dbus/dbus-internals.h:
11254         Remove _DBUS_HANDLE_OOM.
11255
11256 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11257
11258         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11259         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11260         * dbus/dbus-errors.h:
11261         Add DBusError structure.
11262
11263 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11264
11265         * test/data/valid-messages/standard-acquire-service.message:
11266         * test/data/valid-messages/standard-hello.message:
11267         * test/data/valid-messages/standard-list-services.message:
11268         * test/data/valid-messages/standard-service-exists.message:
11269         Add some standard messages.
11270
11271 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11272
11273         * bus/driver.c: (bus_driver_send_welcome_message),
11274         (bus_driver_handle_list_services),
11275         (bus_driver_handle_acquire_service),
11276         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11277         Update for API changes in libdbus.
11278
11279         * dbus/dbus-message.c: (dbus_message_new_reply):
11280         * dbus/dbus-message.h:
11281         Remove the name argument. The spec states that replies shouldn't
11282         have a name.
11283
11284 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11285
11286         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11287         (report_error), (bus_desktop_file_load), (lookup_section),
11288         (lookup_line), (bus_desktop_file_get_raw),
11289         (bus_desktop_file_get_string):
11290         * bus/desktop-file.h:
11291         Some fixes, and new functions for getting a key value from a section.
11292
11293 2003-02-13  Havoc Pennington  <hp@pobox.com>
11294
11295         * test/data/auth/fail-after-n-attempts.auth-script: new test
11296
11297         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11298         reject the client.
11299
11300 2003-02-13  Havoc Pennington  <hp@pobox.com>
11301
11302         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11303         dbus_credentials_match were backward
11304
11305         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11306         NO_CREDENTIALS and ROOT_CREDENTIALS
11307
11308         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11309         into here. Never process more commands after we've reached an
11310         end state; store further data as unused bytes.
11311
11312         * test/data/auth/*: add more auth tests
11313
11314         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11315         command to match exact string and EXPECT_UNUSED to match unused
11316         bytes
11317
11318         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11319
11320 2003-02-12  Havoc Pennington  <hp@pobox.com>
11321
11322         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11323         \r off of popped lines
11324
11325         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11326         scripts
11327
11328         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11329         SEND, append \r\n
11330
11331 2003-02-12  Havoc Pennington  <hp@pobox.com>
11332
11333         * dbus/Makefile.am: remove break-loader from the build, since it
11334         moved.
11335
11336         * configure.in: add --enable-gcov to turn on coverage profiling
11337         flags and disable optimization
11338
11339 2003-02-10  Havoc Pennington  <hp@pobox.com>
11340
11341         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11342         initial cut at test framework for DBusAuth from laptop.
11343         Doesn't quite work yet but it compiles and I need to get
11344         it off the 266mhz laptop. ;-)
11345
11346         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11347         fix a memleak in error case
11348
11349 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11350
11351         * bus/Makefile.am:
11352         * bus/desktop-file.c:
11353         * bus/desktop-file.h:
11354         Add a desktop file parser.
11355
11356 2003-02-11  Zack Rusin  <zack@kde.org>
11357
11358         * qt/message.[h|cpp]: sample implementation
11359         of the KDE wrapper for DBusMessage
11360
11361 2003-02-09  Zack Rusin  <zack@kde.org>
11362
11363         * test/bus-test.c: make_it_compile
11364         * doc/dbus-specification.sgml: minimal semantic fix
11365
11366 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11367
11368         Release 0.3
11369
11370         * NEWS: Update
11371
11372 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11373
11374         * dbus/Makefile.am:
11375         * dbus/dbus-break-loader.c:
11376         * test/Makefile.am:
11377         * test/break-loader.c:
11378         Move dbus-break-loader to test/ and rename it to break-loader.
11379
11380 2003-02-02  Havoc Pennington  <hp@pobox.com>
11381
11382         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11383         for code to manage cookies in your home directory
11384
11385         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11386
11387         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11388         to authenticate, then disconnect the client.
11389
11390 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11391
11392         * dbus/dbus-message.c (dbus_message_append_fields):
11393         Correct docs.
11394
11395 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11396
11397         * doc/dbus-specification.sgml:
11398         Update address format section.
11399
11400 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11401
11402         * test/Makefile.am:
11403         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11404         (message_handler), (new_connection_callback), (loop_quit),
11405         (loop_run), (main):
11406         Add bus test.
11407
11408 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11409
11410         * bus/driver.c: (bus_driver_handle_service_exists):
11411         Simplify the code a bit.
11412
11413         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11414         Fix a silly.
11415
11416 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11417
11418         * bus/Makefile.am:
11419         Add libdbus-daemon.la and link to it.
11420
11421 2003-02-01  James Willcox  <jwillcox@gnome.org>
11422
11423         * bus/driver.c: (bus_driver_handle_own_service):
11424         Actually include the service reply code in the message.
11425
11426 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11427
11428         * bus/driver.c: (bus_driver_handle_service_exists):
11429         Don't unref the incoming message.
11430
11431 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11432
11433         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11434
11435 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11436
11437         * dbus/dbus-server.c: (dbus_server_listen):
11438         * dbus/dbus-transport.c: (_dbus_transport_open):
11439         ifdef out the calls to the debug transport and server.
11440
11441 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11442
11443         * dbus/dbus-watch.c (dbus_watch_get_flags):
11444         Add note in the docs that ERROR or HANGUP won't be returned
11445         and are assumed always on.
11446
11447         * glib/dbus-gmain.c (add_watch):
11448         Always add IO_ERR | IO_HUP
11449
11450         * dbus/dbus-message.h:
11451         Add semicolon after dbus_message_iter_get_string_array().
11452         Makes qt code build again
11453
11454 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11455
11456         * bus/driver.c: (create_unique_client_name),
11457         (bus_driver_handle_hello):
11458         Don't take a name, just use a numeric id to identify
11459         each client.
11460
11461         * dbus/Makefile.am:
11462         * dbus/dbus-bus.c: (dbus_bus_register_client),
11463         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11464         * dbus/dbus-bus.h:
11465         Add new convenience functions for communicating with the bus.
11466
11467         * dbus/dbus-message.h:
11468
11469         * dbus/dbus-protocol.h:
11470         Fix a typo.
11471
11472 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11473
11474         * dbus/dbus-message.c (dbus_message_append_fields):
11475         Add some more doc comments.
11476
11477 2003-02-01  Havoc Pennington  <hp@pobox.com>
11478
11479         * dbus/dbus-break-loader.c (randomly_modify_length): change
11480         a 4-byte value in the message as if it were a length
11481
11482         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11483         execute bit on saved files
11484
11485 2003-02-01  Havoc Pennington  <hp@pobox.com>
11486
11487         * dbus/dbus-break-loader.c (main): new program to find messages
11488         that break the loader.
11489
11490         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11491         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11492
11493         * dbus/dbus-string.c (_dbus_string_set_byte): new
11494
11495 2003-01-31  Havoc Pennington  <hp@pobox.com>
11496
11497         * dbus/dbus-message.c: refactor the test code to be more general,
11498         in preparation for writing a "randomly permute test cases to
11499         try to break the loader" program.
11500
11501 2003-01-31  Havoc Pennington  <hp@pobox.com>
11502
11503         * doc/dbus-specification.sgml: work on the specification
11504
11505         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11506         the protocol version of the message.
11507
11508         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11509         no longer specifies that.
11510         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11511         1/2/3/4)
11512
11513         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11514         "break" for DBUS_TYPE_NIL, remove @todo
11515
11516 2003-01-31  Havoc Pennington  <hp@pobox.com>
11517
11518         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11519         just set_is_error/get_is_error as this is a commonly-used
11520         function, and write docs.
11521
11522 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11523
11524         * dbus/dbus-address.c: (dbus_address_entry_free):
11525         Free key and value lists.
11526
11527         * dbus/dbus-internals.c: (_dbus_type_to_string):
11528         Add the types we didn't have.
11529
11530         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11531         (_dbus_marshal_validate_arg):
11532         Add NIL types.
11533
11534         * dbus/dbus-message.c: (dbus_message_set_sender):
11535         Remove todo about being able to set sender to NULL.
11536
11537         (dbus_message_set_is_error_reply),
11538         (dbus_message_get_is_error_reply):
11539         * dbus/dbus-message.h:
11540         New functions.
11541
11542         * dbus/dbus-protocol.h:
11543         Add error reply flag.
11544
11545         * test/data/valid-messages/opposite-endian.message:
11546         Add NIL type to test.
11547
11548 2003-01-31  Havoc Pennington  <hp@pobox.com>
11549
11550         * doc/dbus-specification.sgml: fully specify the header.  Add
11551         flags and major protocol version, and change header/body len to
11552         unsigned.
11553
11554         * dbus/dbus-message-builder.c (append_saved_length): append length
11555         as uint32
11556
11557         * dbus/dbus-message.c (dbus_message_create_header): change header
11558         length and body length to unsigned. Add the new fields from the
11559         spec
11560         (_dbus_message_loader_return_buffer): unsigned header/body len
11561
11562 2003-01-30  Havoc Pennington  <hp@pobox.com>
11563
11564         * dbus/dbus-auth.c: rework to use only REJECTED, no
11565         MECHANISMS
11566
11567         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11568         use REJECTED, suggested by Mark McLoughlin
11569
11570 2003-01-30  Havoc Pennington  <hp@pobox.com>
11571
11572         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11573         a better way to report errors here. e.g.  "unix address lacks
11574         path" or something. also "no such file" when the path doesn't
11575         exist, etc.
11576
11577         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11578         leaking list nodes
11579         (dbus_parse_address): add @todo about documenting address format,
11580         and allowing , and ; to be escaped
11581
11582 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11583
11584         * dbus/Makefile.am:
11585         Add dbus-address.[ch]
11586
11587         * dbus/dbus-address.c: (dbus_address_entry_free),
11588         (dbus_address_entries_free), (create_entry),
11589         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11590         (dbus_parse_address), (_dbus_address_test):
11591         * dbus/dbus-address.h:
11592         New files for dealing with address parsing.
11593
11594         * dbus/dbus-connection.c:
11595         Document timeout functions.
11596
11597         * dbus/dbus-message.c:
11598         Document dbus_message_new_from_message.
11599
11600         * dbus/dbus-server-debug.c:
11601         Document.
11602
11603         * dbus/dbus-server.c: (dbus_server_listen):
11604         Parse address and use correct server implementation.
11605
11606         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11607         * dbus/dbus-string.h:
11608         New function with test.
11609
11610         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11611         * dbus/dbus-test.h:
11612         Add address tests.
11613
11614         * dbus/dbus-transport-debug.c:
11615         Document.
11616
11617         * dbus/dbus-transport.c: (_dbus_transport_open):
11618         Parse address and use correct transport implementation.
11619
11620 2003-01-30  Havoc Pennington  <hp@pobox.com>
11621
11622         * dbus/dbus-message.c: use message->byte_order instead of
11623         DBUS_COMPILER_BYTE_ORDER throughout.
11624         (dbus_message_create_header): pad header to align the
11625         start of the body of the message to 8-byte boundary
11626
11627         * dbus/dbus-marshal.h: make all the demarshalers take const
11628         DBusString arguments.
11629
11630         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11631         validate message args here, so we don't have to do slow validation
11632         later, and so we catch bad messages as they are incoming. Also add
11633         better checks on header_len and body_len. Also fill in
11634         message->byte_order
11635
11636         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11637         implemented properly)
11638         (_dbus_string_validate_nul): new function to check all-nul
11639
11640         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11641         get_arg_end_pos and remove all validation
11642         (_dbus_marshal_validate_arg): actually do validation here.
11643
11644 2003-01-29  Havoc Pennington  <hp@pobox.com>
11645
11646         * dbus/dbus-message.c (check_message_handling): fix assertion
11647         failure on set_client_serial
11648
11649 2003-01-28  Havoc Pennington  <hp@pobox.com>
11650
11651         * dbus/dbus-server-debug.c: Add doc section comments
11652
11653         * dbus/dbus-transport-debug.c: add doc section comments
11654
11655 2003-01-28  Havoc Pennington  <hp@redhat.com>
11656
11657         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11658         the reverse order from how I had it
11659         (_dbus_string_base64_encode): reverse encoding order. I was
11660         basically byteswapping everything during encoding.
11661
11662 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11663
11664         * dbus/dbus-connection-internal.h:
11665         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11666         (_dbus_connection_remove_timeout):
11667         Add functions for adding and removing timeouts.
11668
11669         * dbus/dbus-message.c: (dbus_message_new_from_message):
11670         Add new function that takes a message and creates an exact
11671         copy of it, but with the refcount set to 1.
11672         (check_message_handling):
11673         Fix build error.
11674
11675         * dbus/dbus-server-protected.h:
11676         * dbus/dbus-server.c: (_dbus_server_init_base),
11677         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11678         (dbus_server_set_timeout_functions):
11679         (_dbus_server_remove_timeout):
11680         New functions so that a server can add and remove timeouts.
11681
11682         (dbus_server_listen):
11683         Add commented out call to dbus_server_debug_new.
11684
11685         * dbus/dbus-timeout.c: (_dbus_timeout_new):
11686         Actually set the handler, doh.
11687
11688         * dbus/dbus-transport.c: (_dbus_transport_open):
11689         Add commented out call to dbus_transport_debug_client_new.
11690
11691         * dbus/Makefile.am:
11692         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11693
11694 2003-01-28  Havoc Pennington  <hp@pobox.com>
11695
11696         * dbus/dbus-message.c (check_message_handling): function to check
11697         on the loaded message, iterates over it etc.
11698
11699 2003-01-28  Havoc Pennington  <hp@pobox.com>
11700
11701         * test/Makefile.am (dist-hook): fix make distdir
11702
11703         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11704
11705 2003-01-27  Havoc Pennington  <hp@pobox.com>
11706
11707         * dbus/dbus-mempool.c (time_for_size): replace printf with
11708         _dbus_verbose
11709
11710         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11711         empty lines; fix the SAVE_LENGTH stuff to be
11712         START_LENGTH/END_LENGTH so it actually works; couple other
11713         bugfixes
11714
11715         * test/Makefile.am (dist-hook): add dist-hook for .message files
11716
11717         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11718         can be constant or locked.
11719         (_dbus_string_free): allow freeing a const string as
11720         documented/intended
11721
11722         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11723
11724         * dbus/dbus-test-main.c (main): take an argument which is the
11725         directory containing test data
11726
11727         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11728         argument to this and load all the messages in test/data/
11729         checking that they can be loaded or not loaded as appropriate.
11730
11731 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
11732
11733         * bus/dispatch.c: (bus_dispatch_message_handler):
11734         Dispatch messages sent to services.
11735
11736         * bus/driver.c: (bus_driver_send_service_deleted),
11737         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11738         (bus_driver_send_service_acquired):
11739         Add helper functions for sending service related messages.
11740
11741         (bus_driver_send_welcome_message):
11742         Send HELLO_REPLY instead of WELCOME.
11743
11744         (bus_driver_handle_list_services):
11745         Send LIST_SERVICES_REPLY instead of SERVICES.
11746
11747         (bus_driver_handle_own_service),
11748         (bus_driver_handle_service_exists):
11749         New message handlers.
11750
11751         (bus_driver_handle_message):
11752         Invoke new message handlers.
11753
11754         (bus_driver_remove_connection):
11755         Don't remove any services here since that's done automatically
11756         by bus_service_remove_owner now.
11757
11758         * bus/driver.h:
11759         New function signatures.
11760
11761         * bus/services.c: (bus_service_add_owner):
11762         Send ServiceAcquired message if we're the only primary owner.
11763
11764         (bus_service_remove_owner):
11765         Send ServiceAcquired/ServiceLost messages.
11766
11767         (bus_service_set_prohibit_replacement),
11768         (bus_service_get_prohibit_replacement):
11769         Functions for setting prohibit replacement.
11770
11771         (bus_service_has_owner):
11772         New function that checks if a connection is in the owner queue of
11773         a certain service.
11774
11775         * bus/services.h:
11776         Add new function signatures.
11777
11778         * dbus/dbus-list.c: (_dbus_list_test):
11779         Add tests for _dbus_list_remove_last and traversing the list backwards.
11780
11781         * dbus/dbus-list.h:
11782         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11783         go any further, so return NULL then.
11784
11785         * dbus/dbus-protocol.h:
11786         Add new messages, service flags and service replies.
11787
11788 2003-01-26  Havoc Pennington  <hp@pobox.com>
11789
11790         * dbus/dbus-message-builder.c: implement, completely untested.
11791
11792         * test/data/*: add data to be used in testing.
11793         ".message" files are our simple loadable text format.
11794         ".message-raw" will be binary dumps of messages.
11795
11796         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11797
11798 2003-01-26  Havoc Pennington  <hp@pobox.com>
11799
11800         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11801
11802         * dbus/dbus-errors.c (dbus_result_to_string): add
11803         file errors
11804
11805         * dbus/dbus-message-builder.c: new file, will contain code to load
11806         up messages from files. Not implemented yet.
11807
11808 2003-01-26  Havoc Pennington  <hp@pobox.com>
11809
11810         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11811         the sender by setting to NULL
11812
11813 2003-01-26  Havoc Pennington  <hp@pobox.com>
11814
11815         The unit tests pass, but otherwise untested.  If it breaks, the
11816         tests should have been better. ;-)
11817
11818         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11819         the connection.
11820
11821         * dbus/dbus-message.c: redo everything so we maintain
11822         message->header as the only copy of the various fields.
11823         This avoids the possibility of out-of-memory in some cases,
11824         for example dbus_message_lock() can't run out of memory anymore,
11825         and avoids extra copying. Figured I may as well go ahead and do
11826         this since it was busted for dbus_message_lock to not return
11827         failure on OOM, and dbus_message_write_header was totally
11828         unchecked for OOM. Also fixed some random other bugs.
11829
11830         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11831         that strings are nul-terminated. Also, end_pos can be equal
11832         to string length just not greater than, I think.
11833         (_dbus_marshal_set_int32): new function
11834         (_dbus_marshal_set_uint32): new function
11835         (_dbus_marshal_set_string): new function
11836
11837         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11838         a warning, init timeout_list to NULL
11839         (dbus_connection_send_message): don't use uninitialized variable
11840         "serial"
11841
11842         * dbus/dbus-string.c (_dbus_string_replace_len): new function
11843
11844 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11845
11846         * bus/driver.c: (bus_driver_handle_hello),
11847         (bus_driver_send_welcome_message):
11848         Plug leaks
11849
11850 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11851
11852         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11853         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11854         (dbus_connection_unref):
11855         * dbus/dbus-marshal.c: (_dbus_marshal_test):
11856         * dbus/dbus-message.c: (dbus_message_unref),
11857         Plug memory leaks.
11858
11859         (dbus_message_get_fields):
11860         Remove debugging printout.
11861
11862         (_dbus_message_loader_return_buffer):
11863         Don't store the header string.
11864
11865         (_dbus_message_test):
11866         Plug leaks.
11867
11868 2003-01-26  Richard Hult  <rhult@codefactory.se>
11869
11870         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11871         the file descriptor list, since it can change under us.
11872
11873 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11874
11875         * glib/dbus-gmain.c: (dbus_connection_prepare),
11876         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11877         (remove_watch), (dbus_connection_hookup_with_g_main):
11878         Rewrite the glib handling to use its own GSource instead of a
11879         GIOChannel so we can catch messages put in the queue while waiting
11880         for a reply.
11881
11882 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11883
11884         * bus/Makefile.am:
11885         * bus/connection.c: (connection_disconnect_handler),
11886         (connection_watch_callback), (bus_connection_setup):
11887         * bus/dispatch.c: (send_one_message),
11888         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11889         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11890         * bus/dispatch.h:
11891         * bus/driver.c: (bus_driver_send_service_deleted),
11892         (bus_driver_send_service_created), (bus_driver_handle_hello),
11893         (bus_driver_send_welcome_message),
11894         (bus_driver_handle_list_services), (bus_driver_remove_connection),
11895         (bus_driver_handle_message):
11896         * bus/driver.h:
11897         Refactor code, put the message dispatching in its own file. Use
11898         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11899         is disconnected.
11900
11901 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11902
11903         * dbus/dbus-internals.h:
11904         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11905
11906         * dbus/dbus-message.c: (dbus_message_get_sender):
11907         * dbus/dbus-message.h:
11908         Implement dbus_message_get_sender.
11909
11910         * dbus/dbus-protocol.h:
11911         Add message and service defines.
11912
11913 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11914
11915         * dbus/dbus-connection.c: (dbus_connection_send_message):
11916         * dbus/dbus-message-internal.h:
11917         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11918         (dbus_message_write_header):
11919         Remove _dbus_messag_unlock and don't set the client serial on a
11920         message if one already exists.
11921
11922 2003-01-24  Havoc Pennington  <hp@pobox.com>
11923
11924         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
11925         list_pool
11926
11927         * bus/driver.c (bus_driver_handle_list_services): fix a leak
11928         on OOM
11929
11930 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11931
11932         * dbus/dbus-list.c: (alloc_link), (free_link):
11933         Use a memory pool for the links.
11934
11935 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11936
11937         * bus/connection.c: (bus_connection_foreach):
11938         * bus/connection.h:
11939         Add new bus_connection_foreach function.
11940
11941         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
11942         Add function that broadcasts a message to all clients.
11943
11944         (bus_driver_send_service_created), (bus_driver_handle_hello),
11945         (bus_driver_send_welcome_message),
11946         (bus_driver_handle_list_services), (bus_driver_message_handler):
11947         Implement functions that take care of listing services, and notifying
11948         clients when new services are created.
11949
11950         * bus/services.c: (bus_services_list):
11951         * bus/services.h:
11952         Add new function that returns an array of strings with the currently
11953         registered services.
11954
11955         * glib/dbus-glib.h:
11956         * glib/dbus-gmain.c:
11957         Update copyright year.
11958
11959 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11960
11961         * dbus/dbus-connection.c: (dbus_connection_send_message):
11962         Unlock the message in case it was sent earlier.
11963
11964         (dbus_connection_send_message_with_reply_and_block):
11965         Remove the reply message from the list.
11966
11967         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11968         Set array_len and new_pos correctly.
11969
11970         (_dbus_marshal_test):
11971         Remove debug output.
11972
11973         * dbus/dbus-message-internal.h:
11974         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
11975         New function that returns the reply serial.
11976
11977         (_dbus_message_unlock):
11978         New function that unlocks a message and resets its header.
11979
11980         (dbus_message_append_string_array),
11981         (dbus_message_get_fields_valist),
11982         (dbus_message_iter_get_field_type),
11983         (dbus_message_iter_get_string_array),
11984         (dbus_message_get_fields),
11985         (dbus_message_append_fields_valist):
11986         Handle string arrays.
11987
11988         (dbus_message_set_sender):
11989         Make this function public since the bus daemon needs it.
11990
11991         (decode_header_data):
11992         Set the reply serial to -1 initially.
11993
11994         * dbus/dbus-message.h:
11995         Add dbus_message_set_sender.
11996
11997 2003-01-24  Havoc Pennington  <hp@pobox.com>
11998
11999         * doc/dbus-specification.sgml: add some stuff
12000
12001 2003-01-22  Havoc Pennington  <hp@pobox.com>
12002
12003         * doc/dbus-specification.sgml: Start to document the protocol.
12004
12005 2003-01-22  Havoc Pennington  <hp@pobox.com>
12006
12007         * dbus/dbus-connection.c
12008         (dbus_connection_send_message_with_reply_and_block): add some @todo
12009
12010         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12011
12012 2003-01-21  Havoc Pennington  <hp@pobox.com>
12013
12014         (patch untested because can't compile)
12015
12016         * bus/driver.c (create_unique_client_name): make this function
12017         never recycle client names. Also, caller should initialize
12018         the DBusString.
12019
12020         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12021
12022 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12023
12024         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12025         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12026         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12027         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12028         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12029         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12030         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12031         * dbus/dbus-marshal.h:
12032         * dbus/dbus-protocol.h:
12033         Add support for marshalling and demarshalling integer, double
12034         and string arrays.
12035
12036 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12037
12038         * bus/Makefile.am:
12039         Add driver.[ch]
12040
12041         * bus/connection.c: (connection_disconnect_handler):
12042         Remove the connection from the bus driver's list.
12043
12044         (connection_watch_callback): Dispatch messages.
12045
12046         (free_connection_data): Free connection name.
12047
12048         (bus_connection_setup): Add connection to the bus driver's list.
12049         (bus_connection_remove_owned_service):
12050         (bus_connection_set_name), (bus_connection_get_name):
12051         Add functions for setting and getting the connection's name.
12052
12053         * bus/connection.h:
12054         Add function headers.
12055
12056         * bus/driver.c: (create_unique_client_name),
12057         (bus_driver_handle_hello_message),
12058         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12059         (bus_driver_add_connection), (bus_driver_remove_connection):
12060         * bus/driver.h:
12061         * bus/main.c:
12062         * bus/services.c: (bus_service_free):
12063         * bus/services.h:
12064         New file that handles communication and registreation with the bus
12065         itself.
12066
12067 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12068
12069         * dbus/dbus-connection.c: (dbus_connection_send_message):
12070         Add a new client_serial parameter.
12071
12072         (dbus_connection_send_message_with_reply):
12073         Remove a @todo since we've implemented the blocking function.
12074
12075         (dbus_connection_send_message_with_reply_and_block):
12076         New function that sends a message and waits for a reply and
12077         then returns the reply.
12078
12079         * dbus/dbus-connection.h:
12080         Add new functions.
12081
12082         * dbus/dbus-errors.c: (dbus_result_to_string):
12083         * dbus/dbus-errors.h:
12084         Add new DBUS_RESULT.
12085
12086         * dbus/dbus-message-internal.h:
12087         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12088         (_dbus_message_set_sender), (dbus_message_write_header),
12089         (dbus_message_new_reply), (decode_header_data),
12090         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12091         * dbus/dbus-message.h:
12092         Add new functions that set the reply serial and sender.
12093         Also marshal and demarshal them correctly and add test.
12094
12095         * dbus/dbus-protocol.h:
12096         Add new DBUS_MESSAGE_TYPE_SENDER.
12097
12098         * glib/dbus-glib.h:
12099         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12100         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12101         (dbus_connection_hookup_with_g_main):
12102         * glib/test-dbus-glib.c: (main):
12103         Rewrite to use GIOChannel and remove the GSource crack.
12104
12105         * test/echo-client.c: (main):
12106         * test/watch.c: (check_messages):
12107         Update for changed APIs
12108
12109 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12110
12111         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12112
12113         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12114         Create a DBusTimeoutList.
12115         (dbus_connection_set_timeout_functions): Add new function to
12116         set timeout callbacks
12117
12118         * dbus/dbus-connection.h: Add public DBusTimeout API.
12119
12120         * dbus/dbus-message.c: (dbus_message_get_service):
12121         * dbus/dbus-message.h:  New function.
12122
12123         * dbus/dbus-server.c: Fix small doc typo.
12124
12125         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12126
12127 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12128
12129         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12130         of the string, just as long as specified.
12131
12132 2003-01-19  Havoc Pennington  <hp@pobox.com>
12133
12134         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12135         new function
12136
12137         * dbus/dbus-server.c (dbus_server_set_max_connections)
12138         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12139         keep track of current number of connections, and add API for
12140         setting a max (but haven't implemented enforcing the max yet)
12141
12142 2003-01-18  Havoc Pennington  <hp@pobox.com>
12143
12144         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12145         reading/writing if read_watch != NULL or write_watch != NULL.
12146
12147         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12148         the message loader code to actually load message->header and
12149         message->body into the newly-created message.
12150
12151         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12152         in OOM case
12153
12154         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12155         (dbus_connection_get_max_message_size)
12156         (dbus_connection_set_max_live_messages_size)
12157         (dbus_connection_get_max_live_messages_size): implement some
12158         resource limitation functions
12159
12160         * dbus/dbus-resources.c: new file implementing some of the
12161         resource limits stuff
12162
12163         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12164         missing docs, add @todo to handle OOM etc.
12165
12166         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12167         docs
12168
12169 2003-01-18  Havoc Pennington  <hp@pobox.com>
12170
12171         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12172         connection if it hasn't been already.
12173
12174         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12175         replace with DisconnectFunction.
12176
12177 2003-01-18  Havoc Pennington  <hp@pobox.com>
12178
12179         Building --disable-verbose-mode --disable-asserts --disable-tests
12180         cuts the library from 112K to 45K or so
12181
12182         * configure.in: check for varargs macro support,
12183         add --enable-verbose-mode, --enable-asserts.
12184
12185         * dbus/dbus-internals.h (_dbus_assert): support
12186         DBUS_DISABLE_ASSERT
12187         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12188
12189 2003-01-18  Havoc Pennington  <hp@pobox.com>
12190
12191         * dbus/dbus-test.c: include config.h so that tests actually run
12192
12193         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12194         so the failure mode when that assumption fails will be plenty
12195         obvious.
12196
12197 2003-01-18  Havoc Pennington  <hp@pobox.com>
12198
12199         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12200
12201         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12202         the distribution
12203
12204         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12205         since we don't want to use those in make check
12206
12207 2003-01-15  Havoc Pennington  <hp@redhat.com>
12208
12209         Release 0.2
12210
12211         * NEWS: update
12212
12213 2003-01-15  Havoc Pennington  <hp@redhat.com>
12214
12215         * test/Makefile.am: fix so that test source code ends up in the
12216         distribution on make distcheck
12217
12218 2003-01-15  Havoc Pennington  <hp@redhat.com>
12219
12220         Release 0.1.
12221
12222         * NEWS: update
12223
12224 2003-01-15  Havoc Pennington  <hp@redhat.com>
12225
12226         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12227         fix build when --disable-tests
12228
12229         * Makefile.am (EXTRA_DIST): put HACKING in here
12230
12231         * HACKING: document procedure for making a tarball release.
12232
12233 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12234
12235         * bus/connection.c: (connection_error_handler),
12236         (bus_connection_setup):
12237         * bus/main.c: (main):
12238         Make sure that the DBusConnectionData struct is NULLed
12239         out to prevent a segfault.
12240
12241         * dbus/dbus-errors.c: (dbus_result_to_string):
12242         * dbus/dbus-errors.h:
12243         * dbus/dbus-message.c: (dbus_message_get_fields),
12244         (dbus_message_get_fields_valist), (_dbus_message_test):
12245         * dbus/dbus-message.h:
12246         Make dbus_message_get_fields return a result code so we can
12247         track invalid fields as well as oom.
12248
12249 2003-01-11  Havoc Pennington  <hp@pobox.com>
12250
12251         * configure.in: change --enable-test/--enable-ansi action-if-given
12252         to enable_foo=$enableval instead of enable_foo=yes
12253
12254 2003-01-08  Havoc Pennington  <hp@pobox.com>
12255
12256         * dbus/dbus-string.c (_dbus_string_align_length): new function
12257
12258         * dbus/dbus-test-main.c: move main() for test app here
12259         * dbus/dbus-test.c
12260         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12261         symbol to run tests, because dbus-test isn't in the main
12262         library
12263
12264         Code review nitpicks.
12265
12266         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12267         for people with narrow emacs ;-). Assert client_serial was filled
12268         in. Assert message->name != NULL.
12269         (dbus_message_append_fields): have "first_field_type" arg separate
12270         from va list, needed for C++ binding that also uses varargs IIRC
12271         and helps with type safety
12272         (dbus_message_new): add @todo about using DBusString to store
12273         service/name internally
12274         (dbus_message_new): don't leak ->service and ->name on OOM later
12275         in the function
12276         (dbus_message_unref): free the service name
12277         (dbus_message_get_fields): same change to varargs
12278         i.e. first_field_type
12279         (_dbus_message_loader_return_buffer): assert that the message data
12280         is aligned (if not it's a bug in our code). Put in verbose griping
12281         about why we set corrupted = TRUE.
12282         (decode_header_data): add FIXME that char* is evil.  Was going to
12283         add FIXME about evil locale-specific string.h strncmp, but just
12284         switched to wacky string-as-uint32 optimization. Move check for
12285         "no room for field name" above get_const_data_len() to avoid
12286         assertion failure in get_const_data_len if we have trailing 2
12287         bytes or the like. Check for service and name fields being
12288         provided twice. Don't leak service/name on error. Require field
12289         names to be aligned to 4 bytes.
12290
12291         * dbus/dbus-marshal.c: move byte swap stuff to header
12292         (_dbus_pack_int32): uscore-prefix
12293         (_dbus_unpack_int32): uscore-prefix
12294         (_dbus_unpack_uint32): export
12295         (_dbus_demarshal_string): add @todo complaining about use of
12296         memcpy()
12297         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12298         handling allowing corrupt data to go unchecked
12299
12300 2003-01-08  Havoc Pennington  <hp@redhat.com>
12301
12302         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12303         to the select() as needed for authentication. (should be using
12304         _dbus_poll() not select, but for another day)
12305
12306         * dbus/dbus.h: include dbus/dbus-protocol.h
12307
12308 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12309
12310         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12311         dbus-connection.h
12312
12313 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12314
12315         * dbus/dbus-internals.c: (_dbus_type_to_string):
12316         New function that returns a string describing a type.
12317
12318         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12319         * dbus/dbus-marshal.h:
12320         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12321         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12322         (dbus_message_iter_get_byte_array):
12323         * dbus/dbus-message.h:
12324         Add new convenience functions for appending and getting message fields.
12325         Also add demarshalling routines for byte arrays.
12326
12327 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12328
12329         * dbus/dbus-connection-internal.h:
12330         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12331         (_dbus_connection_get_next_client_serial),
12332         (dbus_connection_send_message):
12333         * dbus/dbus-internals.h:
12334         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12335         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12336         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12337         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12338         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12339         (_dbus_verbose_bytes), (_dbus_marshal_test):
12340         * dbus/dbus-marshal.h:
12341         * dbus/dbus-message-internal.h:
12342         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12343         (dbus_message_write_header), (_dbus_message_lock),
12344         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12345         (dbus_message_get_name), (dbus_message_append_int32),
12346         (dbus_message_append_uint32), (dbus_message_append_double),
12347         (dbus_message_append_string), (dbus_message_append_byte_array),
12348         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12349         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12350         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12351         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12352         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12353         (decode_header_data), (_dbus_message_loader_return_buffer),
12354         (message_iter_test), (_dbus_message_test):
12355         * dbus/dbus-message.h:
12356         * dbus/dbus-protocol.h:
12357         * dbus/dbus-test.c: (main):
12358         * dbus/dbus-test.h:
12359         * glib/test-dbus-glib.c: (message_handler), (main):
12360         * test/echo-client.c: (main):
12361         * test/watch.c: (check_messages):
12362         Make messages sendable and receivable for real.
12363
12364 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12365
12366         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12367         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12368         * dbus/dbus-message.c: (dbus_message_append_int32),
12369         (dbus_message_append_uint32), (dbus_message_append_double),
12370         (dbus_message_append_string), (dbus_message_append_byte_array):
12371         Handle OOM restoration.
12372
12373 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12374
12375         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12376         (_dbus_demarshal_string), (_dbus_marshal_test):
12377         * dbus/dbus-marshal.h:
12378         * dbus/dbus-message.c: (dbus_message_get_name),
12379         Document these functions.
12380
12381         (dbus_message_append_int32), (dbus_message_append_uint32),
12382         (dbus_message_append_double), (dbus_message_append_string),
12383         (dbus_message_append_byte_array):
12384         * dbus/dbus-message.h:
12385         Add functions for adding message fields of different types.
12386
12387         * dbus/dbus-protocol.h:
12388         Add the different types.
12389
12390 2003-01-05  Havoc Pennington  <hp@pobox.com>
12391
12392         * bus/connection.c: implement routines for handling connections,
12393         first thing is keeping a list of owned services on each connection
12394         and setting up watches etc.
12395
12396         * bus/services.c: implement a mapping from service names to lists
12397         of connections
12398
12399         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12400
12401         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12402         to use static mutexes for global data
12403
12404         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12405         collection of functions to set/get application-specific data
12406         on the DBusConnection.
12407
12408 2003-01-04  Havoc Pennington  <hp@pobox.com>
12409
12410         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12411         (_dbus_poll): new function
12412
12413         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12414         copied from GLib
12415
12416         * bus/loop.c: initial code for the daemon main loop
12417
12418 2003-01-04  Havoc Pennington  <hp@pobox.com>
12419
12420         * test/watch.c (error_handler): make it safe if the error handler
12421         is called multiple times (if we s/error handler/disconnect
12422         handler/ we should just guarantee it's called only once)
12423
12424         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12425         error handler on disconnect (it's quite possible we should
12426         just change the error handler to a "disconnect handler," I'm
12427         not sure we have any other meaningful errors)
12428
12429         * configure.in: check for getpwnam_r
12430
12431         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12432         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12433         mechanism as in SASL spec, using socket credentials
12434
12435         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12436         (_dbus_send_credentials_unix_socket): new function
12437
12438         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12439         dbus_accept()
12440         (_dbus_write): only check errno if <0 returned
12441         (_dbus_write_two): ditto
12442
12443 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12444
12445         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12446         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12447         (_dbus_marshal_test):
12448         * dbus/dbus-marshal.h:
12449         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12450         to _dbus_marshal_utf8_string. Also fix some tests.
12451
12452 2002-12-28  Harri Porten  <porten@kde.org>
12453
12454         * configure.in: added check for C++ compiler and a very cheesy
12455         check for the Qt integration
12456
12457         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12458
12459         * qt/Makefile.am: added
12460
12461         * qt/.cvsignore: added
12462
12463         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12464         latter, added #ifdef QT_THREAD_SUPPORT guard.
12465
12466         * dbus/Makefile.am: added missing headers for make dist
12467
12468 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12469
12470         * dbus/Makefile.am: fixup export-symbols-regex.
12471
12472 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12473
12474         * acinclude.m4: Add this file and put the
12475         PKG_CHECK_MODULE macro in it.
12476
12477 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12478
12479         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12480         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12481         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12482         (_dbus_marshal_test):
12483         Make the demarshalling routines align the pos argument.
12484         Add string marshalling tests and fix the obvious bugs
12485         discovered.
12486
12487 2002-12-26  Havoc Pennington  <hp@pobox.com>
12488
12489         * dbus/dbus-auth.c: fixes fixes fixes
12490
12491         * dbus/dbus-transport-unix.c: wire up support for
12492         encoding/decoding data on the wire
12493
12494         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12495         (_dbus_auth_decode_data): append to target string
12496         instead of nuking it.
12497
12498 2002-12-26  Havoc Pennington  <hp@pobox.com>
12499
12500         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12501         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12502         doh
12503
12504         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12505         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12506         now). Main point is because I wanted unpack_uint32 to implement
12507         _dbus_verbose_bytes
12508         (_dbus_verbose_bytes): new function
12509
12510         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12511
12512         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12513         mechanism to handle a corrupt message stream
12514         (_dbus_message_loader_new): fix preallocation to only prealloc,
12515         not prelengthen
12516
12517         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12518         (_dbus_string_test): enhance tests for copy/move and fix the
12519         functions
12520
12521         * dbus/dbus-transport-unix.c: Hold references in more places to
12522         avoid reentrancy problems
12523
12524         * dbus/dbus-transport.c: ditto
12525
12526         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12527         leak reference count in no-message case
12528
12529         * test/watch.c (do_mainloop): handle adding/removing watches
12530         during iteration over the watches. Also, ref the connection/server
12531         stored on a watch, so we don't try to mangle a destroyed one.
12532
12533         * dbus/dbus-transport-unix.c (do_authentication): perform
12534         authentication
12535
12536         * dbus/dbus-auth.c (get_state): add a state
12537         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12538         (_dbus_auth_get_unused_bytes): append the unused bytes
12539         to the passed in string, rather than prepend
12540
12541         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12542         the auth conversation DBusAuth
12543
12544         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12545         (_dbus_transport_new_for_domain_socket): when creating a
12546         transport, pass in whether it's a client-side or server-side
12547         transport so we know which DBusAuth to create
12548
12549 2002-12-03  Havoc Pennington  <hp@pobox.com>
12550
12551         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12552         _after_ finalizing the derived members
12553         (unix_connection_set): unref watch if we fail to add it
12554
12555         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12556         transport first, so that the connection owned by the
12557         transport will be valid as the transport finalizes.
12558
12559         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12560         if necessary, and remove watches from the connection.
12561
12562         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12563
12564 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12565
12566         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12567         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12568         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12569         (_dbus_marshal_test):
12570         * dbus/dbus-marshal.h:
12571         Add string marshal functions and have the demarshal functions
12572         return the new position.
12573
12574 2002-12-25  Havoc Pennington  <hp@pobox.com>
12575
12576         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12577         it is a simple protocol that just maps directly to SASL.
12578
12579         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12580         initial implementation, not actually used yet.
12581
12582         * dbus/dbus-string.c (_dbus_string_find): new function
12583         (_dbus_string_equal): new function
12584         (_dbus_string_base64_encode): new function
12585         (_dbus_string_base64_decode): new function
12586
12587 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12588
12589         * dbus/Makefile.am:
12590         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12591         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12592         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12593         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12594         * dbus/dbus-marshal.h:
12595         * dbus/dbus-protocol.h:
12596         * dbus/dbus-test.c: (main):
12597         * dbus/dbus-test.h:
12598         Add un-optimized marshalling/demarshalling routines.
12599
12600 2002-12-25  Harri Porten  <porten@kde.org>
12601
12602         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12603
12604 2002-12-24  Zack Rusin  <zack@kde.org>
12605
12606         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12607         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12608         main loop stuff
12609
12610 2002-12-24  Havoc Pennington  <hp@pobox.com>
12611
12612         * glib/dbus-gthread.c: fix include
12613
12614         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12615         I think glib API needs to change, though, as you don't
12616         want to use DBusMessageFunction, you want to use the
12617         DBusMessageHandler object. Probably
12618         dbus_connection_open_with_g_main_loop()
12619         and dbus_connection_setup_g_main_loop() or something like that
12620         (but think of better names...) that just create a connection
12621         that has watch/timeout functions etc. already set up.
12622
12623         * dbus/dbus-connection.c
12624         (dbus_connection_send_message_with_reply): new function just to
12625         show how the message handler helps us deal with replies.
12626
12627         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12628
12629         * dbus/dbus-string.c (_dbus_string_test): free a string that
12630         wasn't
12631
12632         * dbus/dbus-hash.c: use memory pools for the hash entries
12633         (rebuild_table): be more paranoid about overflow, and
12634         shrink table when we can
12635         (_dbus_hash_test): reduce number of sprintfs and write
12636         valid C89. Add tests for case where we grow and then
12637         shrink the hash table.
12638
12639         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12640
12641         * dbus/dbus-connection.c (dbus_connection_register_handler)
12642         (dbus_connection_unregister_handler): new functions
12643
12644         * dbus/dbus-message.c (dbus_message_get_name): new
12645
12646         * dbus/dbus-list.c: fix docs typo
12647
12648         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12649         an object representing a handler for messages.
12650
12651 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12652
12653         * glib/dbus-glib.h:
12654         * glib/dbus-gthread.c: (dbus_gthread_init):
12655         Don't use the gdbus prefix for public functions.
12656
12657 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12658
12659         * Makefile.am:
12660         * configure.in:
12661         Add GLib checks and fixup .pc files
12662
12663         * glib/Makefile.am:
12664         * glib/dbus-glib.h:
12665         * glib/dbus-gmain.c: (gdbus_connection_prepare),
12666         (gdbus_connection_check), (gdbus_connection_dispatch),
12667         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12668         (dbus_connection_gsource_new):
12669         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12670         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12671         * glib/test-dbus-glib.c: (message_handler), (main):
12672         Add GLib support.
12673
12674 2002-12-15  Harri Porten  <porten@kde.org>
12675
12676         * autogen.sh: check for libtoolize before attempting to use it
12677
12678         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12679         struct.
12680
12681         * .cvsignore: ignore more stamp files
12682
12683         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12684
12685         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12686         without make install.
12687
12688 2002-12-15  Havoc Pennington  <hp@pobox.com>
12689
12690         * dbus/dbus-threads.c: add thread stubs that a higher library
12691         layer can fill in. e.g. the GLib wrapper might fill them in with
12692         GThread stuff. We still need to use this thread API to
12693         thread-safe-ize the library.
12694
12695 2002-12-12  Havoc Pennington  <hp@pobox.com>
12696
12697         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12698         below new interfaces and include fewer system headers.
12699
12700         * dbus/dbus-sysdeps.c (_dbus_read): new function
12701         (_dbus_write): new function
12702         (_dbus_write_two): new function
12703         (_dbus_connect_unix_socket): new function
12704         (_dbus_listen_unix_socket): new function
12705
12706         * dbus/dbus-message-internal.h: change interfaces to use
12707         DBusString
12708
12709 2002-12-11  Havoc Pennington  <hp@pobox.com>
12710
12711         * dbus/dbus-types.h: add dbus_unichar
12712
12713         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12714
12715         * dbus/dbus-connection.c (dbus_connection_send_message): return
12716         TRUE on success
12717
12718         * dbus/dbus-transport.c: include dbus-watch.h
12719
12720         * dbus/dbus-connection.c: include dbus-message-internal.h
12721
12722         * HACKING: add file with coding guidelines stuff.
12723
12724         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12725         handling here, for security purposes (as in vsftpd). Not actually
12726         using this class yet.
12727
12728         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12729         system/libc usage here, as in vsftpd, for ease of auditing (and
12730         should also simplify portability). Haven't actually moved all the
12731         system/libc usage into here yet.
12732
12733 2002-11-25  Havoc Pennington  <hp@pobox.com>
12734
12735         * dbus/dbus-internals.c (_dbus_verbose): fix to not
12736         always print the first verbose message.
12737
12738 2002-11-24  Havoc Pennington  <hp@pobox.com>
12739
12740         * test/echo-client.c, test/echo-server.c: cheesy test
12741         clients.
12742
12743         * configure.in (AC_CHECK_FUNCS): check for writev
12744
12745         * dbus/dbus-message.c (_dbus_message_get_network_data): new
12746         function
12747
12748         * dbus/dbus-list.c (_dbus_list_foreach): new function
12749
12750         * dbus/dbus-internals.c (_dbus_verbose): new function
12751
12752         * dbus/dbus-server.c, dbus/dbus-server.h: public object
12753         representing a server that listens for connections.
12754
12755         * dbus/.cvsignore: create
12756
12757         * dbus/dbus-errors.h, dbus/dbus-errors.c:
12758         public API for reporting errors
12759
12760         * dbus/dbus-connection.h, dbus/dbus-connection.c:
12761         public object representing a connection that
12762         sends/receives messages. (Same object used for
12763         both client and server.)
12764
12765         * dbus/dbus-transport.h, dbus/dbus-transport.c:
12766         Basic abstraction for different kinds of stream
12767         that we might read/write messages from.
12768
12769 2002-11-23  Havoc Pennington  <hp@pobox.com>
12770
12771         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12772         _DBUS_INT_MAX
12773
12774         * dbus/dbus-test.c (main): add list test, and include
12775         dbus-test.h as intended
12776
12777         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12778         (_dbus_hash_table_remove_int): return value indicates
12779         whether the entry existed to remove
12780
12781         * dbus/dbus-list.c: add linked list utility class,
12782         with docs and tests
12783
12784         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12785         array sometimes.
12786
12787 2002-11-23  Havoc Pennington  <hp@pobox.com>
12788
12789         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12790         DBUS_END_DECLS to nothing, that should fix this once and for all
12791
12792         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12793
12794         * dbus/dbus-message.c, dbus/dbus-hash.c:
12795         add some missing @brief
12796
12797 2002-11-23  Havoc Pennington  <hp@pobox.com>
12798
12799         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12800         to avoid confusing Doxygen
12801
12802         * dbus/dbus-hash.c: @} not }@
12803
12804         * dbus/dbus-message.c (struct DBusMessage): split out
12805         internals docs
12806
12807 2002-11-23  Havoc Pennington  <hp@pobox.com>
12808
12809         * configure.in: pile on more warning flags if using gcc
12810
12811         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12812         to document static functions
12813
12814         * configure.in: add summary to end of configure so it
12815         looks nice and attractive
12816
12817         * dbus/dbus-hash.c: finish implementation and write unit
12818         tests and docs
12819
12820         * configure.in: add --enable-tests to enable unit tests
12821
12822         * dbus/dbus-test.c: test program to run unit tests
12823         for all files in dbus/*, initially runs a test for
12824         dbus-hash.c
12825
12826         * dbus/dbus-internals.h: file to hold some internal utility stuff
12827
12828 2002-11-22  Havoc Pennington  <hp@redhat.com>
12829
12830         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12831         "ported" away from Tcl
12832
12833         * dbus/dbus-types.h: header for types such as dbus_bool_t
12834
12835 2002-11-22  Havoc Pennington  <hp@redhat.com>
12836
12837         * dbus/dbus.h: fixups for doc warnings
12838
12839         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12840         macros
12841         (QUIET): make it quiet so we can see warnings
12842
12843         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12844
12845 2002-11-22  Havoc Pennington  <hp@redhat.com>
12846
12847         * Makefile.am: include "Doxyfile" target in all-local
12848
12849         * configure.in: generate the Doxyfile
12850
12851         * Doxyfile.in: move Doxyfile here, so we can use
12852         configure to generate a Doxyfile with the right
12853         version number etc.
12854
12855 2002-11-22  Havoc Pennington  <hp@redhat.com>
12856
12857         * dbus/dbus-message.c: move inline docs into .c file
12858
12859         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12860         so all docs are under doc/
12861         (MAN_EXTENSION): generate man pages. Use extension
12862         ".3dbus" which matches ".3qt" on my system,
12863         I guess this is OK, I don't know really.
12864         (FILE_PATTERNS): look for .c files not .h, makes sense
12865         for plain C I think
12866
12867 2002-11-22  Havoc Pennington  <hp@pobox.com>
12868
12869         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12870         because any app can be a server, and any app can be a client,
12871         the bus is a special kind of server.
12872
12873 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
12874
12875         * Doxyfile : adding. Still needs Makefile rules to be generated
12876         automatically (just run "doxygen" in the toplevel dir for now to
12877         generate docs)
12878
12879         * dbus/dbus-message.h : Adding sample docs (javadoc since
12880         resembles gtk-doc a little more)
12881
12882         * dbus/dbus.h : Adding sample docs
12883
12884 2002-11-21  Havoc Pennington  <hp@redhat.com>
12885
12886         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12887         so we can allow ourselves to include files directly,
12888         instead of having to use dbus.h
12889
12890         * dbus/dbus.h: fill in
12891
12892         * dbus/dbus-message.h: sketch out a sample header file.
12893         Include griping if you include it directly instead of
12894         via dbus.h
12895
12896         * dbus/dbus-macros.h: new file with macros for extern "C",
12897         TRUE/FALSE, NULL, etc.
12898
12899         * doc/file-boilerplate.c: put include guards in here
12900
12901 2002-11-21  Havoc Pennington  <hp@redhat.com>
12902
12903         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12904
12905         * COPYING: include the GPL as well, and license code
12906         under both AFL and GPL.
12907
12908 2002-11-21  Havoc Pennington  <hp@redhat.com>
12909
12910         * acconfig.h: get rid of this
12911
12912         * autogen.sh (run_configure): add --no-configure option
12913
12914         * configure.in: remove AC_ARG_PROGRAM to make
12915         autoconf complain less. add AC_PREREQ.
12916         add AC_DEFINE third arg.
12917
12918 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
12919
12920         * doc/Makefile.am:
12921         Fix references so we can distcheck.
12922
12923 2002-11-21  Havoc Pennington  <hp@redhat.com>
12924
12925         * Initial module creation
12926