* bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
[platform/upstream/dbus.git] / ChangeLog
1 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2
3         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
4         empty reply so blocking calls don't block forever (Patch from Sjoerd 
5         Simons <sjoerd at luon.net>)
6
7         * AUTHORS: Add Robert McQueen for his work on the Python
8         Bindings and other parts of D-Bus
9
10 2005-11-07  Robert McQueen  <robot101@debian.org>
11
12         * python/decorators.py: Change emit_signal function to use the
13         signature annotation of the signal when marhsalling the arguments from
14         the service. Fix a bug where the code checking signature length
15         against argument length referenced the wrong variable.
16
17         * python/introspect_parser.py: Avoid adding the type signature of
18         signal arguments to any methods which occur after them in the
19         introspection data (!) by making the parser a little more careful
20         about its current state.
21
22         * python/service.py: Remove debug prints from last commit (again :D).
23
24         * test/python/test-client.py, test/python/test-service.py: Add test
25         signals with signature decorators to test the strict marshalling code
26         gives errors at the right time. Could do with checking the signals
27         actually get emitted too, given that the test does nothing with
28         signals at the moment...
29
30 2005-11-07  Robert McQueen  <robot101@debian.org>
31
32         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
33         instances to stop madness of creating new instances representing
34         the same bus connection all the time, rendering any tracking of
35         match rules and bus names quite meaningless. Caught a bug where
36         the private argument to SessionBus() and friends was being passed
37         in as use_default_mainloop by mistake. Still some problems with
38         multiple dbus_binding.Connection instances representing the same
39         low-level connection (eg when you use both SessionBus() and
40         StarterBus() in same process), but it's a lot better now than it
41         was.
42
43         * python/dbus_bindings.pyx: Add constants with the return values
44         for bus_request_name().
45
46         * python/service.py: Store bus name instances in a per-dbus.Bus cache
47         and retrieve the same instances for the same name, so deletion can be
48         done with refcounting. Also now throws some kind of error if you
49         don't actually get the name you requested, unlike previously...
50
51         * test/python/test-client.py: Add tests for instance caching of buses
52         and bus name objects.
53
54 2005-11-04  Robert McQueen  <robot101@debian.org>
55
56         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
57         marshalling of boolean values. Add some booleans to the values in
58         the test client.
59
60         * python/decorators.py, python/service.py: Add an 'async_callbacks'
61         argument to the dbus.service.method decorator, which allows you to
62         name arguments to take two callback functions for replying with
63         return values or an exception.
64
65         * test/python/test-client.py, test/python/test-service.py: Add test
66         case using asynchronous method reply functions, both return values and
67         errors, and from within both the function itself and from a mainloop
68         callback.
69
70         * python/decorators.py, python/service.py: Perform checking that the
71         number of method/signal arguments matches the number of types in the
72         signature at class loading time, not when you first introspect the
73         class.
74
75         * python/service.py: Remove debug print left by the last commit.
76
77 2005-11-03  Robert McQueen  <robot101@debian.org>
78
79         * python/service.py: Heavy refactoring of method invocation, with
80         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
81         in favour of a new _message_cb that uses seperate functions for
82         looking up the method to call, marshalling the return values, and
83         sending exceptions as errors, and is easier to follow as a
84         consequence.  Fixes some corner cases about returning things that
85         don't match your declared out_signature, allows exceptions to define
86         _dbus_error_name and have it be sent over the bus as the error name,
87         and paves the way for cool stuff like heeding the message no reply
88         flag, asynchronous method implementations, informing the method of the
89         sender, and including backtraces in the error messages.
90
91         * test/python/test-client.py: Catch and print exceptions thrown in the
92         async callback tests, rather than passing them to the low-level
93         bindings to be ignored in a noisy and frustrating manner.
94
95 2005-11-03  Robert McQueen  <robot101@debian.org>
96
97         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
98         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
99         tweak others to be consistent.
100
101         * test/python/test-client.py: Tweak output of testInheritance.
102
103 2005-10-29  Robert McQueen  <robot101@debian.org>
104
105         * python/service.py: Major changes to allow multiple inheritance
106         from classes that define D-Bus interfaces:
107         
108          1. Create a new Interface class which is the parent class of
109             Object, and make the ObjectType metaclass into InterfaceType.
110         
111          2. Patch written with Rob Taylor to replace use of method_vtable
112             with code that walks the class's __MRO__ (method resolution order)
113             to behave like Python does when invoking methods and allow
114             overriding as you'd expect. Code is quite tricky because
115             we have to find two methods, the one to invoke which has the
116             right name and isn't decorated with the /wrong/ interface,
117             and the one to pick up the signatures from which is decorated
118             with the right interface.
119         
120             The same caveats apply as to normal multiple inheritance -
121             this has undefined behaviour if you try and inherit from two
122             classes that define a method with the same name but are
123             decorated with different interfaces. You should decorate
124             your overriding method with the interface you want.
125         
126          3. Replace grungy introspection XML generation code in the metaclass
127             with dictionaries that cope correctly with multiple inheritance
128             and the overriding of methods. This also uses the signature
129             decorations to provide correct introspection data, including
130             the debut appearance of the types of your return values. :D
131
132         * test/python/test-client.py, test/python/test-service.py: Add a test
133         case to try invoking an method that overrides one inherited from a
134         D-Bus interface class.
135
136 2005-10-29  Robert McQueen  <robot101@debian.org>
137
138         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
139         Add checking for the end of struct character when marshalling a
140         struct in MessageIter.append_strict.
141
142         * python/examples/example-service.py,
143         python/examples/gconf-proxy-service.py,
144         python/examples/gconf-proxy-service2.py: Update to use gobject
145         mainloop directly rather than appearing to depend on gtk.
146
147         * python/test/test-client.py, python/test/test-server.py: Remove
148         obsolete and broken test scripts for old bindings. We have up to date
149         and working tests in test/python/.
150
151 2005-10-29  Robert McQueen  <robot101@debian.org>
152
153         * python/decorators.py: Add optional arguments to the method and
154         signal decorators to allow you to specify the signature of arguments
155         and return values. Preserve the doc strings of signal functions in the
156         decorated version, for pydoc and friends.
157
158         * python/dbus_bindings.pyx, python/proxies.py: Replace the
159         parse_signature_block function with an iterable dbus.Signature()
160         type. Fix a bug in MessageIter.append_strict where you could append
161         anything by claiming it was a string.
162
163         * python/service.py: Use the out_signature decoration on methods to
164         marshal return values, meaning you no longer require dbus.Array()
165         or dbus.Dictionary() to indicate the type when returning empty
166         arrays or dictionaries. Fix a bug where exceptions which are defined
167         in __main__ are not turned into error replies.
168
169         * test/python/test-client.py, test/python/test-service.py: Add test
170         for correct marshalling of return values according to out_signature.
171         Fix a bug in the async call test where the error_handler is missing a
172         self argument.
173
174 2005-10-29  Robert McQueen  <robot101@debian.org>
175
176         * glib/Makefile.am, glib/examples/Makefile.am,
177         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
178         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
179
180         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
181
182         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
183         from Ubuntu by Daniel Silverstone to allow specifying match rules on
184         the command line.
185
186 2005-10-27  Ross Burton  <ross@openedhand.com>
187
188         * dbus/dbus-marshal-header.c:
189         Remove dead code.
190
191         * glib/dbus-gobject.c:
192         Stop compiler warning.
193
194 2005-10-25  Ross Burton  <ross@openedhand.com>
195
196         * dbus/dbus-auth.c:
197         * dbus/dbus-server-unix.c:
198         * dbus/dbus-transport-unix.c:
199         * glib/dbus-gmain.c:
200         * glib/dbus-gobject.c:
201         Add some const keywords.
202
203 2005-10-25  Ross Burton  <ross@openedhand.com>
204
205         * doc/dbus-specification.xml:
206         Document the NoReply annotation.
207
208         * glib/dbus-binding-tool-glib.h:
209         * glib/dbus-binding-tool-glib.c:
210         Respect the NoReply annotation.
211
212 2005-10-24  Robert McQueen <robot101@debian.org>
213
214         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
215         derive from unicode instead of str, and encode/decode UTF-8 when
216         marshalling/unmarshalling bus messages
217
218         * python/introspect_parser.py: encode introspection data as UTF-8
219         before passing the buffer into libxml2
220
221         * test/python/test-client.py: add unicode test strings
222
223         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
224         ignore generated python test files
225
226 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
227
228         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
229         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
230         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
231
232         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
233         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
234         when constructing struct signatures
235
236         * python/_dbus.py (Bus): handle private connections using the
237         private keyword in the constructor. defaults to private=False
238         (Bus::close): new method to close a connection to the bus
239
240         * python/dbus_bindings.pyx (Connection::close): renamed method
241         was previously called disconnect
242         (bus_get): now supports getting a private connection
243
244         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
245         keyword is set to True.  if it is, execute the method without waiting
246         for a reply
247         (ProxyObject::_introspect_execute_queue): new method for executing
248         all the pending methods that were waiting for the introspect to
249         finish.  this is called when introspect either succeeds or fails
250         (ProxyObject::_introspect_error_handler): call queued methods
251
252 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
253
254         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
255         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
256
257         * python/service.py (Object::_message_cb): handle exceptions correctly
258         by sending them over the wire to the calling app.  This makes sure
259         the client returns immediately instead of waiting the 15 seconds to
260         timeout.
261
262         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
263         Add a test to benchmark how long it takes to introspect a service and 
264         call a method which returns a large element (pretty fast)
265
266         * test/python/test-service.py (TestObject::GetComplexArray): new test 
267         method which pushes a lot of data
268
269 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
270
271         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
272         reclaim memory outside of the loop and use del istead of just setting
273         the key to None
274
275 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
276
277         * python/service.py (ObjectType::_reflect_on_signal): Always close
278         signal tag even when there are no arguments
279
280 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
281
282         * configure.in: Set mono, mono-docs and Qt3 to default
283         to no instead of auto when building.  These bindings do not
284         have full time maintainers and will not be supported for the
285         1.0 release.
286
287 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
288
289         patches from Michael Krivoruchko <misha at sun.com>: 
290         
291         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
292         _dbus_connection_message_sent, 
293         _dbus_connection_send_preallocated_unlocked_no_update, 
294         _dbus_connection_pop_message_link_unlocked): handle the case when path 
295         is NULL when calling _dbus_verbose
296
297         * configure.in: check for functions getpeerucred and getpeereid
298
299         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
300         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
301         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
302         Patch was only tested on Solaris 10 x86 so it might be issues
303         with other platforms (i.e. BSDs and MacOSX)
304         
305
306 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
307
308         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
309         instead of marshal basic so we can handle recursive types in a variant
310
311         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
312         in variants
313
314         * test/glib/test-service-glib.c, test-service-glib.xml
315         (my_object_echo_variant [EchoVariant], 
316         my_object_process_variant_of_array_of_ints123
317         [ProcessVariantOfArrayOfInts123]): 
318         Add two test methods
319
320         * python/introspect_parser.py: New module for parsing introspect
321         data.
322
323         * python/dbus_bindings.pyx:
324         (various places): when throwing errors fix to use errormsg instead 
325         of message local variable because Pyrex can get confused with other 
326         message variables (initial patch by Robert McQueen 
327         <robert.mcqueen at collabora.co.uk>)
328         (MessageIter::parse_signature_block): new method for getting the next
329         block in a signiture.
330         (MessageIter::append_strict): new method for appending values strictly
331         using the passed in signature instead of guessing at the type
332         (MessageItter:: append_dict, append_struct, append_array): use 
333         signatures to marshal children if the signature is available
334         
335         * python/exceptions.py (IntrospectionParserException): new exception
336
337         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
338         introspected signatures if available, else we fall back to the
339         old way of doing things.
340         (ProxyObject::_introspect_reply_handler ): parse introspection data
341         
342         * python/service.py (ObjectType::_reflect_on_method): Properly
343         terminate <method> if there are no args in the reflection data
344
345         * test/python/test-client.py: add tests for talking with the GLib
346         test server.  This gives us better coverage for introspection since
347         python to python will always generate arguments as variants.  It also
348         allows us to test the robustness of the GLib bindings and interlanguage
349         communications.
350
351         
352 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
353
354         * bus/driver.c (bus_driver_handle_introspect): Add signals
355         to the introspect data. (patch from Daniel P. Berrange 
356         <dan at berrange.com>)
357
358         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
359         
360         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
361         _dbus_connection_run_builtin_filters): Changed these to
362         be unlock_no_update functions and call 
363         _dbus_connection_send_unlocked_no_update instead of
364         dbus_connection_send to avoid locking errors.
365         
366         * doc/TODO: Removed the make Ping test TODO
367         
368 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
369
370         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
371         We now copy the message from a DBusError and then free 
372         the error object befor throwing the error
373
374         * glib/dbus-glib-tool.c: removed extra comma at the end of the
375         DBusBindingOutputMode enum which was causing a warning.
376         #include <time.h> so using time_t is explicitly defined
377
378 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
379
380         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
381         - dbus/dbus-bus.c
382         (internal_bus_get): new method that take over the heavy lifting
383         of dbus_bus_get and adds the ability to get a private connection
384         to the bus
385         (dbus_bus_get): wrapper to internal_bus_get that provides the same
386         interface as in previous versions
387         (dbus_bus_get_private): new method that is a wrapper to 
388         internal_bus_get to get a private connection to the bus
389
390         - dbus/dbus-bus.h
391         (dbus_bus_get_private): add as a public libdbus interface
392
393         - dbus-1.pc.in: output system_bus_default_address and 
394         sysconfdir variables so apps can use them when compiling
395
396 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
397         * dbus/qt: New Qt bindings
398
399 2005-09-12  Waldo Bastian  <bastian@kde.org>
400
401         * dbus/dbus-marshal-validate.c,
402         doc/dbus-specification.xml, test/Makefile.am,
403         test/test-names.c: allow hyphens in bus names.
404
405 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
406
407         * test/data/auth/fallback.auth-script: we don't
408         retry the EXTERNAL method when we know its going
409         to fail anymore.
410
411 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
412
413         * dbus/dbus-connection-internal.h: rename
414         (add|remove|toggle)_(watch|timeout) to unlocked()
415         
416         * dbus/dbus-connection.c: ditto.
417         
418         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
419         Update some callers for the renaming.
420
421 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
422
423         * dbus/dbus-auth.c: (record_mechanisms): don't
424         retry the first auth mechanism because we know
425         we're just going to get rejected again.
426         
427         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
428         Fix thinko ... and what a nasty little bugger to
429         track down you were ...
430
431         * dbus/dbus-connection.c:
432         (_dbus_connection_add_watch),
433         (_dbus_connection_remove_watch): add note about
434         these needing the connection to be locked.
435         (_dbus_connection_get_dispatch_status_unlocked):
436         set status to DATA_REMAINS when we queue the
437         disconnected message.
438         
439         * bus/dispatch.c:
440         (bus_dispatch): fix warning.
441         (check_existent_service_no_auto_start):
442         Expect ChildSignaled error too.
443         (check_existent_hello_from_self): fix another
444         couple of warnings.
445         
446 2005-09-08  Joe Shaw  <joeshaw@novell.com>
447
448         Patches from James Willcox <snorp@snorp.net>
449
450         * mono/Makefile.am: Add Int16.cs and UInt16.cs
451
452         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
453         support array "out" parameters.
454
455         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
456         for 16-bit int support.
457
458 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
459
460         * Released 0.50
461
462         * Patch from Steve Grubb:
463         - bus/activation.c (bus_activation_service_reload_test): clean up
464         some indentation
465         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
466         - dbus/dbus-message-factory.c (generate_special): fix a couple of
467         buffer overflows in the test suite.  This is non critical because
468         it can not be exploited and this code is only run when doing a 
469         make check.
470
471         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
472         - configure.in: Don't check and link against kdecore, only qt headers
473         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
474         - gcj/org/freedesktop/dbus/Makefile.am:
475         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
476         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
477         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
478         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
479         - tools/Makefile.am: Add platform extentions to binaries 
480         (i.e. .exe on windows)
481
482         * configure.in: 
483         - Make it so if no suitable version of python is found we only 
484         disable building python instead of exiting the configure script
485         - Require version 2.4 of glib for glib bindings
486         - Up version to 0.50
487
488         * python/__init__.py: Sync version with libdbus to (0,50,0)
489         
490 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
491
492         * dbus/dbus-object-tree.c (find_subtree_recurse):
493         a couple of optimizations (bug #710):
494         - do a binary search in the tree
495         - insert a new child at the right place directly, no need for
496           qsort anymore
497         - do the "double alloc" thing when allocating children
498
499 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
500
501         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
502
503         * python/dbus_bindings.pyx: Memory management foo
504         (global): remove hacky _user_data_references global list
505         (GIL_safe_cunregister_function_handler): userdata now stuffed into
506         tuples. Unref user_data
507         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
508         (Connection::__del__): Remove and replace with __dealloc__ method
509         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
510         to keep tuple from being deallocated instead of the global var hack
511         (Connection::register_object_path): Stuff user_data into a tuple.
512         Use Py_INCREF to keep tuple from being deallocated instead of the 
513         global var hack
514         (Connection::register_fallback): Stuff user_data into a tuple.
515         Use Py_INCREF to keep tuple from being deallocated instead of the 
516         global var hack
517         (GIL_safe_pending_call_notification): Don't unref the message
518         because it gets unreffed when going out of scope.  Py_XDECREF
519         the user_data
520         (PendingCall::__del__): Remove and replace with __dealloc__ method
521         (PendingCall::set_notify): ref the pending call because we will
522         need it to stick around for when the notify callback gets called
523         (Message::__del__): Remove and replace with __dealloc__ method
524
525         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
526         gthreads_init to match up with the dbus call
527
528         * python/glib.py (init_threads): Changed to threads_init to match
529         up with gobject.threads_init().  init_threads is kept for backwards
530         compat but will most likely be deprecated in the future
531
532         * test/python/test-client.py: 
533         - revamp to use Python's unittest functionality
534         - add async call tests
535         - setup threads in glib and dbus so we make sure locks are working
536         
537 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
538
539         * python/dbus_bindings.pyx 
540         (_pending_call_notification, cunregister_function_handler, 
541         cmessage_function_handler): All callback functions have been rearranged 
542         to workaround a bug in Pyrex when working with the GIL which is Python's 
543         global lock when dealing with threads.  They have been split into
544         a wrapper function (which assumes the name of the old function) and
545         a _GIL_safe_<function name> function which contains the functionality
546         of the old function.  This ensures that Pyrex does not write code
547         the lock is released.
548         
549
550 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
551
552         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
553         GIL global lock when calling back into Python
554
555 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
556
557         * Release 0.36.2
558
559         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
560
561         * bus/policy.c (bus_policy_allow_user): change default "user is
562         allowed" to be "user has same uid as the bus itself"; any
563         allow/deny rules will override.
564
565         * bus/session.conf.in: don't allow all users, since now by default
566         the user that ran the bus can connect.
567
568 2005-08-26  Colin Walters  <walters@verbum.org>
569
570         * tools/dbus-print-message.c (print_message): Flush stdout
571         after printing a message, so that redirecting to a file, then
572         hitting Ctrl-C works.
573
574 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
575
576         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
577         (EmptyMessage): new class that subclasses Message.  This is a workaround
578         to a Pyrex bug that fails to call __del__ when the Message object goes out
579         of scope.  For some reason subclassing Message fixes this bug
580         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
581         - s/Message(_create=0)/EmptyMessage everywhere else
582         
583         * test/python/test-{server|client}.py: add the python/.libs directory
584         to the lookup path so dbus_bindings and dbus_glib_bindings don't
585         get picked up from the system
586
587 2005-08-25  Colin Walters  <walters@verbum.org>
588
589         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
590         to Ryan Lortie for the suggestion.
591
592 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
593
594         * test/python: Add python regression test
595
596         * configure.in: Add test/python/Makefile
597
598         * test/Makefile.am: Add the python directory to SUBDIRS
599
600 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
601
602         * Release 0.36.1
603
604         * python/_dbus.py: 
605         (Interface::connect_to_signal): propigate keywords for match on args
606         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
607
608         * python/proxies.py (ProxyObject::connect_to_signal):
609         propigate keywords for match on args
610
611         * Makefile.am: point everything to pyexecdir since python borks
612         on multilib
613
614 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
615
616         * Release 0.36
617
618 2005-08-23  Colin Walters  <walters@verbum.org>
619
620         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
621
622 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
623
624         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
625         to fix some wranings. We now use dbus_bindings.DBusConnection instead
626         of defining DBusConnection ourselves.
627
628 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
629
630         * python/dbus.pth: New path file to fix up problems when installing
631         c libraries to lib64 and python files to lib.
632
633         * python/Makefile.am: install dbus.pth in the correct spot
634
635 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
636         * ChangeLog: clean up my last entry a bit
637
638         * doc/introspect.xsl: New stylesheet for converting introspection data
639         into browser renderable xhtml. Contributed by Lennart Poettering.
640
641         * doc/introspect.dtd: Fixups in the introspect format from Lennart
642         Poettering.
643
644         * doc/dbus-tutorial.xml: 
645         - Add Colin Walter to the Authors section for authoring the GLib
646         section
647         - Add descriptions of the new signature and type functionality
648         in the Python complex type mapping section
649         - Add a sidenote on the new args matching functionality in 
650         the Python bindings
651         - Fixed up some of the examples to use the gobject.MainLoop
652         instead of gtk.main
653         
654         * python/_dbus.py:
655         (Bus::_create_args_dict): New. Converts a hash of arg matches
656         to a more useable format
657         (Bus::add_signal_receiver): add a **keywords parameter for catching
658         arg match parameters
659         (Bus::remove_signal_receiver): add a **keywords parameter for catching
660         arg match parameters
661         
662         * python/matchrules.py:
663         (MatchTree::exec_matches): Check for arg matches
664         (SignalMatchRule::add_args_match): New method
665         (SignalMatchRule::execute): Added args_list parameter as an optimization
666         so we don't have to marshal the args more than once
667         (SignalMatchRule::match_args_from_list): New method that checks to see
668         if the rule's arg matches match an argument list.  Only arguments
669         set in the rule are checked.
670         (SignalMatchRule::match_args_from_rule): New method that checks to see
671         if the rule's arg matches match another rule's.  All args have to match
672         in order for this method to return true.  If either rule has more args
673         then it is not a match.
674         (SignalMatchRule::is_match): Add args match
675         (SignalMatchRule::repr): Add args to the final output if they exist
676
677 2005-08-17  Ross Burton  <ross@burtonini.com>
678
679         * glib/dbus-gproxy.c:
680         (dbus_g_proxy_call_no_reply): unref the message once sent.
681         (dbus_g_proxy_call): protect against NULL proxy.
682
683 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
684
685         * python/__init__.py: Version updated (0, 43, 0)
686         
687         * python/dbus_bindings.pyx: 
688         - Fixed type objects to have self passed into __init__
689         - Added the Variant type
690         - Add the ability to specify types or signatures for Array, Variant 
691         and Dictionary
692         (Connection::send_with_reply_handlers): return a PendingCall object
693         (_pending_call_notification): handle the case when an error is returned 
694         without an error message in the body
695         (MessageIter::get_boolean): return True or False instead of an integer
696         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
697         and add checks for objects with embeded signatures or types (Array, 
698         Variant and Dictionary)
699         (MessageIter::append_byte): handle case when the value is a dbus.Byte
700         (MessageIter::append_dict): handle embeded types or signatures
701         (MessageIter::append_array): handle embeded types or signatures
702         (MessageIter::append_variant): new method
703         
704         * python/proxies.py:
705         (DeferedMethod): New. Dummy executable object used when queuing calls 
706         blocking on introspection data
707         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
708         or shorter timeouts for method calls
709         (ProxyObject): Add first pass at an introspection state machine
710         (ProxyObject::__init__): Add introspect keyword for turing off an on 
711         introspection. 
712         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
713         the usual mechanisms for sending messages.  This is to avoid a deadlock
714         where the Intospect call would be queued waiting for the Introspect 
715         call to finish ;-)
716         (ProxyObject::_introspect_reply_handler): New.  This method is called 
717         when introspection returns with no error
718         (ProxyObject::_introspect_error_handler): New.  This method is called 
719         when introspection encounters an error
720         (ProxyObject::__getattr__): Code to handle different introspection 
721         states.  Queue async calls or block blocking calls if we are 
722         introspecting.  Pass through as normal if we are not or are done with 
723         introspecting.
724         
725         * python/service.py: Import signal and method from decorators.py
726
727         * python/types.py: Add Variant type
728
729 2005-08-16  Colin Walters  <walters@verbum.org>
730
731         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
732         DBusError message is NULL.
733
734 2005-08-09  Havoc Pennington  <hp@redhat.com>
735
736         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
737         malloc'd copy of the name parameter
738
739 2005-08-09  Havoc Pennington  <hp@redhat.com>
740
741         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
742         warning if the reply serial is set to 0
743
744 2005-08-04  Colin Walters  <walters@verbum.org>
745
746         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
747         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
748         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
749         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
750         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
751         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
752         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
753         * glib/dbus-gvalue.h (dbus_g_value_types_init)
754         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
755         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
756         
757         Prefix name with _ to ensure they're not exported.  All callers
758         updated.
759
760         * glib/dbus-gvalue.c (typecode_to_gtype)
761         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
762         (signature_iter_to_g_type_dict)
763         (signature_iter_to_g_type_array)
764         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
765         (dbus_gtypes_from_arg_signature):
766         Move to dbus-gsignature.c.
767
768         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
769         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
770         (dbus_binding_tool_output_glib_client): Ditto.
771
772         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
773         and dbus-gsignature.h
774
775         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
776         unused variable.
777
778 2005-08-03  Colin Walters  <walters@verbum.org>
779
780         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
781         catch any incompatible changes accidentally made.
782
783 2005-08-03  Havoc Pennington  <hp@redhat.com>
784
785         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
786         typo, from Julien Puydt
787
788         * bus/connection.c (bus_connection_disconnected): we were always
789         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
790
791 2005-08-01  Colin Walters  <walters@verbum.org>
792
793         Patch from Joe Markus Clarke:   
794         
795         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
796         use-after-free.
797
798 2005-08-01  Colin Walters  <walters@verbum.org>
799         
800         Patch from Joe Markus Clarke:   
801         
802         * tools/dbus-send.c (main): 
803         
804         Don't use C99 style initializers (bug #3933).
805         
806 2005-08-01  Colin Walters  <walters@verbum.org>
807
808         Patch from Joe Markus Clarke:   
809
810         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
811         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
812         * glib/dbus-gobject.c (write_interface):
813
814         Don't use C99 style initializers (bug #3933).
815
816 2005-07-31  Havoc Pennington  <hp@redhat.com>
817
818         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
819         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
820
821 2005-07-30  Havoc Pennington  <hp@redhat.com>
822
823         * fix a bunch of Doxygen warnings and mistakes
824
825 2005-07-30  Havoc Pennington  <hp@redhat.com>
826
827         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
828         DBUS_BUILD_TESTS since it's now used in production code
829
830 2005-07-29  Havoc Pennington  <hp@redhat.com>
831
832         * test/glib/test-profile.c (write_junk): initialize the junk
833         buffer so valgrind doesn't have a breakdown
834
835 2005-07-29  Havoc Pennington  <hp@redhat.com>
836
837         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
838         (match_rule_matches): remove unused arg
839         (test_matching): add tests for match_rule_matches()
840
841         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
842         do arg0='foo' arg5='bar' in the match rules
843         (match_rule_matches): don't match if the arg0='foo' doesn't match.
844
845         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
846
847 2005-07-29  Ross Burton  <ross@openedhand.com>
848
849         * dbus/dbus-connection.c:
850         Don't create a DBusCondVar which is never used.
851
852 2005-07-27  Ross Burton  <ross@openedhand.com>
853
854         * dbus/dbus-message.c:
855         Reduce the size of the maximum cached message to 10K.
856
857 2005-07-25  Ross Burton  <ross@openedhand.com>
858
859         * glib/dbus-gproxy.c:
860         Remove matches when all proxies are unregistered.
861
862 2005-07-24  Colin Walters  <walters@verbum.org>
863
864         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
865         typedata; recursive arrays won't have it.
866
867         * test/glib/test-dbus-glib.c:
868         * test/glib/test-service-glib.c:
869         * test/glib/test-service-glib.xml: Add recursive arrays tests.
870         
871 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
872
873         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
874         proxies.py, service.py: Cleanup of code after running it through the
875         pyflakes code checker mostly dealing with undefined names.  
876         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
877
878 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
879
880         * NEWS: Update to 0.35.2
881
882 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
883
884         * python/_dbus.py: Remove import of the dbus.services
885         module as it no longer exists (patch from Dimitur Kirov)
886
887         * python/service.py (Object::__init__): Fixed typo
888         s/name/bus_name (patch from Dimitur Kirov)
889
890         * python/examples/example-signal-emitter.py: import dbus.glib
891         to get the main loop and use glib mainloop instead of gtk so
892         X doesn't have to be running.
893
894         * python/examples/example-signal-recipient.py: import dbus.glib
895         to get the main loop and use glib mainloop instead of gtk so
896         X doesn't have to be running. Import the decorators module
897         directly.
898
899         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
900         didn't pick up on but are needed to build
901
902         * configure.in: upped version to 0.35.2
903
904         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
905         added Colin Walters' SELinux API rename patch from head 
906         s/unix sercurity context/selinux security context/
907
908 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
909
910         * python/Makefile.am: dbus_binding.pxd.in should be included 
911         in EXTRA_DIST not dbus_binding.pxd
912         fix up $(srcdir) hopefully for the last time
913
914         * NEWS: Update to 0.35.1
915
916 2005-07-16  Colin Walters  <walters@verbum.org>
917
918         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
919         from bus_driver_handle_get_connection_unix_security_context.  Update for
920         error usage.
921         (message_handlers): Update for renames.
922
923         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
924         _dbus_string_init failure correctly.
925         (bus_selinux_append_context): Convert SID to context.  Append it
926         as a byte array.
927         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
928         hasn't been called.
929
930         * bus/selinux.h: Update prototype.
931
932         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
933         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
934
935 2005-07-15  Colin Walters  <walters@verbum.org>
936
937         * doc/TODO: Add note about convenience wrappers.
938
939 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
940
941         * NEWS: Update to 0.35
942
943 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
944
945         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
946         so distcheck doesn't fail
947
948         * glib/examples/Makefile.am: Add example-service.xml and 
949         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
950
951         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
952         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
953
954         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
955         compiler looks in the right places during distcheck
956
957 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
958
959         * glib/example/Makefile.am: Fix a typo which cause make distcheck
960         to fail
961
962 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
963
964         * python/examples/example-service.py,
965         python/examples/example-signal-emitter.py: Fixed up examples
966         for API changes
967
968 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
969
970         * python/__init__.py: Upped to version (0,42,0) because of
971         the API change
972
973 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
974
975         * ChangeLog: fix date in last entry
976
977         * configure.in, bus/system.conf.in: add the ability to configure 
978         the system bus user at compiletime with the --with-dbus-user flag
979         (patch from Kristof Vansant)
980
981 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
982
983         * bus/dispatch.c, test/test-service.c: Add testcase
984         for sending messages to oneself (TODO item).
985
986         * python/service.py (class Object): Swap ordering of bus_name 
987         and object_path parameters to better support inheritance.
988
989         * doc/dbus-tutorial.xml: change Python docs to reflect change
990         in parameter ordering and fix the inheritance section.
991
992         * doc/TODO: remove sending message to oneself TODO item
993
994 2005-07-15  Ross Burton  <ross@openedhand.com>
995
996         * glib/dbus-gproxy.c:
997         Fix a leak when calling methods via the proxy.
998
999 2005-07-15  Colin Walters  <walters@verbum.org>
1000
1001         * bus/selinux.c (bus_selinux_append_context): Wrap in
1002         HAVE_SELINUX.
1003
1004 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1005
1006         * python/_dbus.py (Bus::remove_signal_receiver):
1007         don't add a callback to the match if none has been passed in
1008         
1009         * python/matchrules.py (SignalMatchTree::remove): if the rule
1010         being matched does not have a callback treat it as a wildcard
1011         fix matching logic
1012
1013         * doc/dbus-tutorial.xml: Add Python tutorial
1014
1015 2005-07-14  Colin Walters  <walters@verbum.org>
1016
1017         * bus/driver.c
1018         (bus_driver_handle_get_connection_unix_security_context): New function.
1019         (message_handlers): Add.
1020
1021         * bus/selinux.c (bus_selinux_append_context): New function; appends
1022         security context to message.
1023
1024         * bus/selinux.h: Prototype.
1025
1026         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1027
1028 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1029
1030         * bus/activation.c: clean up all tabs to be 8 spaces 
1031         (bus_activation_activate_service): make sure we clean up
1032         if activation fails
1033
1034         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1035         (check_shell_fail_service_auto_start): New function
1036         tests to make sure we get fail properly when trying to auto start a service
1037         with a faulty command line
1038         (check_shell_service_success_auto_start): New function tests to make sure
1039         auto started services get the arguments on the command line
1040
1041         * test/test-shell-service.c: Added service for testing auto-starting with 
1042         command line arguments
1043
1044         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1045         test/data/valid-service-files/debug-shell-echo-success.service.in:
1046         Added service files for testing auto-starting with command line arguments
1047
1048         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1049
1050 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1051
1052         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1053         
1054         * dbus/Makefile.am: added new files to build.
1055
1056         * bus/activation.c (bus_activation_activate_service): support
1057         activation commands with parameters.
1058
1059         * test/shell-test.c: added test program for the shell parsing
1060         code.
1061
1062 2005-07-13  David Zeuthen  <davidz@redhat.com>
1063
1064         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1065         64 bit signed and unsigned parameters
1066
1067 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1068
1069         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1070
1071         * python/service.py (class Name): renamed BusName to make it clearer
1072         what the object is for (a name on the bus)
1073
1074         * python/examples/example-service.py,
1075         python/examples/example-signal-emitter.py: change the Name object to
1076         BusName
1077
1078 2005-07-12  Colin Walters  <walters@verbum.org>
1079
1080         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1081
1082         * tools/dbus-launch.c: Include sys/select.h.
1083
1084 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1085         * python/dbus_bindings.pyx.in: removed
1086
1087         * python/dbus_bindings.pyx: Added.
1088         - Fixed some memleaks (patch from 
1089         Sean Meiners <sean.meiners@linspireinc.com>)
1090         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1091         own pxd file (Pyrex definition)
1092         - Broke out glib dependancies into its own pyx module
1093         
1094         * python/dbus_bindings.pdx: Added.
1095         - Defines C class Connection for exporting to other modules
1096
1097         * python/dbus_glib_bindings.pyx: Added.
1098         - New module to handle lowlevel dbus-glib mainloop integration
1099
1100         * python/glib.py: Added.
1101         - Registers the glib mainloop when you import this module
1102
1103         * python/services.py: Removed (renamed to service.py)
1104         
1105         * python/service.py: Added.
1106         - (class Server): renamed Name
1107
1108         * python/__init__.py: Bump ro version (0,41,0)
1109         -don't import the decorators or service module
1110         by default.  These now reside in the dbus.service namespace
1111
1112         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1113         setup function on creation 
1114
1115         * python/examples/example-service.py,
1116         python/examples/example-signal-emitter.py: update examples
1117
1118         * python/examples/gconf-proxy-service.py,
1119         python/examples/gconf-proxy-service2.py: TODO fix these up
1120
1121         * doc/TODO: Addition
1122         - Added a Python Bindings 1.0 section
1123         - added "Add match on args or match on details to match rules"
1124
1125
1126 2005-07-12  Colin Walters  <walters@verbum.org>
1127
1128         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1129         (statemachine-glue.h): 
1130         * glib/examples/Makefile.am (example-service-glue.h) 
1131         (example-signal-emitter-glue.h): 
1132         * glib/Makefile.am (dbus-glib-error-switch.h): 
1133         Add libtool --mode=execute so we use the built library instead
1134         of any installed one.
1135
1136 2005-07-11  Colin Walters  <walters@verbum.org>
1137
1138         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1139         (dbus_g_value_types_init): Remove assertion.
1140         (dbus_g_value_get_g_type, dbus_g_value_open)
1141         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1142         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1143         functions related to DBusGValue.  Now we marshal/demarshal
1144         structures as GValueArray.
1145         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1146         structures.
1147         (signature_iter_to_g_type_array): Don't call
1148         signature_iter_to_g_type_struct.
1149         (signature_iter_to_g_type_struct): Delete.
1150         (dbus_gvalue_to_signature): Delete.
1151         (dbus_gvalue_to_signature): New function with same name as other
1152         one; we can convert structures to signatures.
1153         (demarshal_valuearray): New function.
1154         (get_type_demarshaller): Use it.
1155         (demarshal_recurse): Delete.
1156         (marshal_proxy): New function.
1157         (marshal_map): Warn if we can't determine signature from type.
1158         (marshal_collection_ptrarray): Ditto.
1159         (marshal_collection_array): Ditto.
1160         (get_type_marshaller): Use marshal_valuearray.
1161         (marshal_recurse): Delete.
1162         (_dbus_gvalue_test): Add some tests.
1163
1164         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1165         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1166         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1167         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1168         (dbus_g_value_free): Remove prototypes.
1169
1170         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1171         G_TYPE_VALUE_ARRAY.
1172
1173         * glib/examples/example-service.c:
1174         * glib/examples/example-client.c: Implement GetTuple.
1175
1176         * test/glib/test-dbus-glib.c:
1177         * test/glib/test-service-glib.c:
1178         * test/glib/test-service-glib.xml: Add structure tests.
1179
1180 2005-07-10  Colin Walters  <walters@verbum.org>
1181
1182         * doc/TODO: Knock off some GLib items with this patch.
1183
1184         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1185         (_dbus_gvalue_signals_error): New functions.
1186
1187         * glib/dbus-gvalue-utils.h: Prototype them.
1188
1189         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1190         and change to not output const/retval flags for input args.  All
1191         callers updated.
1192         (invoke_object_method): Refactor to handle return values.  Add
1193         some more comments in various places.  Remove debug g_print.
1194
1195         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1196
1197         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1198         Handle G_TYPE_NONE.
1199         (compute_gsignature): New function; refactored from code from
1200         compute_marshaller and compute_marshaller_name.  Enhance to
1201         handle return values and async ops more cleanly.  Update for
1202         async ops returning NONE instead of BOOLEAN.
1203         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1204         and output appropriate string.
1205         (generate_glue): Handle return value annotation.  Also don't dump
1206         constness flag for input arguments.
1207
1208         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1209         files shared between installed library and utilities.
1210         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1211         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1212         binding tool can access gtype utility functions.
1213
1214         * test/glib/test-service-glib.c: 
1215         * test/glib/test-service-glib.xml: 
1216         * test/glib/test-dbus-glib.c: Add some tests for return values.
1217
1218 2005-07-09  Colin Walters  <walters@verbum.org>
1219
1220         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1221         argument if available, not method.
1222
1223         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1224         (invoke_object_method): First, remove some redundant
1225         GValues (object_value, error_value) in favor of working on
1226         array directly.  Second, rework constness to be less buggy.
1227         Now we iterate directly over the argument metadata instead
1228         of parallel iterating over output signature and metadata.
1229
1230         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1231
1232         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1233         annotation on input args.
1234         
1235 2005-07-09  Colin Walters  <walters@verbum.org>
1236
1237         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1238         Define.
1239
1240         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1241         annotation.
1242
1243         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1244         (method_dir_signature_from_object_info): Handle arg_iterate change.
1245         (write_interface): Ditto.
1246         (lookup_object_info): Don't barf if format_version is > 0.
1247         (invoke_object_method): Handle arg constness.
1248
1249         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1250         (arg_info_new): Create.
1251         (arg_info_unref): Destroy.
1252         (arg_info_get_annotations, arg_info_get_annotation) 
1253         (arg_info_add_annotation): New functions.
1254
1255         * glib/dbus-gidl.h: Prototype them.
1256
1257         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1258         args, disallow them in properties.
1259         (parse_annotation): Handle arg annotations.
1260
1261         * test/glib/test-service-glib.xml: 
1262         * test/glib/test-service-glib.c: Update to make some methods
1263         const.
1264
1265 2005-07-08  Colin Walters  <walters@verbum.org>
1266
1267         * test/glib/test-service-glib.xml: 
1268         * test/glib/test-service-glib.c:
1269         * test/glib/test-dbus-glib.c: Test a{sv}.
1270
1271         * glib/examples/statemachine/statemachine.c:
1272         * glib/examples/statemachine/statemachine-server.c:
1273         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1274         add progress bar, etc.
1275
1276         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1277         needed anymore due to generic array/map marshalling.
1278         (dbus_g_value_types_init): Don't register basic arrays or the
1279         string/string hash.
1280         (dbus_gtype_from_signature_iter): Don't try to recurse into
1281         variants.
1282         (dbus_gtype_to_signature): Check collection/map before type
1283         metadata.
1284         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1285         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1286         generic map creation/append functions instead of hash table
1287         specifically.
1288         (get_type_demarshaller): Handle maps.
1289         (demarshal_collection): Dispatch on collection type to either
1290         demarshal_collection_ptrarray or demarshal_collection_array.
1291         (get_type_marshaller): Handle maps.
1292         (marshal_collection): Dispatch collection type to either
1293         marshal_collection_ptrarray or marshal_collection_array.
1294         (_dbus_gvalue_test): New test.
1295
1296         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1297         (hash_free_from_gtype): Use it to free GValues.
1298         (hashtable_append): New function.
1299         (ptrarray_append): Fix prototype.
1300         (slist_append): Ditto.
1301         (_dbus_gvalue_utils_test): Extend tests.
1302
1303         * glib/dbus-gtype-specialized.c
1304         (dbus_g_type_specialized_init_append): Renamed from
1305         dbus_g_type_specialized_collection_init_append.  Remove const from
1306         value, since we steal it.
1307         (dbus_g_type_specialized_map_append): New function.
1308
1309         * glib/dbus-gtype-specialized.h: Update prototypes.
1310         Add DBusGTypeSpecializedMapAppendFunc.
1311
1312         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1313         _dbus_gvalue_test.
1314         
1315         * glib/dbus-gtest.h: Prototype it.
1316
1317 2005-07-08  Ross Burton  <ross@openedhand.com>
1318
1319         * dbus/dbus-glib.h:
1320         Add DBysGAsyncData for the async bindings.
1321
1322         * glib/dbus-binding-tool-glib.c:
1323         Re-enable the async bindings.
1324
1325         * test/glib/test-dbus-glib.c:
1326         Add a test for the generated async bindings.
1327
1328 2005-07-08  Colin Walters  <walters@verbum.org>
1329
1330         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1331         connection concept.
1332         
1333 2005-07-08  Colin Walters  <walters@verbum.org>
1334         
1335         * tools/Makefile.am: Kill of print-introspect in favor of using
1336         dbus-send --print-reply=literal.
1337
1338         * test/glib/test-service-glib.xml: 
1339         * test/glib/test-service-glib.c (my_object_get_objs): New test
1340         for "ao".
1341
1342         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1343         (main): Test GetObjs.
1344
1345         * glib/examples/statemachine/Makefile.am:
1346         * glib/examples/statemachine/sm-marshal.list:
1347         * glib/examples/statemachine/statemachine-client.c:
1348         * glib/examples/statemachine/statemachine-server.c:
1349         * glib/examples/statemachine/statemachine-server.xml:
1350         * glib/examples/statemachine/statemachine.c:
1351         * glib/examples/statemachine/statemachine.h:
1352         * glib/examples/statemachine/statemachine.xml:
1353
1354         New example.
1355
1356         * glib/examples/example-service.c (main): Move invocation
1357         of dbus_g_object_type_install_info earlier, to emphasize it
1358         should only be done once.
1359
1360         * glib/examples/example-signal-emitter.c (main): Ditto.
1361
1362         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1363
1364         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1365         (dbus_gvalue_marshal): Update prototypes.
1366
1367         * glib/dbus-gvalue.c: Update all marshalling functions to take
1368         const GValue instead of GValue.
1369         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1370         types.
1371         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1372         change.
1373         (dbus_gtype_to_signature): Handle generic collecitons and maps.
1374         Return a newly-allocated string.
1375         (demarshal_proxy, demarshal_object_path, demarshal_object)
1376         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1377         we get the wrong types from message.
1378         (get_type_demarshaller): New function, extracted from
1379         dbus_gvalue_demarshal.
1380         (demarshal_collection): New function, demarshals generic
1381         collection.
1382         (dbus_gvalue_demarshal): Just invoke result of
1383         get_type_demarshaller.  Throw error if we don't have one.
1384         (marshal_garray_basic): Abort on OOM.
1385         (get_type_marshaller): New function, extracted from
1386         dbus_gvalue_marshal.
1387         (collection_marshal_iterator, marshal_collection): New functions;
1388         implements generic marshalling for an iteratable specialized
1389         collection.
1390         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1391
1392         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1393         G_TYPE_STRING.
1394         (ptrarray_value_from_gvalue): Ditto.
1395         (ptrarray_append, ptrarray_free): New functions.
1396         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
1397         (slist_append, slist_end_append, slist_free): New functions.
1398         (dbus_g_type_specialized_builtins_init): Add append fuctions
1399         for GPtrArray and GSList.  Register GSList.
1400         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1401
1402         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1403         New.
1404         (dbus_g_type_specialized_collection_init_append)
1405         (dbus_g_type_specialized_collection_append)
1406         (dbus_g_type_specialized_collection_end_append): Prototype.
1407         (DBusGTypeSpecializedCollectionVtable): Add append_func and
1408         end_append_func.
1409
1410         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
1411         (dbus_g_type_specialized_collection_append) 
1412         (dbus_g_type_specialized_collection_end_append): New functions.
1413         (dbus_g_type_map_value_iterate): Take const GValue.
1414         (dbus_g_type_collection_value_iterate): Ditto.
1415
1416         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1417         _dbus_gvalue_utils_test.
1418         
1419         * glib/dbus-gtest.h: Prototype it.
1420
1421         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1422         using uninitialized owner_list.
1423         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1424         public API.
1425         (dbus_g_proxy_end_call_internal): Update to use error set
1426         from dbus_gvalue_demarshal instead of setting it here.
1427         (dbus_g_proxy_begin_call): Move return_if_fail here.
1428
1429         * glib/dbus-gobject.c (write_interface): Update for
1430         dbus_gtype_to_signature returning new string.
1431
1432         * configure.in: Add glib/examples/statemachine.
1433
1434 2005-07-08  Joe Shaw  <joeshaw@novell.com>
1435
1436         * configure.in: Add a configure option, --with-console-auth-dir
1437         
1438         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1439         new setting.  Patch from Kay Sievers.
1440
1441 2005-07-06  Colin Walters  <walters@verbum.org>
1442
1443         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1444         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1445         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1446         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1447         Delete in favor of dbus_g_proxy_begin_call and
1448         dbus_g_proxy_cancel_call.
1449         (DBusGProxyCall, DBusGProxyCallNotify): New.
1450         (dbus_g_proxy_begin_call): Change prototype to take callback, user
1451         data, and destroy function.  This replaces
1452         dbus_g_pending_call_set_notify.
1453         (dbus_g_proxy_cancel_call): Prototype.
1454         (DBusGAsyncData): Delete, shouldn't be needed anymore.
1455
1456         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1457         pending_calls map.
1458         (struct _DBusGProxyManager): Add bus_proxy member, which is an
1459         internal proxy for calls to the bus. Remove
1460         pending_nameowner_calls, now the internal proxy keeps track.
1461         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1462         pending_nameowner_calls.
1463         (got_name_owner_cb): Update prototype, and use
1464         dbus_g_proxy_end_call.
1465         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1466         (dbus_g_proxy_manager_register): Delete directly libdbus code in
1467         favor of using internal proxy.
1468         (dbus_g_proxy_manager_unregister): Update to use
1469         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1470         (dbus_g_proxy_init): Initialize pending calls map.
1471         (dbus_g_proxy_constructor): New.
1472         (dbus_g_proxy_class_init): Add get/set property functions,
1473         constructor, and add NAME, PATH, and INTERFACE properties.
1474         (cancel_pending_call): New function.
1475         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1476         cancel them.
1477         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1478         (GPendingNotifyClosure): New structure.
1479         (d_pending_call_notify, d_pending_call_free): Moved here from
1480         dbus-glib.c.
1481         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1482         ordering.
1483         (manager_begin_bus_call): New internal function for talking to
1484         internal bus proxy.
1485         (dbus_g_proxy_new): Construct object using GObjet properties.
1486         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1487         Create closure of same, and insert call into map of pending calls.
1488         (dbus_g_proxy_end_call_internal): Take call id instead of pending
1489         call.  Look up pending call in current set.  Remove it when we've
1490         completed.
1491         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1492         (dbus_g_proxy_begin_call): Change API to take callback, user data,
1493         and destroy function directly.
1494         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1495         (dbus_g_proxy_call): Invoke with NULL callback.
1496         (dbus_g_proxy_cancel_call): New function, replaces
1497         dbus_g_pending_call_cancel.
1498
1499         * glib/dbus-gparser.c (validate_signature): Fix call to
1500         dbus_set_g_error.
1501
1502         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1503         New quark for attaching metadata to GType.
1504         (info_hash): Delete.
1505         (lookup_object_info): Look up using quark.
1506         (dbus_g_object_type_install_info): Check that a type is classed,
1507         not that it's an object.  Also just install type data using quark
1508         instead of using global hash.
1509
1510         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
1511         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1512         (GPendingNotifyClosure): Delete.
1513         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1514         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1515
1516         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1517         client method generation until we can fix it...
1518         
1519         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1520         (load_from_service_thread_func): Ditto.
1521
1522         * tools/dbus-names-model.c (struct NamesModel): Hold
1523         DBusGProxyCall.
1524         (have_names_notify): Update prototype, use
1525         dbus_g_proxy_cancel_call.
1526         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1527
1528         * tools/dbus-monitor.c (filter_func): Update for print_message
1529         API change.
1530
1531         * test/glib/test-dbus-glib.c: Add more tests for async
1532         invocations.  Update many begin_call/end_call pairs to just use
1533         dbus_g_proxy_call.
1534
1535         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
1536         allows us to dump print-introspect.c.
1537
1538         * tools/dbus-print-message.h (print_message): Add literal argument
1539         to print_message which is intended to allow printing arguments without
1540         metadata like "string=".
1541
1542         * tools/dbus-print-message.c (print_iter): Add literal argument.
1543         (print_message): Allow printing string messages literally.
1544
1545 2005-07-05  Colin Walters  <walters@verbum.org>
1546
1547         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1548         Remove value refcount leak, original patch from Jorn Baayen
1549         <jorn@openedhand.com>.  Also remove useless extra value in favor
1550         of prepending to value array directly.
1551
1552 2005-07-02  Colin Walters  <walters@verbum.org>
1553
1554         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1555
1556 2005-07-01  Colin Walters  <walters@verbum.org>
1557
1558         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1559         
1560         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1561         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1562         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1563         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1564
1565 2005-06-30  Colin Walters  <walters@verbum.org>
1566
1567         * test/glib/test-dbus-glib.c:
1568         * test/glib/test-service-glib.c:
1569         * test/glib/test-service-glib.xml: Update tests for new error
1570         setting bits, also add async tests (patch from Ross Burton).
1571
1572         * test/glib/Makefile.am (test_service_glib_LDADD): Add
1573         DBUS_GLIB_THREADS_LIBS.
1574
1575         * glib/dbus-gproxy.c (get_name_owner)
1576         (dbus_g_pending_call_end_valist): Ditto.
1577
1578         * glib/dbus-gobject.c (error_metadata): New mapping from GError
1579         domain (GQuark) to DBusGErrorInfo.  
1580         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
1581         quark in error_metadata.  Take message interface as default
1582         error message interface.
1583         (gerror_to_dbus_error_message): Pass message interface.
1584         (dbus_set_g_error): Resurrected.
1585         (dbus_g_error_info_free): New function.
1586         (dbus_g_object_type_install_info): Use g_type_class_ref instead
1587         of _peek to actually create the object class if it hasn't been
1588         created yet.
1589         (dbus_g_error_domain_register): New function.
1590
1591         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
1592
1593         * glib/dbus-gparser.c (validate_signature): Ditto.
1594
1595         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
1596         (dbus_g_error_domain_register): Prototype.
1597
1598         * glib/dbus-glib.c (dbus_g_error_set): Delete.
1599         Update tests.
1600
1601 2005-06-29  Colin Walters  <walters@verbum.org>
1602
1603         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
1604         DBUS_TYPE_G_OBJECT_PATH.
1605
1606         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
1607         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
1608         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
1609         (dbus_g_object_path_get_g_type): New function.
1610         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
1611         to DBUS_TYPE_G_OBJECT_PATH by default.
1612         (demarshal_proxy): Remove unused name variable.
1613         (demarshal_object_path, marshal_object_path): New functions.
1614         (demarshal_proxy_array, marshal_proxy_array): Delete.
1615         
1616         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
1617         DBUS_TYPE_G_OBJECT_PATH to char *.
1618         (dbus_g_type_get_lookup_function): Map builtin
1619         DBUS_TYPE_G_OBJECT_PATH.
1620
1621         * test/glib/test-dbus-glib.c
1622         * test/glib/test-service-glib.c (my_object_objpath): 
1623         Adapt tests to new object path marshalling.
1624
1625 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
1626
1627         * configure.in: force check for Python >= 2.4
1628
1629 2005-06-29  Colin Walters  <walters@verbum.org>
1630         
1631         Patch from Ross Burton <ross@openedhand.com>
1632         
1633         * glib/dbus-gobject.c (invoke_object_method): Unset object
1634         value in all cases, not only in async case.
1635
1636 2005-06-29  Colin Walters  <walters@verbum.org>
1637
1638         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
1639         name_call for keeping track of any outgoing GetNameOwner call.
1640         Also add for_owner and associated.
1641         (struct _DBusGProxyManager): Add owner_names, which is hash table
1642         that maps a base name to a list of names it owns (that we're
1643         interested in).  Add pending_nameowner_calls which is a list of
1644         all outstanding GetNameOwner; avoids us having to iterate over
1645         every proxy.  Add unassociated_proxies which keeps track of name
1646         proxies with no associated name owner.
1647         (dbus_g_proxy_manager_unref): Destroy owner_names.
1648         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
1649         name refcounts.
1650         (find_name_in_info, name_owner_foreach)
1651         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
1652         (dbus_g_proxy_manager_monitor_name_owner)
1653         (dbus_g_proxy_manager_unmonitor_name_owner)
1654         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
1655         New functions; they manipulate the owner_names mapping.
1656         (got_name_owner_cb): New function.
1657         (get_name_owner): New function, extracted from
1658         dbus_g_proxy_new_for_name_owner.
1659         (dbus_g_proxy_manager_register): For now we need to keep track of
1660         all NameOwnerChanged.  Also if the proxy is for a name, if we
1661         don't already know the name owner, queue a new GetNameOwner
1662         request and add it to our list of unassociated proxies.  Otherwise
1663         inc the refcount.
1664         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
1665         cancel any pending GetNameOwner call, etc.
1666         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
1667         the owner_names mapping to look up the current names for the
1668         signal source, and dispatch to any proxies for that name.
1669         (dbus_g_proxy_new): Initialize new members.
1670         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
1671         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
1672         (dbus_g_pending_call_end_valist): New function, extracted from
1673         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
1674         but want to use the GLib infrastructure.  Also note how many
1675         arguments in reply were over.
1676         (dbus_g_pending_call_end): New function, just call
1677         dbus_g_pending_call_end_valist.
1678         (dbus_g_proxy_end_call_internal): Just call
1679         dbus_g_pending_call_end_valist.
1680
1681         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
1682         of builtin marshaller for STRING_STRING_STRING.
1683
1684         * test/glib/test-dbus-glib.c: 
1685         * test/glib/test-service-glib.c:
1686         * test/glib/test-service-glib.xml:
1687         Extend tests to cover name proxies, destruction of owner proxies,
1688         etc.
1689         
1690         * glib/examples/example-signal-recipient.c
1691         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
1692         
1693         * tools/dbus-send.c (main): Print D-BUS error name in addition
1694         to message.
1695
1696 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
1697
1698         * python/dbus_bindings.pyx.in (cunregister_function_handler,
1699         cmessage_function_handler): Patch from 
1700         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
1701         by using the Py_GILState_Ensure/Release to synchronize with the
1702         python runtime.
1703         
1704 2005-06-28  Ray Strode  <rstrode@redhat.com>
1705
1706         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
1707         babysitter helper process on last unref, bug #2813.
1708
1709 2005-06-27  Colin Walters  <walters@verbum.org>
1710
1711         * test/glib/test-dbus-glib.c: 
1712         * test/glib/test-service-glib.c:
1713         * test/glib/test-service-glib.xml:
1714         Test hash table signal emitting.
1715
1716         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
1717         types to their fundamental basis types, since this is what
1718         marshallers operate on.  Also add an entry for VOID__BOXED.
1719         (dbus_g_object_register_marshaller_array): Convert to fundamental.
1720
1721 2005-06-26  Havoc Pennington  <hp@redhat.com>
1722
1723         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
1724         from Don Park
1725
1726 2005-06-26  Colin Walters  <walters@verbum.org>
1727
1728         * glib/dbus-glib.c (dbus_set_g_error): Delete.
1729         (dbus_g_error_set): New public function from its ashes; used by
1730         both service-side method implementation and GLib bindings
1731         internals.
1732         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
1733         (_dbus_glib_test): Add some tests.
1734
1735         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
1736
1737         * test/glib/test-service-glib.c (my_object_throw_error): Use
1738         dbus_g_error_set.
1739
1740         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
1741         errors thrown by dbus_g_error_set.
1742
1743         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
1744
1745         * glib/dbus-gparser.c (validate_signature): Ditto.
1746
1747         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
1748         (dbus_g_proxy_end_call_internal): Ditto.
1749
1750         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
1751         converts DBUS_ERROR_x to DBUS_GERROR_x.
1752         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
1753
1754         * doc/TODO: Remove error TODO.
1755
1756         * doc/dbus-tutorial.xml: Update with documentation about error
1757         handling.
1758
1759         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
1760         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
1761         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
1762
1763 2005-06-22  Colin Walters  <walters@verbum.org>
1764         
1765         Patch from Ross Burton <ross@openedhand.com>
1766
1767         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
1768
1769 2005-06-20  Colin Walters  <walters@verbum.org>
1770
1771         * configure.in: Add glib/examples.
1772
1773         * glib/Makefile.am: Add examples/
1774
1775         * glib/examples/.cvsignore
1776         * glib/examples/Makefile.am
1777         * glib/examples/example-client.c
1778         * glib/examples/example-service.c
1779         * glib/examples/example-service.xml
1780         * glib/examples/example-signal-emitter.c
1781         * glib/examples/example-signal-emitter.xml
1782         * glib/examples/example-signal-recipient.c:
1783         New files; GLib binding examples, ported from
1784         python/examples.
1785
1786 2005-06-20  Colin Walters  <walters@verbum.org>
1787
1788         * dbus/dbus-glib.h: 
1789         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
1790         dbus_g_proxy_call.
1791
1792         * glib/dbus-binding-tool-glib.c: 
1793         * doc/dbus-tutorial.xml: 
1794         * test/glib/test-dbus-glib.c: Update for rename.
1795         
1796 2005-06-20  Colin Walters  <walters@verbum.org>
1797
1798         Patch suggested by Ross Burton <ross@openedhand.com>
1799
1800         * glib/dbus-gobject.c (export_signals): Free signal name.
1801         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
1802         memory leak.  Add a bit of documentation.
1803         (dbus_g_method_return_error): Free context, and note we do
1804         so.
1805
1806 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
1807
1808         * dbus/dbus-glib.h:
1809         * glib/dbus-gobject.c:
1810         * glib/dbus-gproxy.c:
1811         * glib/dbus-gvalue.c: Predeclare structs as 
1812         typedef struct _Something Something instead of 
1813         typedef struct Something Something, so we can 
1814         redeclare the prototypes. Other GNOME libraries 
1815         do this already.
1816
1817 2005-06-17  Colin Walters  <walters@verbum.org>
1818
1819         * tools/dbus-names-model.c (have_names_notify): Fix call
1820         to dbus_g_proxy_end_call.
1821         
1822 2005-06-17  Colin Walters  <walters@verbum.org>
1823
1824         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
1825         spew warnings if we get malformed remote signals.
1826
1827         * glib/dbus-gobject.c (propsig_iterate): New function.
1828         (lookup_object_info): New function, extracted from
1829         lookup_object_and_method.
1830         (introspect_properties, introspect_signals): Delete; these
1831         are merged into write_interface.
1832         (write_interface): Write out signals and properties here;
1833         dump the org.gtk.object stuff and use the interface given
1834         in the introspection data blob.  Also fix up property XML.
1835         (lookup_values): New function.
1836         (introspect_interfaces): Gather a mapping from interface to a
1837         list of its methods, signals, and properties, then write out
1838         each interface.
1839         (lookup_object_and_method): Use lookup_object_info.
1840         (struct DBusGSignalClosure): Add interface.
1841         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
1842         we can just use the constant data.
1843         (dbus_g_signal_closure_finalize): Don't free signal name.
1844         (signal_emitter_marshaller): Use interface from signal closure.
1845         (export_signals): Only export signals mentioned in introspection
1846         blob.
1847         (dbus_g_connection_register_g_object): Warn if we have no
1848         introspection data for an object.
1849         (funcsig_equal): Remove unused variable.
1850         (dbus_g_object_register_marshaller): Take varargs instead of
1851         list.
1852         (dbus_g_object_register_marshaller_array): New function,
1853         extracted from old dbus_g_object_register_marshaller.
1854
1855         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
1856         signals and property data.
1857         (write_quoted_string): New function, extracted from generate_glue.
1858         (generate_glue): Write signals and properties to introspection
1859         blob.
1860
1861         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
1862         exported_signals and exported_properties.
1863         (dbus_g_object_register_marshaller): Update prototype.
1864         (dbus_g_object_register_marshaller_array): Prototype.
1865         
1866         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
1867
1868         * test/glib/test-service-glib.c: Add new test signals and method
1869         to emit them.
1870
1871         * test/glib/test-service-glib.xml: Add some test signals.
1872
1873         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
1874         and my-object-marshal.h
1875         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
1876         my-object-marshal.c.
1877         (my-object-marshal.c, my-object-marshal.h): Implement.
1878
1879         * test/glib/.cvsignore: Update.
1880
1881         * doc/TODO: Remove two GLib TODO items fixed by this
1882         patch.
1883
1884 2005-06-16  Colin Walters  <walters@verbum.org>
1885
1886         * doc/TODO: Update for GLib bindings.
1887         
1888 2005-06-16  Colin Walters  <walters@verbum.org>
1889
1890         * glib/dbus-binding-tool-glib.c:
1891         * glib/dbus-gobject.c:
1892         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
1893         from Ross Burton, for his GLib bindings work.
1894
1895 2005-06-16  Colin Walters  <walters@verbum.org>
1896
1897         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
1898         to iterate instead of walking to G_TYPE_INVALID.
1899
1900         Patch based on a patch from Ryan Gammon.
1901
1902 2005-06-16  Colin Walters  <walters@verbum.org>
1903
1904         * bus/bus.c (bus_context_new): Set parser to NULL
1905         after we unref it (Patch from Chris Boscolo, #2174).
1906         
1907 2005-06-16  Colin Walters  <walters@verbum.org>
1908
1909         * python/dbus_bindings.pyx.in: Import size_t,
1910         __int64_t, __uint64_t, and __signed.
1911
1912         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
1913         Define cmsg struct, output it.
1914         (_dbus_read_credentials_unix_socket):
1915         Use cmsg struct.
1916         
1917         Patch from Joe Markus Clarke for FreeBSD support.
1918         
1919 2005-06-16  Colin Walters  <walters@verbum.org>
1920
1921         * tools/dbus-send.c (append_array): Use strtok.
1922         (append_dict): New function.
1923         (type_from_name): New function, extracted from main.
1924         (main): Handle sending dicts.
1925
1926         * tools/dbus-print-message.c (print_iter): Print dict
1927         entries.
1928         
1929 2005-06-16  Colin Walters  <walters@verbum.org>
1930
1931         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
1932         values as the empty string (#2948).
1933         
1934 2005-06-16  Colin Walters  <walters@verbum.org>
1935
1936         * dbus/Makefile.am:
1937         * mono/doc/Makefile.am:
1938         * test/glib/Makefile.am:
1939
1940         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
1941
1942 2005-06-16  Colin Walters  <walters@verbum.org>
1943
1944         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
1945         header byte order from expected byte order (Patch from Chris Wilson, #3475).
1946
1947         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
1948         Increment pointer after swapping fixed array.  Add assertion
1949         for array length.
1950                 
1951 2005-06-15  Colin Walters  <walters@verbum.org>
1952
1953         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
1954         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
1955         
1956 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1957
1958         * NEWS: Update to 0.34
1959
1960 2005-06-15  David Zeuthen  <davidz@redhat.com>
1961
1962         * configure.in (LT_CURRENT): Revert back to 1 as the library
1963         hasn't changed and we've certainly not committed to protocol
1964         stability yet.  All this does is to break ABI. See commit note
1965         from hp@redhat.com 2005-05-05 for details.
1966         
1967 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1968
1969         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
1970         (_dbus_connection_run_builtin_filters): New method
1971         (dbus_connection_dispatch): Run the builtin filters which in turn
1972         runs the peer filter which handles Ping messages.
1973
1974         * doc/TODO: 
1975          - Ping isn't handled: This patch fixes it
1976          
1977          - Add a test case for the Ping message: added TODO item
1978
1979 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1980
1981         * dbus/dbus-message.c:
1982         (dbus_message_has_path): New method
1983         (dbus_message_has_interface): New method
1984         (dbus_message_has_member): New method
1985
1986         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
1987         New method
1988
1989         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
1990         the keyring directory is private to the user
1991
1992         * doc/TODO:
1993          - The convenience functions in dbus-bus.h should perhaps have
1994          the signatures that they would have if they were autogenerated
1995          stubs. e.g. the acquire service function. We should also evaluate
1996          which of these functions to include, in light of the fact that
1997          GLib/Qt native stubs will probably also exist.: Punted
1998
1999          - add dbus_message_has_path(), maybe has_member/interface:
2000          fixed in this patch
2001
2002          - in dbus-keyring.c, enforce that the keyring dir is not
2003          world readable/writable: Fixed in this patch
2004
2005 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2006
2007         * dbus/dbus-marshal-validate.h: Added a new validation
2008         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2009         out of memory errors when validating signitures
2010
2011         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2012         in places where we previously used DBUS_VALID and a FALSE return 
2013         value to indicate OOM
2014         
2015         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2016         Use a stack to track the number of elements inside containers.  The 
2017         stack values are then used to validate that dict entries have only two
2018         elements within them.
2019         (validate_body_helper): check the reason for failure when validating
2020         varients
2021         
2022         * dbus/dbus-message.c (load_message): use 
2023         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2024         DBUS_VALID and a FALSE return value to indicate OOM
2025
2026         * doc/TODO: remove "- validate dict entry number of fields" as this
2027         patch fixes it
2028
2029 2005-06-14  David Zeuthen  <davidz@redhat.com>
2030
2031         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2032         watches (if applicable) and add new watches
2033
2034         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2035         (main): Setup SIGIO signal handler if using D_NOTIFY
2036
2037         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2038
2039         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2040         (merge_included): Also merge conf_dirs list
2041         (bus_config_parser_unref): Clear conf_dirs list
2042         (include_dir): Add directory to conf_dirs list
2043         (bus_config_parser_get_conf_dirs): New function
2044
2045         * bus/dir-watch.[ch]: New files
2046
2047         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2048
2049         * configure.in: Add checks for D_NOTIFY on Linux
2050
2051 2005-06-14  Colin Walters  <walters@verbum.org>
2052
2053         * glib/dbus-binding-tool-glib.c:
2054         * glib/dbus-gobject.c:
2055         * glib/dbus-gvalue.c: Fix indentation and brace style.
2056         
2057 2005-06-14  Ross Burton <ross@openedhand.com>.
2058
2059         * glib/dbus-glib.h: Make DBusGMethodInvocation
2060         a private structure.  Rearrange prototypes a bit.
2061         
2062         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2063         documentation for first_arg_type.
2064         
2065         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2066         here, add documentation.  Move dbus_g_method_return
2067         and dbus_g_method_return_error into public API
2068         section.
2069
2070 2005-06-14  Colin Walters  <walters@verbum.org>
2071
2072         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2073         Add missing return statements, noticed by Ross Burton.
2074         
2075 2005-06-13  Ross Burton <ross@openedhand.com>.
2076
2077         * glib/dbus-gobject.c: Handle errors on message
2078         demarshalling by sending error message back.
2079         * glib/dbus-gvalue.c: Initialize return variables.
2080
2081 2005-06-13  Colin Walters  <walters@verbum.org>
2082
2083         * glib/Makefile.am: Fix thinko in last patch.
2084
2085 2005-06-13  Colin Walters  <walters@verbum.org>
2086
2087         * glib/Makefile.am: Move dbus-gtype-specialized.c
2088         and dbus-gtype-specialized.h into a _HEADERS variable,
2089         install them.
2090
2091 2005-06-12  Colin Walters  <walters@verbum.org>
2092
2093         Async signals and various bugfixes and testing by
2094         Ross Burton <ross@openedhand.com>.
2095
2096         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2097         (dbus_gvalue_genmarshal_name_from_type)
2098         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2099         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2100         (dbus_g_value_types_init, dbus_gtype_from_signature)
2101         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2102         (dbus_gtypes_from_arg_signature): New function prototypes.
2103         (dbus_gvalue_demarshal): Take context and error arguments.
2104         (dbus_gvalue_demarshal_variant): New function.
2105         (dbus_gvalue_demarshal_message): New function.
2106         (dbus_gvalue_store): Delete.
2107
2108         * glib/dbus-gvalue.c:
2109
2110         File has been almost entirely rewritten; now we special-case
2111         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2112         hash tables correctly, etc.  Full support for recursive values
2113         is not yet complete.
2114
2115         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2116         argument of signal to G_TYPE_POINTER since we now pass a
2117         structure.
2118         (lookup_g_marshaller): Delete in favor of
2119         _dbus_gobject_lookup_marshaller.
2120         (marshal_dbus_message_to_g_marshaller): Use
2121         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2122         to handle remote signal callbacks.
2123         (dbus_g_proxy_new_from_proxy): New function; creates a new
2124         DBusGProxy by copying an existing one.
2125         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2126         (dbus_g_proxy_get_path): New functions.
2127         (dbus_g_proxy_marshal_args_to_message): New function;
2128         factored out of existing code.
2129         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2130         from a varargs array.
2131         (dbus_g_proxy_begin_call_internal): New function.
2132         (dbus_g_proxy_end_call_internal): New function.
2133         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2134         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2135         after collecting args into value array.
2136         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2137         invoke dbus_g_proxy_end_call_internal.
2138         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2139         end_call_internal.
2140         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2141         types.
2142         (array_free_all): New function.
2143         (dbus_g_proxy_add_signal): Take GTypes.
2144
2145         * glib/dbus-gobject.h:
2146         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2147         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2148         Prototype.
2149
2150         * glib/dbus-gobject.c: Add a global marshal_table hash which
2151         stores mappings from type signatures to marshallers.  Change lots
2152         of invocations of dbus_gtype_to_dbus_type to
2153         dbus_gtype_to_signature.
2154         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2155         (introspect_signals): Fix test for query.return_type.
2156         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2157         (invoke_object_method): Many changes.  Handle asynchronous
2158         invocations.  Convert arguments with
2159         dbus_gvalue_demarshal_message.  Handle errors.  Use
2160         DBusSignatureIter instead of strlen on args. Handle all arguments
2161         generically.  Special-case variants.
2162         (dbus_g_method_return, dbus_g_method_return_error): New function.
2163         (DBusGSignalClosure): New structure, closes over signal
2164         information.
2165         (dbus_g_signal_closure_new): New function.
2166         (dbus_g_signal_closure_finalize): New function.
2167         (signal_emitter_marshaller): New function; is special marshaller
2168         which emits signals on bus.
2169         (export_signals): New function; introspects object signals and
2170         connects to them.
2171         (dbus_g_object_type_install_info): Take GType instead of
2172         GObjectClass.
2173         (dbus_g_connection_register_g_object): Invoke export_signals.
2174         (dbus_g_connection_lookup_g_object): New function.
2175         (DBusGFuncSignature) New structure; used for mapping type
2176         signatures to marshallers.
2177         (funcsig_hash): New function; hashes DBusGFuncSignature.
2178         (funcsig_equal): New function; compares DBusGFuncSignature.
2179         (_dbus_gobject_lookup_marshaller): New function.
2180         (dbus_g_object_register_marshaller): New function; used to
2181         register a marshaller at runtime for a particular signature.
2182
2183         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2184
2185         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2186         which notes a server method implementation should be
2187         asynchronous.
2188
2189         * glib/dbus-binding-tool-glib.c
2190         (dbus_binding_tool_output_glib_server): Call
2191         dbus_g_value_types_init.
2192         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2193         variants specially.
2194         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2195         of a lookup function.
2196         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2197         (write_untyped_out_args): New method; write output arguments.
2198         (write_formal_declarations_for_direction): Function for
2199         writing prototypes.
2200         (write_formal_parameters_for_direction): Function for
2201         writing implementations.
2202         (write_typed_args_for_direction): Function for writing
2203         arguments prefixed with GTypes.
2204         (write_async_method_client): Write out async version
2205         of method.
2206
2207         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2208         (dbus_g_type_get_marshal_name): Move mapping from GType
2209         to marshal name into here.
2210         (dbus_g_type_get_c_name): Move into here.
2211         (compute_marshaller): Convert signature to type with
2212         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2213         (compute_marshaller_name): Ditto.
2214         (compute_marshaller): Handle async signal annotations.
2215         (gather_marshallers): Return if we don't have a known
2216         prefix.
2217         (generate_glue): Collect introspection blob here, and
2218         write all of the blob at the end.  This allows an object
2219         with multiple interfaces to work.
2220         Mark async methods in introspection blob.
2221
2222         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2223         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2224         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2225
2226         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2227         avoids people accidentally using DBUS_TYPE_* which should
2228         not be necessary anymore.
2229         Do include dbus-gtype-specialized.h, which are utilities
2230         for GLib container types.
2231         Add various #defines for types such as
2232         DBUS_TYPE_G_BOOLEAN_ARRAY.
2233         (DBusGValueIterator, DBusGValue): Define, not fully used
2234         yet.
2235         (dbus_g_value_get_g_type): Type for recursive value.
2236         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2237         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2238         (dbus_g_value_free): Prototypes.
2239         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2240         (dbus_g_proxy_set_interface): Prototype.
2241         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2242         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2243         types.
2244         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2245         Accessors.
2246         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2247         doing async invocations.
2248         (dbus_g_method_return, dbus_g_method_return_error):
2249         Prototypes.
2250         * doc/dbus-tutorial.xml: Update GLib section.
2251         
2252         * tools/dbus-viewer.c (load_child_nodes): Update
2253         for new invocation type of dbus_g_proxy_end_call.
2254         (load_from_service_thread_func): Ditto.
2255
2256         * tools/print-introspect.c (main): Ditto.
2257
2258         * tools/dbus-names-model.c (have_names_notify)
2259         (names_model_reload, names_model_set_connection)
2260         Use GTypes.
2261
2262         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2263         needed since Python bindings use GLib bindings.
2264
2265         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2266         Add --prefix argument.
2267
2268         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2269         unneeded --ignore-unsupported arg.
2270         
2271         * test/glib/test-service-glib.c: 
2272         * test/glib/test-service-glib.xml:
2273         * test/glib/test-dbus-glib.c: Add many more tests.
2274
2275 2005-06-06  David Zeuthen  <davidz@redhat.com>
2276
2277         * doc/TODO: Add item about need to remove deprecated functions.
2278
2279         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2280
2281         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2282         to repair the ABI which was broken with the last commit.
2283
2284 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2285
2286         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2287         (dbus_connection_disconnect): renamed to dbus_connection_close 
2288         for API symmetry with dbus_connection_open
2289         (_dbus_connection_open_internal): 
2290         s/dbus_connection_disconnect/dbus_connection_close
2291
2292         * dbus/dbus-bus.c (dbus_bus_get):
2293         s/dbus_connection_disconnect/dbus_connection_close
2294
2295         * bus/connection.c (bus_connections_unref, 
2296         bus_connections_setup_connection, bus_connections_expire_incomplete):
2297         s/dbus_connection_disconnect/dbus_connection_close
2298
2299         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2300         kill_client_connection_unchecked, check_hello_connection):
2301         s/dbus_connection_disconnect/dbus_connection_close
2302
2303         * bus/bus.c (new_connection_callback):
2304         s/dbus_connection_disconnect/dbus_connection_close
2305
2306         * tools/dbus-send.c (main):
2307         s/dbus_connection_disconnect/dbus_connection_close
2308
2309         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2310         s/dbus_connection_disconnect/dbus_connection_close
2311         
2312         * test/test-service.c (path_message_func, filter_func):
2313         s/dbus_connection_disconnect/dbus_connection_close
2314         
2315         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2316         
2317 2005-05-25  Colin Walters  <walters@verbum.org>
2318
2319         * dbus/dbus-protocol.h: Move various bus service #defines such
2320           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2321           dbus/dbus-shared.h.
2322         * dbus/dbus-shared.h: Various defines moved here.
2323         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2324
2325 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
2326
2327         * python/__init__.py: Python bindings deserve a minor version
2328         update.  Upped to (0, 40, 2)
2329
2330 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
2331
2332         * python/decorators.py: add explicitly_pass_message decorator
2333         for passing in the dbus message as keyword for edge case signal
2334         handling
2335
2336         * python/matchrules.py (SignalMatchRule.__repr__): fix output
2337         to conform with what dbus expects for match rules
2338         (SignalMatchRule.execute): add the dbus message as a keyword
2339         if the signal handler has requested it
2340
2341         * python/examples/example/signal-recipient.py: added some more
2342         examples on how to hook up to signals
2343
2344 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
2345
2346         * python/decorators.py: import dbus_bindings
2347
2348         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
2349         SignalMatchNode): new classes that implement wildcard signal
2350         callback matching using a tree lookup. Heavily modified from a
2351         patch sent by Celso Pinto (fd.o bug #3241)
2352
2353         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2354         use new match classes to handle signals.
2355
2356 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
2357         
2358         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2359
2360 2005-05-18  Havoc Pennington  <hp@redhat.com>
2361
2362         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2363         gettext. Not really worth requiring yet perhaps, but any
2364         production quality 1.0 would require it so we should go ahead and
2365         get things set up. We do have a couple token calls to
2366         bindtextdomain in the code already.
2367
2368 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
2369
2370         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2371         when using recursive g_main_loops
2372
2373         * python/_dbus.py (class Bus): add the ProxyObjectClass
2374         alias for ProxyObject to make it easier for the Twisted 
2375         networking framework to integrate dbus.
2376
2377         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2378         alias for ProxyMethod to make it easier for the Twisted 
2379         networking framework to integrate dbus. 
2380
2381 2005-05-11  Ross Burton  <ross@openedhand.com>
2382
2383         * glib/dbus-glib-tool.c: Add --prefix argument.
2384         * glib/dbus-binding-tool-glib.h: Add prefix argument.
2385         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2386         Add prefix argument.
2387         (generate_glue): Pass prefix argument down.
2388         (dbus_binding_tool_output_glib_server): Pass prefix to
2389         glib-genmarshal.
2390         
2391 2005-05-11  Colin Walters  <walters@verbum.org>
2392
2393         * tools/dbus-send.c (append_array): New function.
2394         (append_arg): Broken out from main.
2395         (main): Add cheesy hack to send arrays and variants.
2396         (usage): Update.
2397         * tools/dbus-print-message.c (print_iter): Broken out
2398         from main.
2399
2400 2005-05-11  Colin Walters  <walters@verbum.org>
2401
2402         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2403         New function, returns signature string for signature iter.
2404         * dbus/dbus-signature.h: Prototype it.
2405         * dbus/dbus-message.c (dbus_message_iter_get_signature):
2406         New function, returns signature string for message iter.
2407         (dbus_message_iter_get_array_len): New function, returns
2408         length of array.
2409         (dbus_message_iter_get_fixed_array): Fix assertion; this
2410         function should be used when the iter is pointing to the
2411         contents of an array
2412         * dbus/dbus-message.h: Prototypes.
2413         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2414         New function; returns length of an array.
2415         * dbus/dbus-marshal-recursive.h: Prototype it.
2416         
2417 2005-05-11  Colin Walters  <walters@verbum.org>
2418
2419         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2420         compilation error.
2421         
2422 2005-05-08  Havoc Pennington  <hp@redhat.com>
2423
2424         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2425         daemon's pid, not the parent's pid, to the file descriptor.
2426         Reported by Taj Morton.
2427
2428 2005-05-05  Havoc Pennington  <hp@redhat.com>
2429
2430         * configure.in (LT_*): add notes on how the libtool versioning
2431         works to save thinking. Increment soname to indicate protocol
2432         breakage (though really the library interface hasn't changed I
2433         guess)
2434
2435         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2436         verify the GUID received from server matches what we were
2437         expecting, if we had an expectation
2438
2439         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2440         (_dbus_auth_get_guid_from_server): new function
2441         (send_begin): parse the OK args
2442
2443         * doc/dbus-specification.xml: add GUID to the auth protocol
2444
2445 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
2446
2447         * Fix my name in previous changelog ;)
2448
2449         * python/proxies.py (ProxyObject.__getattr__): add further patch
2450         from Anthony Baxter to throw an AttributeError when python 
2451         __special__ functions are called instead of marshling them over 
2452         the bus (Bug#1685 comment 3).
2453
2454 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
2455
2456         * python/Makefile.am: changed to use pyexecdir for the binding
2457         shared libraries (Bug#2494)
2458
2459         * python/exceptions.py: bring exceptions over from the bindings
2460         so they can be used in applications (Bug#2036)
2461         Make all exceptions derive from DBusException
2462
2463         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2464         of classes so that print obj doesn't throw an exception (Bug #1685)
2465
2466 2005-05-03  Ross Burton  <ross@openedhand.com>
2467
2468         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2469         Return if we get an error during registration.  Set up a
2470         weak reference on object to unregister if object is destroyed.
2471         (unregister_gobject): New function.
2472         
2473 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
2474
2475         * python/dbus_bindings.pyx.in: 
2476         - added new type classes for hinting to the marashaler what type 
2477         to send over the wire
2478         - added int16 and uint16 marshalers
2479         - Fixed a bug in the type constants that caused int32 to go out
2480         as uint16 over the wire
2481         * python/dbus.py: split up into different files and renamed _dbus.py
2482         * python/__init__.py, python/_util.py, python/decorators.py, 
2483         python/exceptions.py, python/proxies.py, python/services.py,
2484         python/types.py: new files split off from dbus.py
2485         * python/Makefile.am: Add new files, remove dbus.py and 
2486         install all python files to <python module dir>/dbus
2487         * python/examples/*: Added #!/usr/bin/env python to the top of
2488         every example.  Patch provided by Tatavarty Kalyan
2489
2490 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2491
2492         * NEWS: Update to 0.33
2493
2494 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2495
2496         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2497         method for doing async calls
2498         (_pending_call_notification): New C function for handling pendning call
2499         callbacks
2500         (set_notify): New method for setting pending call notification
2501         
2502         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2503         Async capabilities added to remote method calls
2504         (Sender): class removed
2505         (RemoteService): class removed
2506         (ObjectTree): class removed for now
2507         (RemoteObject): Renamed to ProxyObject
2508         (RemoteMethod): Renamed to ProxyMethod
2509         (method): Decorator added for decorating python methods as dbus methods
2510         (signal): Decorator added for decorating python methods as signal emitters
2511         (ObjectType): Metaclass added for generating introspection data and the
2512         method callback vtable
2513         (Interface): Wrapper class added to wrap objects in a dbus interface
2514         (Object): Uses ObjectType as its metaclass and exports Introspect
2515         of the org.freedesktop.DBus.Introspectable interface
2516         (ValidationException, UnknownMethodException): new exceptions
2517
2518         * python/examples/*: Modified to fit with the new bindings
2519
2520 2005-04-23  Havoc Pennington  <hp@redhat.com>
2521
2522         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2523         reported by Tony Houghton
2524
2525         * test/test-service.c (main): test
2526         dbus_connection_get_object_path_data()
2527
2528         * dbus/dbus-object-tree.c (find_handler): be sure we always init
2529         the exact_match
2530         (_dbus_object_tree_get_user_data_unlocked): new function used by
2531         dbus_connection_get_object_path_data()
2532         (do_register): add assertion test for get_user_data_unlocked
2533         (object_tree_test_iteration): more tests
2534
2535         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2536         new function from Dan Reed to let you get the user data from 
2537         dbus_connection_register_object_path()
2538
2539 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
2540
2541         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2542         in numerous places that did not account for the NULL terminator
2543         (signature_from_seed): changed the manual string copy loop to 
2544         just use strcpy instead
2545         make check should now pass
2546
2547 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
2548
2549         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2550         so that it allows messages that are not signals to pass in 
2551         NULL as the interface.
2552
2553 2005-04-18  David Zeuthen  <davidz@redhat.com>
2554
2555         * glib/dbus-gmain.c (io_handler_destroy_source): 
2556         (timeout_handler_destroy_source, connection_setup_free): 
2557         Also unref the source to avoid memory leaks.
2558
2559 2005-04-13  David Zeuthen  <davidz@redhat.com>
2560
2561         * bus/config-parser.c (bus_config_parser_new): Bump this to a
2562         more reasonable, yet still totally arbitrary, value :-). 
2563
2564 2005-04-13  David Zeuthen  <davidz@redhat.com>
2565
2566         * doc/TODO: Added an "important for 1.0" item about selinux
2567         allow/deny messages
2568
2569 2005-04-13  David Zeuthen  <davidz@redhat.com>
2570
2571         * bus/selinux.c: Add c-file-style to top of file
2572         (log_audit_callback): Don't free the data here anymore
2573         (bus_selinux_check): Don't take spid and tpid since appending
2574         that to auxdata may OOM.
2575         (bus_selinux_allows_acquire_service): Handle OOM and signal back
2576         to the caller if we are OOM by taking an error object.
2577         (bus_selinux_allows_send): -do-
2578
2579         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
2580         and bus_selinux_allows_send
2581
2582         * bus/bus.c (bus_context_check_security_policy): Pass error and
2583         pass on OOM thrown by bus_selinux_allows_send()
2584
2585         * bus/services.c (bus_registry_acquire_service): Pass error and
2586         pass on OOM thrown by bus_selinux_allows_acquire_service()
2587
2588 2005-04-13  Havoc Pennington  <hp@redhat.com>
2589
2590         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
2591         message at a time to avoid monopolizing the main loop, bug 
2592         #2953 from Benjamin Otte
2593
2594 2005-04-09  Havoc Pennington  <hp@redhat.com>
2595
2596         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
2597         possible overlap, fix from Daniel Reed
2598         (fixup_alignment): fix signedness warnings
2599         (_dbus_string_append_unichar): ditto
2600
2601 2005-04-09  Havoc Pennington  <hp@redhat.com>
2602
2603         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
2604
2605         * glib/dbus-glib-tool.c (main): fix warning
2606
2607         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
2608
2609         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
2610         add a new function that can be used in simple applications that
2611         don't have a main loop and are willing to block
2612
2613 2005-04-05  David Zeuthen  <davidz@redhat.com>
2614
2615         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
2616
2617         * glib/dbus-gmain.c:
2618         (io_handler_destroy_source): Remove from list of IO handlers
2619         of the ConnectionSetup object
2620         (timeout_handler_destroy_source): -do- for timeout handlers
2621         (io_handler_source_finalized): Don't remove from list since
2622         we now do that in io_handler_destroy_source(). Renamed from
2623         io_handler_source_destroyed
2624         (timeout_handler_source_destroyed): -do- for timeout handlers
2625         (connection_setup_free): It is now safe to iterate over all
2626         IO and timeout handlers as the _destroy_source removes them
2627         from the list synchronously
2628
2629 2005-03-30  Havoc Pennington  <hp@redhat.com>
2630
2631         * configure.in: change check to gtk 2.4
2632
2633         * tools/dbus-viewer.c (name_combo_changed_callback): remove
2634         gtk_combo_box_get_active_text() usage to decrement GTK requirement
2635         to 2.4
2636
2637 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
2638
2639         * News: Update 0.32
2640
2641         * HACKING: Fixed realease instructions.  configure.in should be updated to
2642           the next release by the person who made the last release.
2643
2644 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
2645
2646         * python/lvalue_cast_post_process.py - removed.  Patch has been
2647           submitted to Pyrex maintainers that fixes gcc4.0 errors
2648
2649         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
2650
2651 2005-03-24  Daniel Reed  <n@ml.org>
2652
2653         * tools/Makefile.am: Make print-introspect and
2654         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
2655
2656 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
2657
2658         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
2659
2660         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
2661           had in Red Hat packages for a while but for some reason never 
2662           got merged upstream
2663           (_dbus_is_a_number): New checks if a string
2664           can be converted to a number and does the conversion if it can
2665           (_dbus_user_database_lookup): Add check to see if the given username
2666           is a udi.  This allows udi's to be used instead of usernames in the
2667           config file.
2668           (_dbus_user_database_lookup_group): Add check to see if the given groupname
2669           is a gdi.  This allows gdi's to be used instead of groupnames in the
2670           config file.
2671
2672 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
2673
2674         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
2675           code so that it compiles with gcc4.0
2676
2677         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
2678           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
2679           results back to dbus_binding.c
2680
2681 2005-03-20  Colin Walters  <walters@verbum.org>
2682
2683         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
2684
2685         * configure.in: Require GTK+ 2.6.
2686         
2687 2005-03-20  Colin Walters  <walters@verbum.org>
2688
2689         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
2690
2691 2005-03-17  Tom Parker  <palfrey@tevp.net>
2692
2693         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
2694         print DBUS_UID_UNSET; instead print passed username.  Also
2695         be sure to actually use gid looked up in cache.
2696         
2697         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
2698         for DBUS_GID_UNSET and groupname.
2699
2700 2005-03-17  Colin Walters  <walters@verbum.org>
2701
2702         * bus/print-introspect.c: Move to tools/.
2703         * bus/run-with-tmp-session-bus.sh: Ditto.
2704         
2705         * glib/Makefile.am (dbus-glib-bindings.h): Move
2706         generation to tools/Makefile.am.
2707
2708         * test/glib/run-test.sh: Update to handle move
2709         of run-with-tmp-session-bus.sh.
2710
2711         * test/glib/test-service-glib.c: Update to handle
2712         move of dbus-glib-bindings.h.
2713
2714         * tools/print-introspect.c: Moved here
2715         from bus/, and ported to GLib bindings.
2716
2717         * tools/run-with-tmp-session-bus.sh: Moved here
2718         from bus/.
2719
2720         * tools/Makefile.am: Generate dbus-glib-bindings.h
2721         and dbus-bus-introspect.xml here.
2722
2723         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
2724         Update.
2725
2726 2005-03-17  Colin Walters  <walters@verbum.org>
2727
2728         * bus/driver.c (write_args_for_direction): Use
2729         _dbus_string_get_const_data to retrieve string;
2730         _dbus_string_get_const_data_len doesn't actually return
2731         a NULL-terminated substring.
2732
2733         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
2734         (main): Change to use org_freedesktop_DBus_request_name
2735         instead of using g_proxy_begin_call/end_call.
2736
2737 2005-03-15  Joe Shaw  <joeshaw@novell.com>
2738
2739         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
2740         generating the finalizer.  Fixes from Ben Maurer.
2741
2742 2005-03-12  Joe Shaw  <joeshaw@novell.com>
2743
2744         * mono/BusDriver.cs: Update method names: ListServices
2745         becomes ListNames; GetOwner becomes GetNameOwner.
2746
2747         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
2748         onto the eval stack when removing the delegate.
2749
2750 2005-03-12  Joe Shaw  <joeshaw@novell.com>
2751
2752         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
2753         LT_CURRENT.  Set it to the autoconf variable.
2754                                                                                 
2755         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
2756         classes that disconnects the signal handler delegate from the
2757         service object.  Fixes a big leak of proxy objects on the
2758         client side of things.  Patch from Ben Maurer
2759         <bmaurer@ximian.com>
2760
2761 2005-03-12  Colin Walters  <walters@verbum.org>
2762
2763         * bus/driver.c (write_args_for_direction): New function,
2764         parses a type signature into arguments and outputs to
2765         XML.
2766         (bus_driver_handle_introspect): Use it instead of
2767         hardcoding XML for certain signatures.
2768         
2769         * bus/Makefile.am (dbus-bus-introspect.xml): Add
2770         dependency on dbus-daemon.
2771
2772         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
2773         argument, pass it to dbus_binding_tool_output_glib_client.
2774
2775         * glib/dbus-binding-tool-glib.c
2776         (generate_client_glue): Protect against multiple inclusion.
2777         (dbus_binding_tool_output_glib_client): Add
2778         G_BEGIN_DECLS/G_END_DECLS.
2779
2780         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
2781         Change to just take iface prefix directly.
2782         (write_formal_parameters): Clarify error message.
2783         (check_supported_parameters): New function; checks to see type
2784         signatures of method parameters are supported.
2785         (generate_client_glue): Handle ignore_unsupported flag.
2786         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
2787         parameter.
2788
2789         * glib/Makefile.am (dbus-glib-bindings.h): Pass
2790         --ignore-unsupported by default until glib bindings
2791         support arrays.
2792
2793 2005-03-11  Colin Walters  <walters@verbum.org>
2794
2795         * glib/Makefile.am: Generate dbus-glib-bindings.h and
2796         install it.
2797
2798         * bus/print-introspect.c: New file; prints introspection
2799         data for a given name and object path.
2800
2801         * bus/run-with-tmp-session-bus.sh: New file, refactored
2802         from test/glib/run-test.sh.  Creates a temporary session
2803         bus and runs another program.
2804
2805         * test/glib/run-test.sh: Refactor to invoke
2806         run-with-tmp-session-bus.sh.
2807
2808         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
2809         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
2810         macros instead of hardcoding.
2811
2812         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
2813
2814 2005-03-11  Joe Shaw  <joeshaw@novell.com>
2815
2816         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
2817         this unref; it doesn't match up evenly in some codepaths.
2818         (_dbus_connection_block_pending_call): Unref at every exitpoint;
2819         this evenly matches with the ref near the top of this function.
2820
2821 2005-03-09  Joe Shaw  <joeshaw@novell.com>
2822
2823         * dbus/dbus-object-tree.c
2824         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
2825         and we try to unregister a path that's not registered, still go
2826         through the process of unlocking and don't just return.
2827
2828 2005-03-09  Colin Walters  <walters@verbum.org>
2829
2830         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
2831         to this are generated for client-side wrappers.  Invokes a
2832         D-BUS method and returns reply values.  
2833
2834         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
2835         function; writes signature string for argument direction.
2836         (write_args_for_direction): Change to pass input values directly
2837         instead of via address, and fix indentation.
2838         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
2839         make generated wrappers inlineable.
2840
2841         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
2842         note about using dbus_type_is_fixed.
2843
2844         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
2845         dbus/dbus-signature.c as dbus_type_is_fixed.
2846
2847         All callers updated.
2848
2849         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
2850         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
2851
2852         * dbus/dbus-signature.h: Prototype.
2853
2854         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
2855         error printf code.
2856
2857         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
2858         appropriate instead of just freeing it.
2859         (main): Free returned strings using g_free.
2860
2861         * test/glib/Makefile.am (test-service-glib-glue.h)
2862         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
2863
2864         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
2865         simply maps a simple D-BUS type to GType.
2866         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
2867         GType.
2868         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
2869         initialize the value with it.
2870         (dbus_gvalue_binding_type_from_type): Unused, delete.
2871         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
2872         various types instead of unmarshalling to value data directly.
2873         Remove can_convert boolean.
2874         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
2875         returning directly instead of using can_convert boolean.
2876         (dbus_gvalue_store): New function; not related to D-BUS per-se.
2877         Stores a GValue in a pointer to a value of its corresponding C
2878         type.
2879
2880         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
2881         add dbus_gvalue_store.
2882
2883 2005-03-08  Joe Shaw  <joeshaw@novell.com>
2884
2885         Fix a bunch of lifecycle and memory management problems
2886         in the mono bindings.
2887
2888         * mono/Arguments.cs (Arguments): Implement IDisposable
2889
2890         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
2891         strictly a static class.
2892
2893         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
2894         delegates into this file.
2895         (Connection): Implement IDisposable.
2896         (Dispose): Disconnect the connection and set the raw connection
2897         pointer to IntPtr.Zero.
2898         (~Connection): Call Dispose().
2899         (RegisterObjectPath): Added.  Manages the registration of object
2900         paths so we can cleanly disconnect them at dispose/finalize time.
2901         (UnregisterObjectPath): Ditto.
2902         (set_RawConnection): Unregister all of the object paths when
2903         changing the underlying DBusConnection.  Add them back onto the
2904         new connection, if any.
2905
2906         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
2907         more unmanaged resources anymore, so it's not necessary.  Move all
2908         the DBusObjectPathVTable stuff out of here.
2909         (Handler): Save references to our delegates so that they don't get
2910         finalized.  Call Connection.RegisterObjectPath() instead of
2911         dbus_connection_register_object_path() directly.
2912         (Message_Called): Dispose the message after we're finished with
2913         it.
2914
2915         * mono/Message.cs (Message): Implement IDisposable.
2916         (Dispose): Dispose the Arguments, and set the RawMessage to
2917         IntPtr.Zero.
2918         (SendWithReplyAndBlock): We own the ref to the reply that comes
2919         back from dbus_connection_send_with_reply_and_block() so add a
2920         comment about that and unref it after we've constructed a managed
2921         MethodReturn class around it.  Fixes a big, big leak.
2922
2923         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
2924         method.
2925         (BuildSignalHandler): After we've sent the Signal message, dispose
2926         of it.
2927         (BuildMethod): Dispose of the method call and reply messages after
2928         we've sent the message and extracted the data we want from the
2929         reply.
2930
2931         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
2932         anymore.
2933         (Service_FilterCalled): Dispose of the message after we're
2934         finished with it.
2935
2936 2005-03-08  Joe Shaw  <joeshaw@novell.com>
2937
2938         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
2939         After we attach our pending call to the connection, unref
2940         it.  Fixes a leak.
2941  
2942         * mono/Connection.cs (set_RawConnection): Disconnect our
2943         filter and match callbacks from the old connection and
2944         reconnect them to the new connection, if any.
2945
2946         * mono/DBusType/Array.cs: "Code" is a static member, so
2947         don't use "this" to refer to it.  Fix for stricter checking
2948         in Mono 1.1.4.
2949  
2950         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
2951         object path that we pass into unmanaged code.
2952  
2953         * mono/DBusType/String.cs (Append): Don't leak the string
2954         that we pass into unmanged code.
2955
2956 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
2957         * NEWS: Update for 0.31
2958
2959         * configure.in: Release 0.31
2960         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
2961
2962         * qt/Makefile.am: fixed build
2963
2964         * dbus/Makefile.am: soname bump for libdbus
2965
2966         * glib/Makefile.am: soname bump for libdbus-glib
2967
2968 2005-03-05  Havoc Pennington  <hp@redhat.com>
2969
2970         * dbus/dbus-sysdeps.c:
2971         (pseudorandom_generate_random_bytes_buffer): fix to have no return
2972         value
2973         (_dbus_generate_random_bytes_buffer): fix return value
2974
2975         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
2976         checks actually work, from Tom Parker <fdo@tevp.net>
2977
2978 2005-03-01  Colin Walters  <walters@verbum.org>
2979
2980         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
2981         functions copied from dbus-glib-tool.c.
2982         (main): Convert lots of error code to use them.
2983         Also add some testing for introspection bits.
2984
2985 2005-03-01  Colin Walters  <walters@verbum.org>
2986         
2987         * doc/TODO: Remove introspection signature TODO.
2988
2989 2005-02-27  Colin Walters  <walters@verbum.org>
2990
2991         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
2992         Change return value to const char * instead of int so we can do
2993         full signatures.
2994         (struct PropertyInfo, struct ArgInfo): Store char *.
2995         (property_info_new, arg_info_new): Update parameters, strdup.
2996         (property_info_unref, arg_info_unref): Free.
2997
2998         * glib/dbus-gidl.h: Update prototypes.
2999
3000         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3001         (validate_signature): New function, just validates signature and
3002         sets GError.
3003         (parse_property, parse_arg): Invoke validate_signature.  Store
3004         signature instead of just type code.
3005
3006         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3007         function to return a primary type for a signature, dropping
3008         information about types in container types.
3009         (dbus_gvalue_genmarshal_name_from_type)
3010         (dbus_gvalue_binding_type_from_type)
3011         (dbus_gvalue_ctype_from_type): Update to take full signature
3012          instead of type code.
3013         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3014
3015         * glib/dbus-gvalue.h: Update prototypes for above.
3016
3017         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3018         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3019         (introspect_properties, introspect_signals, write_interface):
3020         Update to handle signatures, and remove usage of
3021         _dbus_gutils_type_to_string.
3022         (handle_introspect): Print out type codes instead of e.g. "string"
3023         in hardcoded introspection XML; also use x_AS_STRING constants
3024         instead of hardcoding in string.
3025
3026         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3027         to string.  Remove usage of _dbus_gutils_type_to_string.
3028
3029         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3030
3031         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3032         deletion.
3033         
3034         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3035         (compute_marshaller_name, generate_glue): Handle signature change
3036         to string.
3037         (write_formal_parameters, write_args_for_direction): Ditto, and
3038         remove FIXME.
3039
3040         * tools/dbus-tree-view.c (type_to_string): Delete.
3041         (info_set_func_text): Update to print full signatures.
3042
3043         * test/glib/test-service-glib.xml: Change types to new
3044         introspection format.
3045
3046 2005-02-26  Havoc Pennington  <hp@redhat.com>
3047
3048         * doc/TODO: remove the "guid" item
3049
3050         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3051         (with_bus_thread_func): use open_private
3052
3053         * dbus/dbus-connection.c (dbus_connection_open_private): new
3054         function that works like the old dbus_connection_open()
3055         (dbus_connection_open): now returns an existing connection if
3056         possible
3057
3058         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3059         through the GUID to the transport
3060
3061         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3062         GUID in hex-encoded form.
3063
3064         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3065         pass GUID argument in to the transport
3066
3067         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3068         guid argument
3069
3070         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3071
3072         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3073
3074 2005-02-25  Havoc Pennington  <hp@redhat.com>
3075
3076         * doc/dbus-specification.xml: document the GUID thing
3077
3078         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3079         globally unique ID for the server, and put a "guid=hexencoded"
3080         field in the address
3081
3082         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3083
3084         * dbus/dbus-message.c: ditto
3085
3086         * dbus/dbus-dataslot.c: ditto
3087
3088         * dbus/dbus-list.c: ditto
3089
3090         * dbus/dbus-internals.h: wait, just include
3091         dbus-threads-internal.h here
3092         
3093         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3094         use in main library
3095
3096         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3097
3098 2005-02-24  Colin Walters  <walters@verbum.org>
3099
3100         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3101
3102 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3103
3104         * glib/Makefile.am: added dbus-gobject.h to sources list
3105         so distcheck doesn't fail
3106         
3107 2005-02-24  Havoc Pennington  <hp@redhat.com>
3108
3109         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3110         you must disconnect before unref, since locking and other things
3111         are screwed up otherwise. Fix assorted other locking stuff.
3112
3113         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3114         fix compilation
3115
3116         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3117         into a private header and don't export from the library
3118
3119         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3120
3121 2005-02-24  Colin Walters  <walters@verbum.org>
3122         
3123         * dbus/dbus-signature.c: New file; implements various functions
3124         related to type signatures.  Includes an interator for parsing,
3125         validation functions.
3126         (dbus_type_is_basic): Moved here from
3127         dbus-marshal-basic.c:_dbus_type_is_basic.
3128         (dbus_type_is_container): Moved here from
3129         dbus-marshal-basic.c:_dbus_type_is_container.
3130
3131         All callers of _dbus_type_is_container and _dbus_type_is_basic
3132         updated, and include dbus-signature.h.
3133
3134         * dbus/dbus-signature.h: New file; prototypes for the above.
3135
3136         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3137         dbus-signature.h.
3138
3139         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3140         function factored out of _dbus_first_type_in_signature.
3141         (_dbus_first_type_in_signature_c_str): New function; returns first
3142         type code for a type signature character.
3143
3144         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3145         handle function moves.
3146
3147         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3148
3149         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3150         function; skips to next complete type in type signature.
3151         Implemented using previous skip_one_complete_type.  Now
3152         skip_one_complete_type just delegates to
3153         _dbus_type_signature_next.
3154
3155         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3156         to dbus-signature.c
3157         (_dbus_type_is_container): Ditto.
3158
3159         * doc/dbus-specification.xml: Update introspection sample to
3160         use real type signatures.
3161
3162         * dbus/dbus-test.h: Prototype signature test.
3163
3164         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3165         signature tests.
3166
3167         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3168
3169 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3170
3171         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3172         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3173
3174 2005-02-21  Colin Walters  <walters@verbum.org>
3175
3176         * dbus/dbus-test-main.c (main): Take optional specific test
3177         argument.
3178
3179         * dbus/dbus-test.c (run_test): New function, runs a test function
3180         with no data directory.
3181         (run_data_test): Like above, but takes data directory.
3182         (dbus_internal_do_not_use_run_tests): Take
3183         specific test argument.  Replace lots of cut n' paste code
3184         with run_test and run_data_test.
3185
3186         * dbus/dbus-test.h: Update prototype for
3187         dbus_internal_do_not_use_run_tests.
3188
3189 2005-02-20  Havoc Pennington  <hp@redhat.com>
3190
3191         Fix bugs reported by Daniel P. Berrange
3192         
3193         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3194         (protected_change_watch): new function
3195         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3196         (_dbus_server_add_watch): change to work like the
3197         dbus-connection.c equivalents; like those, probably kind of
3198         busted, but should at least mostly work for now
3199         (dbus_server_disconnect): drop the lock if we were already
3200         disconnected, patch from Daniel P. Berrange
3201
3202         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3203         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3204         same stuff
3205
3206         * doc/TODO: todo about unscrewing this mess
3207
3208 2005-02-19  Colin Walters  <walters@verbum.org>
3209
3210         * glib/dbus-binding-tool-glib.c
3211         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3212
3213         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3214         as errno.h and sys/stat.h.
3215         (lose): New function, prints error with
3216         newline and exits.
3217         (lose_gerror): Similar, but takes GError for message.
3218         (main): Add --output argument to specify output file to write to,
3219         instead of always printing to stdout.  In this mode, determine
3220         timestamps on source files to see whether any are newer than the
3221         target file.  If not, exit.  Also convert a number of error
3222         messages to use lose (since it's shorter), and switch to using
3223         g_io_channel_shutdown.
3224
3225 2005-02-19  Havoc Pennington  <hp@redhat.com>
3226
3227         * glib/dbus-gobject.c
3228         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3229
3230         * glib/dbus-glib.c: fix doxygen warnings
3231
3232         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3233         is found on an <arg>
3234
3235 2005-02-17  Colin Walters  <walters@verbum.org>
3236
3237         * glib/dbus-gobject.h: Don't export
3238         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3239         
3240         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3241         (invoke_object_method): Handle it.
3242
3243         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3244         Handle rename.
3245         
3246 2005-02-17  Colin Walters  <walters@verbum.org>
3247
3248         * bus/.cvsignore, doc/.cvsignore
3249         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3250         Update.
3251
3252 2005-02-17  Colin Walters  <walters@verbum.org>
3253         
3254         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3255         Rename to DBUS_SERVICE_DBUS.
3256         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3257         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3258         Change the value from "org.freedesktop.Local"
3259         to "org.freedesktop.DBus.Local".
3260         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3261         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3262         DBUS_INTERFACE_INTROSPECTABLE.
3263         Change the value from "org.freedesktop.Introspectable"
3264         to "org.freedesktop.DBus.Introspectable".
3265         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3266         DBUS_INTERFACE_PROPERTIES.
3267         Change the value from "org.freedesktop.Properties"
3268         to "org.freedesktop.DBus.Properties".
3269         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3270         DBUS_INTERFACE_PEER.
3271         Change the value from "org.freedesktop.Peer"
3272         to "org.freedesktop.DBus.Peer".
3273         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3274         DBUS_INTERFACE_LOCAL.
3275         Change the value from "org.freedesktop.Local"
3276         to "org.freedesktop.DBus.Local".
3277
3278         All other users of those constants have been changed.
3279
3280         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3281
3282         * glib/dbus-gobject.c (handle_introspect): Use constants.
3283
3284         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3285
3286 2005-02-17  Colin Walters  <walters@verbum.org>
3287
3288         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3289         (parse_node, parse_interface, parse_method, parse_signal)
3290         (parse_property, parse_annotation): Lose if we're currently in an
3291         annotation.
3292         (parse_annotation): New function.
3293         (parser_start_element, parser_end_element): Handle annotation.
3294         (parse_method, parse_interface): Remove support for c_name attribute,
3295         switch to annotations.
3296
3297         * glib/dbus-gidl.h (interface_info_get_binding_names)
3298         (method_info_get_binding_names)
3299         (interface_info_get_binding_name, method_info_get_binding_name)
3300         (interface_info_set_binding_name, method_info_set_binding_name):
3301         Remove.
3302         (interface_info_get_annotations, method_info_get_annotations)
3303         (interface_info_get_annotation, method_info_get_annotation)
3304         (interface_info_add_annotation, method_info_add_annotation):
3305         Prototype.
3306
3307         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3308         for "bindings".
3309         (struct MethodInfo): Ditto.
3310         Straightfoward conversion of binding methods into annotation methods
3311         as prototyped.
3312
3313         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3314
3315         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3316
3317         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3318         Use new annotation API.
3319
3320         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3321         annotation element.
3322         
3323         * doc/dbus-specification.xml: Discuss introspection annotations,
3324         include list of well-known annotations.
3325
3326         * test/glib/test-service-glib.xml: Make validate against new DTD.
3327
3328 2005-02-17  Colin Walters  <walters@verbum.org>
3329
3330         This patch is based on initial work from
3331         Paul Kuliniewicz <kuliniew@purdue.edu>.
3332
3333         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3334         initialization of GValue from dbus type to here.
3335         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3336         for the "glib-genmarshal" program from a DBus type.
3337         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3338         into the C name for it we use in the glib bindings.
3339         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3340         glib C type (not GValue).
3341         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3342
3343         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3344         from dbus-gobject.c.
3345
3346         * glib/dbus-gutils.h: Prototype it.
3347
3348         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3349         (marshal_dbus_message_to_g_marshaller): Use new shared function
3350         dbus_glib_marshal_dbus_message_to_gvalue_array.
3351
3352         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3353         Will be changed once we have annotations.
3354
3355         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3356         GStaticRWLock.  Callers updated.
3357         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
3358         (string_table_next): New function for iterating over zero-terminated
3359         string value array.
3360         (string_table_lookup): New function; retrieves specific entry in
3361         array.
3362         (get_method_data): New function; look up method data in object data chunk.
3363         (object_error_domain_prefix_from_object_info)
3364         (object_error_code_from_object_info): New functions, but not implemented yet.
3365         (method_interface_from_object_info): New function; retrieve interface name.
3366         (method_name_from_object_info): New function; retrieve method name.
3367         (method_arg_info_from_object_info): New function; retrieve argument data.
3368         (arg_iterate): New function; iterates over serialized argument data.
3369         (method_dir_signature_from_object_info): New function; returns a
3370         GString holding type signature for arguments for just one
3371         direction (input or output).
3372         (method_input_signature_from_object_info)
3373         (method_output_signature_from_object_info): New functions.
3374         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3375         converts dbus message arguments into a GValue array.  Used for both
3376         signal handling and method invocation.
3377         (struct DBusGlibWriteIterfaceData): New utility structure.
3378         (write_interface): New function; generate introspection XML for
3379         an interface.
3380         (introspect_interfaces): New function; gathers all interface->methods,
3381         generates introspection XML for them.
3382         (handle_introspect): Invoke introspect_interfaces.
3383         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3384         (lookup_object_and_method): New function; examines an incoming message
3385         and attempts to match it up (via interface, method name, and argument
3386         signature) with a known object and method.
3387         (gerror_domaincode_to_dbus_error_name): New function; converts a
3388         GError domain and code into a DBus error name.  Needs GError data
3389         added to object introspection to work well.
3390         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3391         GError.
3392         (invoke_object_method): New function to invoke an object method
3393         looked up via lookup_object_and_method.  Parses the incoming
3394         message, turns it into a GValue array, then invokes the marshaller
3395         specified in the DBusGMethodInfo.  Creates a new message with
3396         either return values or error message as appropriate.
3397         (gobject_message_function): Invoke lookup_object_and_method and
3398         invoke_object_method.
3399
3400         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3401         (enum DBusBindingOutputMode): New enum for binding output modes.
3402         (pretty_print): Print binding names.
3403         (dbus_binding_tool_error_quark): GError bits.
3404         (version): Fix typo.
3405         (main): Create GIOChannel for output.  Parse new --mode argument,
3406         possible values are "pretty-print", "glib-server", "glib-client".
3407         Use mode to invoke appropriate function.
3408         
3409         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3410
3411         * glib/dbus-glib-tool.h: New header, just includes GError bits
3412         for now.
3413
3414         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3415         maps binding style to name.
3416         (struct MethodInfo): Ditto.
3417         (get_hash_keys, get_hash_key): Utility function, returns keys for
3418         a GHashTable.
3419         (interface_info_new, method_info_new): Initialize bindings.
3420         (interface_info_unref, method_info_unref): Destroy bindings.
3421         (method_info_get_binding_names, method_info_get_binding_name)
3422         (interface_info_get_binding_names, interface_info_get_binding_name):
3423         Functions for retrieving binding names.
3424         (method_info_set_binding_name, interface_info_set_binding_name):
3425         Functions for setting binding names.
3426
3427         * glib/dbus-binding-tool-glib.h: New file, has prototypes
3428         for glib binding generation.
3429
3430         * glib/dbus-binding-tool-glib.c: New file, implements server-side
3431         and client-side glib glue generation.
3432
3433         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3434         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3435         dbus-glib-tool.h.
3436
3437         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3438         of using GClosureMarshal directly.
3439         (struct DBusGObjectInfo): Add n_infos member.
3440
3441         * test/glib/test-service-glib.xml: New file; contains introspection data
3442         for MyTestObject used in test-service-glib.c.
3443
3444         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3445         (my_object_do_nothing, my_object_increment, my_object_throw_error)
3446         (my_object_uppercase, my_object_many_args): New test methods.
3447         (main): Use dbus_g_object_class_install_info to include generated object
3448         info.
3449
3450         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3451         as well as client-side bindings.
3452
3453         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3454         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3455         using both the dbus_gproxy stuff directly as well as the generated bindings.
3456
3457 2005-02-15  Havoc Pennington  <hp@redhat.com>
3458
3459         * dbus/dbus-connection.c (dbus_connection_dispatch): always
3460         complete a pending call, don't run filters first.
3461
3462         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3463         dbus_pending_call_steal_reply
3464
3465         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3466         _dbus_connection_block_pending_call
3467         (dbus_pending_call_get_reply): change to steal_reply and return a
3468         ref
3469
3470         * dbus/dbus-connection.c
3471         (dbus_connection_send_with_reply_and_block): port to work in terms
3472         of DBusPendingCall
3473         (_dbus_connection_block_pending_call): replace block_for_reply
3474         with this
3475
3476 2005-02-14  Havoc Pennington  <hp@redhat.com>
3477
3478         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3479         properly handle looking up group information by name; fix 
3480         from j@bootlab.org
3481
3482 2005-02-13  Havoc Pennington  <hp@redhat.com>
3483
3484         * dbus/dbus-connection.c (dbus_connection_return_message) 
3485         (dbus_connection_borrow_message): hold dispatch lock while message
3486         is outstanding
3487         (_dbus_connection_block_for_reply): hold dispatch lock while we
3488         block for the reply, so nobody steals our reply
3489         (dbus_connection_pop_message): hold the dispatch lock while we
3490         pluck the message
3491
3492 2005-02-13  Havoc Pennington  <hp@redhat.com>
3493
3494         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3495         (_dbus_connection_release_dispatch)
3496         (_dbus_connection_acquire_io_path)
3497         (_dbus_connection_release_io_path): make the mutex and condvar
3498         control access to the "acquired" flag. Drop the connection lock
3499         while waiting on the condvar. Hopefully these are baby steps in
3500         roughly the right direction.
3501
3502 2005-02-13  Havoc Pennington  <hp@redhat.com>
3503
3504         * dbus/dbus-connection.c: use separate mutexes for the condition
3505         variables; this is some kind of baseline for sanity, but the
3506         condition variables still aren't used correctly afaict
3507
3508 2005-02-13  Havoc Pennington  <hp@redhat.com>
3509
3510         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3511         fix a double-unlock
3512
3513         * dbus/dbus-connection.c
3514         (_dbus_connection_detach_pending_call_unlocked): add this
3515
3516         Initial semi-correct pass through to fix thread locking; there are
3517         still some issues with the condition variable paths I'm pretty
3518         sure
3519         
3520         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3521         lock/unlock calls
3522
3523         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3524         rename to add _unlocked
3525         (struct DBusConnection): move "dispatch_acquired" and
3526         "io_path_acquired" to use only one bit each.
3527         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3528         (dbus_connection_set_watch_functions): hacky fix to reentrancy
3529         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
3530         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
3531         (_dbus_connection_remove_timeout) 
3532         (_dbus_connection_toggle_timeout): drop lock when calling out to
3533         user functions; done in a hacky/bad way.
3534         (_dbus_connection_send_and_unlock): add a missing unlock
3535         (_dbus_connection_block_for_reply): add a missing unlock
3536
3537         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3538         drop lock in a hacky probably unsafe way to call out to user
3539         function
3540
3541 2005-02-12  Havoc Pennington  <hp@redhat.com>
3542
3543         * tools/dbus-tree-view.c (info_set_func_text): display more
3544         details on args
3545
3546         * bus/driver.c (bus_driver_handle_list_services): list the bus
3547         driver
3548
3549         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3550
3551         * glib/dbus-gidl.c (signal_info_get_n_args): new function
3552         (method_info_get_n_args): new function
3553
3554 2005-02-12  Havoc Pennington  <hp@redhat.com>
3555
3556         * bus/driver.c (bus_driver_handle_introspect): add introspection
3557         for bus driver
3558
3559 2005-02-12  Havoc Pennington  <hp@redhat.com>
3560
3561         * bus/driver.c: put the signature of each bus driver method in the
3562         table of handlers and check it on incoming calls; this isn't
3563         really useful, but going to add introspect support in a minute.
3564
3565 2005-02-11  Joe Shaw  <joeshaw@novell.com>
3566
3567         * mono/Connection.cs: The unpredictability of finalizers in mono
3568         prevents us from deterministically disconnecting the filters from
3569         the Service class's finalizer, so move tracking of filters and
3570         matches here.  Add API for that.
3571
3572         * mono/Service.cs: Remove the code, add code which calls the
3573         methods now on the Connection class.
3574
3575 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
3576
3577         * python/dbus.py (class Sender): added to support dbus signals better
3578         (Bus::add_signal_receiver): added expand_args parameter which defaults
3579         to True.  When expand args is True the signal handler will pass the 
3580         message arguments as parameters to the signal handler.  If False
3581         revert to previous behavior where the signal handler must get the
3582         argument list from the message.  This is to help port applications
3583         like HAL that have a tendancy to send variable length argument lists.
3584         self._match_rule_to_receivers is now a dict of dicts.
3585         (Bus::remove_signal_receiver): pop handler off the dict intead of 
3586         removing it from a list
3587         (Bus::_signal_func): change signal handlers so that interface,
3588         signal_name, service, path and message are packed into a Sender
3589         object and that is passed to the handler.  If expand_args is True
3590         extract the args list from the message and append it to the parameter
3591         list
3592         
3593         * python/dbus_bindings.pyx.in (class Signature): added to support 
3594         signiature types
3595         (MessageIter::__init__): changed iteration limit to match D-BUS
3596         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
3597         STRUCT and VARIENT type support
3598         (MessageIter::python_value_to_dbus_sig): made recursive to support
3599         recursive types
3600         (MessageIter::append*): added Signature, dict, tuple 
3601         support
3602
3603         * python/examples/example-client.py: added examples of getting tuples
3604         and dicts
3605
3606         * python/examples/example-service.py: added examples of sending tuples
3607         and dicts
3608
3609         * python/examples/example-signal-recipient.py: Fixed to handle new
3610         signal callback format
3611
3612 2005-02-10  Havoc Pennington  <hp@redhat.com>
3613
3614         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
3615         (call dbus_g_proxy_add_signal)
3616
3617         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3618         escape the hostname
3619         (_dbus_server_new_for_domain_socket): escape the path
3620
3621         * dbus/dbus-address.c (dbus_address_escape_value): new
3622         (dbus_address_unescape_value): new
3623         (dbus_parse_address): unescape values
3624
3625         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
3626
3627         * doc/dbus-specification.xml: explain how to escape values in
3628         addresses
3629
3630 2005-02-10  Havoc Pennington  <hp@redhat.com>
3631
3632         * dbus/dbus-message-factory.c (generate_special): modify test to
3633         avoid using a non-basic dict key
3634
3635         * dbus/dbus-marshal-validate-util.c: add test for the below
3636
3637         * doc/dbus-specification.xml: require that dict keys are a basic
3638         type
3639
3640         * dbus/dbus-marshal-validate.c
3641         (_dbus_validate_signature_with_reason): require that dict key is a
3642         basic type
3643
3644 2005-02-10  Havoc Pennington  <hp@redhat.com>
3645
3646         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3647         change to be _and_unlock instead of _unlocked
3648
3649         * dbus/dbus-connection.c
3650         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
3651         have no_update so we can find this bug quickly in future
3652
3653 2005-02-10  Havoc Pennington  <hp@redhat.com>
3654
3655         * dbus/dbus-message-util.c (verify_test_message): tests for string
3656         array
3657
3658         * dbus/dbus-message.c (dbus_message_append_args_valist): add
3659         support for arrays of string/signature/path
3660
3661 2005-02-10  Joe Shaw  <joeshaw@novell.com>
3662
3663         * dbus/dbus-connection.c
3664         (_dbus_connection_queue_received_message_link,
3665         _dbus_connection_message_sent): Add the path to
3666         the verbose output.
3667         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
3668         _dbus_connection_send_preallocated_unlocked(), updated the
3669         dispatch status, and unlocks.  Fixes a bug where certain
3670         situations (like a broken pipe) could cause a Disconnect message
3671         to not be sent, tricking the bus into thinking a service was still
3672         there when the process had quit.
3673         (_dbus_connection_send_preallocated): Call
3674         _dbus_connection_send_preallocated_and_unlock().
3675         (_dbus_connection_send_and_unlock): Added.  Calls
3676         _dbus_connection_send_preallocated_and_unlock().
3677         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
3678         (dbus_connection_send_with_reply): Update the dispatch status and
3679         unlock.
3680
3681         * mono/Service.cs (~Service): Added.  Removes the filter so that
3682         we don't get unmanaged code calling back into a GCed delegate.
3683         (RemoveFilter); Added.
3684
3685 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
3686
3687         * dbus/dbus-message.c (dbus_message_iter_open_container):
3688         - Removed check for iterator type being an array because
3689         get_arg_type does not work with writer iterators
3690         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
3691
3692 2005-02-07  Havoc Pennington  <hp@redhat.com>
3693
3694         * doc/dbus-specification.xml: some more language cleanups; add
3695         stuff about how to deal with invalid protocol and extension
3696         points; add _ to allowed chars in auth commands; add EXTENSION_
3697         auth command prefix
3698
3699 2005-02-06  Havoc Pennington  <hp@redhat.com>
3700
3701         * s/expected/required/ in a couple places for clarity
3702
3703 2005-02-07  Colin Walters  <walters@verbum.org>
3704
3705         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
3706         sender or proposed_recipient.
3707
3708 2005-02-06  Havoc Pennington  <hp@redhat.com>
3709
3710         * dbus/dbus-message-factory.c (generate_special): more tests
3711
3712         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
3713         array length that exceeds the maximum
3714
3715 2005-02-05  Havoc Pennington  <hp@redhat.com>
3716
3717         * dbus/dbus-message-factory.c (generate_special): more test cases,
3718         increasing coverage
3719
3720         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
3721         reason why a signature was invalid
3722
3723         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
3724         skip the length of the string before we look at it in validation
3725
3726         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
3727         equal_substring
3728
3729         * dbus/dbus-message.c (_dbus_message_loader_new): default
3730         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
3731
3732 2005-02-05  Havoc Pennington  <hp@redhat.com>
3733
3734         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
3735         if the signature of a variant was empty
3736         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
3737         struct with no element type)
3738
3739         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
3740         mangled messages to break things
3741
3742 2005-02-04  Havoc Pennington  <hp@redhat.com>
3743
3744         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
3745         g_quark_try_string() so it actually can return 0
3746         (dbus_g_proxy_connect_signal): ditto
3747
3748 2005-02-04  Havoc Pennington  <hp@redhat.com>
3749
3750         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
3751         bogus warning
3752         (tristring_from_message): assert cleanly on null path/interface
3753         (should not be possible though I decided later)
3754         (dbus_g_proxy_dispose): move proxy manager unregistration here
3755         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
3756         g_return_if_fail() checks
3757
3758 2005-02-04  Havoc Pennington  <hp@redhat.com>
3759
3760         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
3761
3762         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
3763         (with some minor changes)
3764
3765         * doc/dbus-specification.xml: add deprecated attribute to
3766         introspection format
3767
3768 2005-01-31  Havoc Pennington  <hp@redhat.com>
3769
3770         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
3771         think it's sort of right
3772
3773 2005-01-30  Havoc Pennington  <hp@redhat.com>
3774
3775         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
3776
3777 2005-01-30  Havoc Pennington  <hp@redhat.com>
3778
3779         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
3780
3781         * autogen.sh: change to autotools 1.9
3782
3783         * glib/dbus-gproxy.c: completely change how signals work
3784         (dbus_g_proxy_add_signal): new function to specify signature of a
3785         signal
3786         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
3787         and g_warning if the incoming message has the wrong signature.
3788
3789 2005-01-30  Havoc Pennington  <hp@redhat.com>
3790
3791         * tools/dbus-names-model.c (have_names_notify): fix this
3792
3793         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
3794         up the string array handling a bit 
3795
3796 2005-01-30  Havoc Pennington  <hp@redhat.com>
3797
3798         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
3799         (dbus_g_pending_call_cancel): new function
3800
3801         * dbus/dbus-glib.h: move GType decls for connection/message here;
3802         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
3803         here, just kind of rationalizing how we handle all that
3804
3805         * tools/dbus-names-model.c: new file for a tree model listing the
3806         services on a bus
3807
3808         * tools/dbus-tree-view.c (model_new): use proper typing on the
3809         model rows
3810
3811 2005-01-30  Havoc Pennington  <hp@redhat.com>
3812
3813         * glib/dbus-gmain.c: add a custom GSource back that just checks
3814         whether the message queue has anything in it; otherwise, there are 
3815         cases where we won't see messages in the queue since there was no 
3816         IO visible to the glib main loop
3817
3818         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
3819         increase default message timeout to 25 seconds
3820
3821 2005-01-30  Havoc Pennington  <hp@redhat.com>
3822
3823         * test/glib/test-profile.c (no_bus_stop_server): remove the
3824         warning about the g_warning that I just fixed
3825
3826         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
3827         custom source, seems to be a lot easier to understand and work
3828         better.
3829
3830 2005-01-30  Havoc Pennington  <hp@redhat.com>
3831
3832         I think this main loop thing is conceptually broken, but here are 
3833         some band aids. I'll maybe rewrite it in a minute.
3834         
3835         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
3836         custom GSource, so don't pass it in; confusing
3837         (gsource_server_finalize, gsource_connection_finalize): add
3838         finalize handlers that remove all the watches.  
3839
3840 2005-01-30  Havoc Pennington  <hp@redhat.com>
3841
3842         * glib/dbus-gobject.c (introspect_properties): fix the XML
3843         generated
3844
3845         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
3846         which effectively detects the use of freed messages
3847
3848         * glib/dbus-gobject.c (handle_introspect): modify and return the
3849         reply message instead of the incoming message
3850
3851         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
3852         gee, maybe it should SEND THE XML instead of just making a string
3853         and freeing it again ;-)
3854
3855         * tools/dbus-print-message.c (print_message): improve printing of
3856         messages
3857
3858         * configure.in: add debug-glib.service to the output
3859
3860 2005-01-30  Havoc Pennington  <hp@redhat.com>
3861
3862         dbus-viewer introspected and displayed the bus driver
3863         
3864         * dbus/dbus-object-tree.c 
3865         (object_tree_test_iteration): add tests for a handler registered on "/"
3866
3867         * dbus/dbus-object-tree.c
3868         (_dbus_decompose_path): fix to handle path "/" properly
3869         (run_decompose_tests): add tests for path decomposition
3870         
3871         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
3872         properly
3873
3874         * glib/dbus-gobject.c (handle_introspect): fix quotes
3875
3876         * test/glib/run-test.sh: support launching the bus, then running
3877         dbus-viewer
3878
3879         * test/glib/test-service-glib.c (main): put in a trivial gobject
3880         subclass and register it on the connection
3881
3882         * bus/driver.c (bus_driver_handle_introspect): implement
3883         introspection of the bus driver service
3884
3885         * dbus/dbus-protocol.h: add #defines for the XML namespace,
3886         identifiers, doctype decl
3887
3888         * bus/driver.c (bus_driver_handle_get_service_owner): handle
3889         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
3890         returning the service unchanged.
3891         (bus_driver_handle_message): remove old check for reply_serial in
3892         method calls, now the message type deals with that
3893         (bus_driver_handle_message): handle NULL interface
3894
3895         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
3896
3897         * glib/dbus-gloader-expat.c (description_load_from_string): allow
3898         -1 for len
3899
3900         * tools/dbus-viewer.c: add support for introspecting a service on
3901         a bus
3902
3903         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
3904         (dbus_g_pending_call_unref): add
3905
3906 2005-01-29  Havoc Pennington  <hp@redhat.com>
3907
3908         * tools/dbus-tree-view.c: add support for displaying properties.
3909         (run dbus-viewer with an introspect xml file as arg, then resize
3910         the window so the tree elements show up, not sure what that is)
3911
3912         * glib/dbus-gobject.c (handle_introspect): return
3913         org.freedesktop.Properties and org.freedesktop.Introspectable
3914         interfaces when we are introspected.
3915
3916         * doc/dbus-specification.xml: allow empty interface name when 
3917         Get/Set a property
3918
3919 2005-01-29  Havoc Pennington  <hp@redhat.com>
3920
3921         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
3922         though it uses glib, it could be extended for any binding in
3923         principle
3924
3925         * glib/dbus-gobject.c (gobject_message_function): change to the
3926         new way properties work
3927
3928         * dbus/dbus-protocol.h: add the new interfaces
3929
3930         * doc/dbus-specification.xml: document the introspection format,
3931         Introspectable interface, and add an org.freedesktop.Properties
3932         interface.
3933
3934         * glib/dbus-gparser.c: add support for a <property> element
3935
3936         * glib/dbus-gidl.c: add PropertyInfo
3937
3938         * glib/dbus-gobject.c (handle_introspect): put the outermost
3939         <node> outside the signal and property descriptions.
3940         (introspect_properties): export properties as <property> rather
3941         than as method calls
3942
3943 2005-01-28  Havoc Pennington  <hp@redhat.com>
3944
3945         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
3946         related to authentication protocol
3947
3948 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
3949
3950         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
3951                 - BUS_ACTIVATION -> BUS_STARTER
3952                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
3953                 - class MessageIter (__init__): Added recursion checking 
3954                 so we throw a nice error instead of just disconnecting from the
3955                 bus.
3956                 (get): Added arg_type parameter for recursion.
3957                 Removed the nil type
3958                 Added signiture type placeholder (not implemented)
3959                 Added struct type placeholder (not implemented)
3960                 Added varient type placeholder (not implemented)
3961                 Commented out dict type for now     
3962                 (get_element_type): renamed from get_array_type
3963                 (get_*): changed to use the dbus_message_iter_get_basic API
3964                 (get_*_array): removed in favor of recursive get_array method
3965                 (get_array): new recursive method which calls get to marshal
3966                 the elements of the array
3967                 (value_to_dbus_sig): New method returns the corrasponding
3968                 dbus signiture to a python value
3969                 (append): Comment out dict handling for now
3970                 Handle lists with the new recursive API
3971                 Comment out None handling for now
3972                 (append_nil): removed
3973                 (append_*): changed to use dbus_message_iter_append_basic API
3974                 (append_*_array): removed in favor of recursive append_array 
3975                 method
3976                 (__str__): Make it easier to print out recursive iterators
3977                 for debugging
3978                 - class Message (__str__): moved type inspection to the
3979                 MessageIter class' __str__ method
3980                 (get_iter): Added an append parameter wich defaults to False
3981                 If True use the new API's to create an append iterator
3982
3983         * python/dbus.py: Update to use new bindings API
3984                 - TYPE_ACTIVATION -> TYPE_STARTER
3985                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
3986                 - class ActivationBus -> class StarterBus
3987                 - class RemoteObject (__call__): get an append iterator
3988                 - (_dispatch_dbus_method_call): get an append iterator
3989                 - class Object (emit_signal): get an append iterator
3990
3991         * python/examples/: Fixed up the examples to work with the new API
3992                 
3993 2005-01-28  Joe Shaw  <joeshaw@novell.com>
3994
3995         * configure.in: Bump version up to 0.30.
3996
3997         * HACKING: Add a release item to bump the version number up after 
3998         a release.
3999
4000 2005-01-28  Havoc Pennington  <hp@redhat.com>
4001
4002         * doc/dbus-specification.xml: update to describe 16-bit types and
4003         dict entries
4004
4005         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4006         assertion
4007
4008         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4009         type
4010
4011         * dbus/dbus-marshal-recursive.c: implement
4012
4013 2005-01-27  Havoc Pennington  <hp@redhat.com>
4014
4015         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4016
4017         * configure.in: find the right type for 16 and 32 bit ints as well
4018         as 64
4019
4020         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4021         the 16-bit types so people don't have to stuff them in 32-bit or
4022         byte arrays.
4023
4024 2005-01-27  Havoc Pennington  <hp@redhat.com>
4025
4026         * dbus/dbus-message.c: byteswap the message if you init an
4027         iterator to read/write from it
4028         
4029         * dbus/dbus-marshal-byteswap.c: new file implementing 
4030         _dbus_marshal_byteswap()
4031
4032         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4033
4034 2005-01-26  Havoc Pennington  <hp@redhat.com>
4035         
4036         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4037         build, apparently - nobody noticed?)
4038         
4039 2005-01-26  Havoc Pennington  <hp@redhat.com>
4040
4041         * dbus/dbus-marshal-recursive.h: remove todo comment
4042
4043 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4044
4045         * Land the mono binding changes to conform to the new APIs.
4046
4047         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4048         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4049
4050         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4051         type code as a string.
4052         (InitAppending): Rename dbus_message_append_iter_init() to
4053         dbus_message_iter_init_append().
4054
4055         * mono/BusDriver.cs: Rename ServiceEventHandler to
4056         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4057         Rename ServiceOwnerChanged to NameOwnerChanged.
4058
4059         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4060         underlying C call.
4061
4062         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4063
4064         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4065         dbus_bus_acquire_service() to dbus_bus_request_name().
4066
4067         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4068         of Type.UnderlyingSystemType to get the correct element type for
4069         the array.
4070         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4071         dbus_message_get_{element|arg}_type() instead of
4072         dbus_message_iter_init_array_iterator().
4073         (Append): Replace dbus_message_iter_append_array() with
4074         dbus_message_iter_open_container() and
4075         dbus_message_iter_close_container().
4076
4077         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4078         types have been removed.
4079         
4080         * mono/DBusType/*.cs: Replace calls of
4081         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4082         but specify the type in the DllImport extern declaration.  Ditto
4083         for dbus_message_iter_append_[type]() ->
4084         dbus_message_iter_append_basic().
4085
4086         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4087         NameOwnerChangedHandler.
4088
4089 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4090
4091         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4092                 - get_base_service -> get_unique_name
4093                 - bus_get_base_service -> bus_get_unique_name
4094                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4095                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4096                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4097                 - bus_activate_service -> bus_start_service_by_name
4098                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4099                 - bus_acquire_service -> bus_request_name
4100                 - dbus_bus_acquire_service -> dbus_bus_request_name
4101                 - bus_service_exists -> bus_name_has_owner
4102                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4103
4104         * python/dbus.py: Rename of methods
4105                 - activate_service -> start_service_by_name
4106                 - bus_acquire_service -> bus_request_name
4107                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4108                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4109
4110         
4111 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4112
4113         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4114         signature for the method that can't be found.
4115
4116         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4117         the message has any arguments, we need to call
4118         _dbus_type_reader_get_current_type(), not
4119         _dbus_type_reader_has_next().
4120
4121 2005-01-24  Havoc Pennington  <hp@redhat.com>
4122
4123         * dbus/dbus-message-factory.c: more testing of message validation
4124
4125         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4126         header
4127
4128 2005-01-23  Havoc Pennington  <hp@redhat.com>
4129
4130         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4131         get this all working, not many tests in the framework yet though
4132
4133 2005-01-22  Havoc Pennington  <hp@redhat.com>
4134
4135         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4136         tutorial, based on work from David Wheeler.
4137
4138 2005-01-21  Havoc Pennington  <hp@redhat.com>
4139
4140         * dbus/dbus-bus.c: add more return_if_fail checks
4141
4142         * dbus/dbus-message.c (load_message): have the "no validation"
4143         mode (have to edit the code to toggle the mode for now though)
4144
4145         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4146         skips all validation; I want to use this at least for benchmark
4147         baseline, I'm not sure if it should be a publicly-available switch.
4148
4149 2005-01-21  Havoc Pennington  <hp@redhat.com>
4150
4151         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4152         toplevel doxygen group as the low-level API stuff
4153
4154         * dbus/dbus.h: note that libdbus is the low-level API
4155
4156 2005-01-20  Havoc Pennington  <hp@redhat.com>
4157
4158         * update-dbus-docs.sh: script to update docs on the web site, only
4159         works for me though. neener.
4160
4161 2005-01-20  Havoc Pennington  <hp@redhat.com>
4162
4163         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4164         code can reveal bugs in it
4165
4166 2005-01-20  Havoc Pennington  <hp@redhat.com>
4167
4168         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4169         select() version, patches from Tor Lillqvist
4170
4171 2005-01-20  Havoc Pennington  <hp@redhat.com>
4172
4173         * doc/dbus-tutorial.xml: replace > with &gt;
4174
4175         * bus/services.c (bus_registry_acquire_service): validate the name
4176         and return a better error if it's no good.
4177
4178         * doc/dbus-specification.xml: note NO_AUTO_START change
4179
4180         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4181         from AUTO_START, we're toggling the default
4182
4183         * bus/dispatch.c: adapt the tests to change of auto-start default
4184
4185 2005-01-18  Havoc Pennington  <hp@redhat.com>
4186
4187         * rename dbus-daemon-1 to dbus-daemon throughout
4188
4189 2005-01-18  Havoc Pennington  <hp@redhat.com>
4190
4191         * Throughout, grand renaming to strip out the use of "service",
4192         just say "name" instead (or "bus name" when ambiguous).  Did not
4193         change the internal code of the message bus itself, only the
4194         programmer-facing API and messages.
4195         
4196         * doc/dbus-specification.xml: further update the message bus section
4197         
4198         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4199         in error case
4200
4201 2005-01-17  Havoc Pennington  <hp@redhat.com>
4202
4203         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4204         ever
4205
4206         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4207         "invalid name character" not only non-ASCII
4208
4209         * doc/dbus-specification.xml: further update spec, message bus 
4210         parts are still out-of-date but the marshaling etc. stuff is now
4211         accurate-ish
4212
4213 2005-01-17  Havoc Pennington  <hp@redhat.com>
4214
4215         * doc/dbus-specification.xml: partially update spec
4216
4217 2005-01-17  Havoc Pennington  <hp@redhat.com>
4218
4219         * Throughout, align variant bodies according to the contained
4220         type, rather than always to 8. Should save a fair bit of space in
4221         message headers.
4222         
4223         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4224         fix handling of case where p == end
4225
4226         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4227
4228 2005-01-17  Havoc Pennington  <hp@redhat.com>
4229
4230         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4231
4232         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4233         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4234         are marshaling/unmarshaling a boolean.
4235
4236 2005-01-16  Havoc Pennington  <hp@redhat.com>
4237
4238         This is about it on what can be disabled/deleted from libdbus
4239         easily, back below 150K anyhow. Deeper cuts are more work than 
4240         just turning the code off as I've done here.
4241         
4242         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4243         signed int convenience funcs
4244
4245         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4246         verbose mode
4247
4248         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4249         things out of libdbus
4250
4251         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4252         
4253         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4254         tests-enabled-only, though it should probably be deleted)
4255
4256         * dbus/dbus-message-util.c: same stuff
4257
4258         * dbus/dbus-auth-util.c: same stuff
4259
4260 2005-01-16  Havoc Pennington  <hp@redhat.com>
4261
4262         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4263
4264         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4265         way for stripping down dbus-userdb.c stuff included in libdbus.
4266         Rename _dbus_parse_uid for consistency.
4267
4268 2005-01-16  Havoc Pennington  <hp@redhat.com>
4269
4270         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4271         name the assertion failed in
4272
4273         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4274         (_dbus_return_val_if_fail): assert that the name of the function
4275         containing the check doesn't start with '_', since we only want to 
4276         use checks on public functions
4277         
4278         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4279         checks to assertions
4280
4281         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4282         change checks to asserts for private function
4283
4284         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4285         to asserts for private function
4286
4287         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4288         broken assertion that was breaking make check
4289         (_dbus_type_reader_array_is_empty): remove this rather than fix
4290         it, was only used in assertions
4291
4292 2005-01-16  Havoc Pennington  <hp@redhat.com>
4293
4294         * test/unused-code-gc.py: hacky script to find code that's used
4295         only by the bus (not libdbus) or used only by tests or not used at
4296         all. It has some false alarms, but looks like we can clean up a
4297         lot of size from libdbus.
4298
4299         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4300         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4301         
4302 2005-01-16  Havoc Pennington  <hp@redhat.com>
4303
4304         * Add and fix docs according to Doxygen warnings throughout
4305         source.
4306         
4307         * dbus/dbus-marshal-recursive.c
4308         (_dbus_type_reader_array_is_empty): change this to just call
4309         array_reader_get_array_len() and make it static
4310
4311         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4312         from get_array_type
4313         (dbus_message_iter_init_append): rename from append_iter_init
4314
4315         * dbus/dbus-marshal-recursive.c
4316         (_dbus_type_reader_get_element_type): rename from
4317         _dbus_type_reader_get_array_type
4318
4319 2005-01-15  Havoc Pennington  <hp@redhat.com>
4320
4321         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4322
4323         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4324         when DBUS_DISABLE_ASSERT
4325         (_dbus_marshal_set_basic): be sure we align for the string length
4326
4327         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4328         this look faster
4329
4330         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4331         inline macro version
4332         (_dbus_string_set_byte): provide inline macro version
4333
4334 2005-01-15  Havoc Pennington  <hp@redhat.com>
4335
4336         * Land the new message args API and type system.
4337
4338         This patch is huge, but the public API change is not 
4339         really large. The set of D-BUS types has changed somewhat, 
4340         and the arg "getters" are more geared toward language bindings;
4341         they don't make a copy, etc.
4342
4343         There are also some known issues. See these emails for details
4344         on this huge patch:
4345         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4346         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4347         
4348         * dbus/dbus-marshal-*: all the new stuff
4349
4350         * dbus/dbus-message.c: basically rewritten
4351
4352         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4353         freed blocks to be all non-nul bytes so using freed memory is less
4354         likely to work right
4355
4356         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4357         DBUS_FAIL_MALLOC=N environment variable, so you can do
4358         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4359         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4360         thorough.
4361
4362         * qt/message.cpp: port to the new message args API
4363         (operator<<): use str.utf8() rather than str.unicode()
4364         (pretty sure this is right from the Qt docs?)
4365
4366         * glib/dbus-gvalue.c: port to the new message args API
4367
4368         * bus/dispatch.c, bus/driver.c: port to the new message args API
4369
4370         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4371         "locked" flag to TRUE and align_offset to 0; I guess we never
4372         looked at these anyhow, but seems cleaner.
4373
4374         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4375         move allocation padding macro to this header; use it to implement
4376         (_DBUS_STRING_STATIC): ability to declare a static string.
4377
4378         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4379         change to return TRUE if the interface is not set.
4380
4381         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4382         to dbus-marshal-validate.[hc]
4383
4384         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4385         dbus-internals.c
4386
4387         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4388         to dbus-marshal-*.[hc]
4389
4390         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4391         function here from dbus-marshal.c
4392
4393 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4394
4395         * NEWS: Update for 0.23.
4396
4397         * configure.in: Release 0.23.
4398
4399 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4400
4401         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
4402         dbus DLL with --debug.  Clean up after the .mdb files this leaves
4403         behind.
4404
4405         * mono/doc/Makefile.am: Need to uninstall the docs on "make
4406         uninstall"
4407
4408         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4409         is an enum, get the enum's underlying type.  Another mono
4410         1.1.3 fix.
4411
4412 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4413
4414         Patch from Sjoerd Simons <sjoerd@luon.net>
4415
4416         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4417         DESTDIR.  It breaks stuff.
4418
4419 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4420
4421         Patch from Tambet Ingo <tambet@ximian.com>
4422
4423         * mono/DBusType/Array.cs (Get): Get the underlying element type by
4424         calling type.GetElementType().  The code previously depended on
4425         broken Mono behavior, which was fixed in Mono 1.1.3.
4426
4427         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4428         Activator.CreateInstance() so that the class's constructor is
4429         called with the right parameters.
4430
4431 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4432
4433         Patch from Timo Teräs <ext-timo.teras@nokia.com>
4434
4435         * dbus/dbus-connection.c
4436         (_dbus_connection_queue_received_message_link): Call
4437         _dbus_connection_remove_timeout() instead of the _locked()
4438         variant, since it's always called from
4439         _dbus_connection_handle_watch(), which handles the locking.
4440         Removed the _locked() variant since it's no longer used.
4441
4442 2005-01-03  Havoc Pennington  <hp@redhat.com>
4443
4444         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4445         return
4446         
4447 2004-12-26  Havoc Pennington  <hp@redhat.com>
4448
4449         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4450
4451 2005-01-03  Havoc Pennington  <hp@redhat.com>
4452
4453         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4454         floating point
4455
4456         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4457
4458 2005-01-02  Havoc Pennington  <hp@redhat.com>
4459
4460         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4461
4462 2005-01-01  Havoc Pennington  <hp@redhat.com>
4463
4464         * configure.in: add -Wfloat-equal
4465
4466 2005-01-01  Havoc Pennington  <hp@redhat.com>
4467
4468         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
4469         for a variety of reasons '==' doesn't do this.
4470
4471 2004-12-31  Havoc Pennington  <hp@redhat.com>
4472
4473         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4474         I keep wishing I had
4475
4476 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4477
4478         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4479
4480 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4481
4482         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4483         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4484         dbus-protocol.h.  Because they are defines and not enums they are not
4485         autogenerated.
4486
4487 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
4488
4489         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4490         dbus_bus_activate_service
4491
4492         * python/dbus.py (Bus.activate_service): activate a service on the
4493         bus.
4494
4495 2004-12-24  Havoc Pennington  <hp@redhat.com>
4496
4497         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4498         file format has also changed and I haven't adapted to that yet
4499         
4500         * Makefile.am: load .gcno files from latest gcc
4501
4502 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
4503         * Patch from Rob Taylor <robtaylor@fastmail.fm>
4504
4505         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4506         lowlevel binding
4507
4508         * python/dbus.py (get_unix_user): Added binding to 
4509         call dbus_bindings.bus_get_unix_user
4510
4511         * python/extract.py: Modified the proto_pat regex to
4512         handle unsigned long
4513
4514 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4515
4516         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4517         better POSIX compliance.
4518
4519 2004-12-19  Havoc Pennington  <hp@redhat.com>
4520
4521         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
4522         (_dbus_string_insert_8_aligned): new functions
4523
4524         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4525
4526 2004-12-18  Havoc Pennington  <hp@redhat.com>
4527
4528         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4529         macro
4530
4531         * dbus/dbus-message.c: fix a comment, and add a still-unused
4532         not-implemented function
4533
4534         * dbus/dbus-marshal.h: fix comment
4535
4536         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4537
4538 2004-12-17  Joe Shaw  <joeshaw@novell.com>
4539
4540         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4541         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4542         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4543         Type.UnderlyingSystemType to get the actual system type
4544         underneath.  This code previously depended on the broken Mono
4545         behavior, which was fixed in 1.1.3.
4546
4547 2004-11-27  Havoc Pennington  <hp@redhat.com>
4548
4549         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4550         are disabled
4551         (_dbus_string_get_const_data): inline when asserts are disabled
4552
4553         * dbus/dbus-message.c: record the _dbus_current_generation of
4554         creation so we can complain if dbus_shutdown() is used improperly.
4555         Do this only if checks are enabled.
4556
4557         * dbus/dbus-connection.c: ditto
4558         
4559 2004-11-26  Havoc Pennington  <hp@redhat.com>
4560
4561         * test/glib/test-profile.c: add with_bus mode to profile echoes
4562         that go through the bus.
4563
4564         * test/glib/run-test.sh: add ability to run test-profile
4565
4566         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4567         config file reload.
4568
4569 2004-11-26  Havoc Pennington  <hp@redhat.com>
4570
4571         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4572         thing was implemented
4573
4574 2004-11-26  Havoc Pennington  <hp@redhat.com>
4575
4576         * test/glib/test-profile.c: tweak a bit, add support for some
4577         made-up minimal malloc overhead with plain sockets, since in 
4578         real life some sort of buffers are unavoidable thus we could 
4579         count them in the theoretical best case
4580
4581 2004-11-26  Havoc Pennington  <hp@redhat.com>
4582
4583         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
4584         where I was trying to cache one too many messages
4585
4586 2004-11-26  Havoc Pennington  <hp@redhat.com>
4587
4588         * dbus/dbus-message.c: reimplement message cache as an array which 
4589         makes the cache about twice as fast and saves maybe 1.5% overall
4590
4591 2004-11-26  Havoc Pennington  <hp@redhat.com>
4592
4593         * dbus/dbus-threads.c (init_global_locks): forgot to put the
4594         message cache lock here
4595
4596 2004-11-26  Havoc Pennington  <hp@redhat.com>
4597
4598         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
4599         the "char byte_order" next to each other to save 4 bytes
4600         (dbus_message_new_empty_header): reduce preallocation, since the
4601         message cache should achieve a similar effect
4602         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
4603         message cache that keeps a few DBusMessage around in a pool,
4604         another 8% speedup or so.
4605
4606         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
4607
4608 2004-11-25  Havoc Pennington  <hp@redhat.com>
4609
4610         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
4611         to write, without reading or blocking, try it before the poll()
4612         and skip the poll() if nothing remains to write. This is about a
4613         3% speedup in the echo client/server
4614
4615 2004-11-25  Havoc Pennington  <hp@redhat.com>
4616
4617         The primary change here is to always write() once before adding
4618         the write watch, which gives us about a 10% performance increase.
4619         
4620         * dbus/dbus-transport-unix.c: a number of modifications to cope
4621         with removing messages_pending
4622         (check_write_watch): properly handle
4623         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
4624         messages_pending stuff
4625         (check_read_watch): properly handle WAITING_FOR_MEMORY and
4626         AUTHENTICATED cases
4627         (unix_handle_watch): after writing, see if the write watch can be
4628         removed
4629         (unix_do_iteration): assert that write_watch/read_watch are
4630         non-NULL rather than testing that they aren't, since they 
4631         aren't allowed to be NULL. check_write_watch() at the end so 
4632         we add the watch if we did not finish writing (e.g. got EAGAIN)
4633
4634         * dbus/dbus-transport-protected.h: remove messages_pending call,
4635         since it resulted in too much inefficient watch adding/removing; 
4636         instead we now require that the transport user does an iteration 
4637         after queueing outgoing messages, and after trying the first
4638         write() we add a write watch if we got EAGAIN or exceeded our 
4639         max bytes to write per iteration setting
4640
4641         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
4642         function
4643
4644         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
4645         freed and then accessed, valgrind flagged this bug, fix it
4646
4647         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
4648         as the last valid field plus 1, where really it is equal to the
4649         last valid field. Corrects some message corruption issues.
4650
4651         * dbus/dbus-mainloop.c: verbosity changes
4652
4653         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
4654         instead of aborting in one of the test codepaths
4655
4656         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
4657         caused not printing the pid ever again if a verbose was missing
4658         the newline at the end
4659         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
4660
4661         * dbus/dbus-connection.c: verbosity changes; 
4662         (dbus_connection_has_messages_to_send): new function
4663         (_dbus_connection_message_sent): no longer call transport->messages_pending
4664         (_dbus_connection_send_preallocated_unlocked): do one iteration to
4665         try to write() immediately, so we can avoid the write watch. This
4666         is the core purpose of this patchset
4667         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
4668         dump the outgoing message queue, so nobody will get confused
4669         trying to send them or thinking stuff is pending to be sent
4670
4671         * bus/test.c: verbosity changes
4672
4673         * bus/driver.c: verbosity/assertion changes
4674
4675         * bus/dispatch.c: a bunch of little tweaks to get it working again
4676         because this patchset changes when/where you need to block.
4677
4678 2004-11-23  Havoc Pennington  <hp@redhat.com>
4679
4680         * test/glib/test-profile.c: modify to accept a plain_sockets
4681         argument in which case it will bench plain sockets instead of
4682         libdbus, for comparison purposes.
4683
4684 2004-11-22  Havoc Pennington  <hp@redhat.com>
4685
4686         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
4687         threads for more time, so sysprof can get a grip on it.
4688
4689         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
4690         pointless variable
4691
4692 2004-11-13  Havoc Pennington  <hp@redhat.com>
4693
4694         * test/glib/test-profile.c: fix this thing up a bit
4695
4696         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
4697         preallocation sizes by a fair bit; not sure if this will be an
4698         overall performance win or not, but it does reduce reallocs.
4699
4700         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
4701         the test hack that forced constant realloc if asserts are
4702         disabled, so we can profile sanely. Sprinkle in some
4703         _DBUS_UNLIKELY() which are probably pointless, but before I
4704         noticed the real performance problem I put them in.
4705         (_dbus_string_validate_utf8): micro-optimize this thing a little
4706         bit, though callgrind says it didn't help; then special-case
4707         ascii, which did help a lot; then be sure we detect nul bytes as
4708         invalid, which is a bugfix.
4709         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
4710         superstition; use memset to nul the padding instead of a manual
4711         loop.
4712         (_dbus_string_get_length): inline this as a
4713         macro; it showed up in the profile because it's used for loop
4714         tests and so forth
4715
4716 2004-11-10  Colin Walters  <walters@verbum.org>
4717
4718         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
4719         for extra paranoia.
4720
4721 2004-11-09  Colin Walters  <walters@verbum.org>
4722
4723         * dbus/dbus-string.c (_dbus_string_get_length): New
4724         function, writes DBusString to C buffer.
4725
4726         * dbus/dbus-string.h: Prototype it.
4727
4728         * dbus/dbus-message.c (dbus_message_type_to_string): New
4729         function, converts message type into C string.
4730
4731         * dbus/dbus-message.h: Prototype it.
4732
4733         * bus/selinux.c (bus_selinux_check): Take source pid,
4734         target pid, and audit data.  Pass audit data to
4735         avc_has_perm.
4736         (log_audit_callback): New function, appends extra
4737         audit information.
4738         (bus_selinux_allows_acquire_service): Also take
4739         service name, add it to audit data.
4740         (bus_selinux_allows_send): Also take message
4741         type, interface, method member, error name,
4742         and destination, and add them to audit data.
4743         (log_cb): Initialize func_audit.
4744         
4745         * bus/selinux.h (bus_selinux_allows_acquire_service)
4746         (bus_selinux_allows_send): Update prototypes 
4747
4748         * bus/services.c (bus_registry_acquire_service): Pass
4749         service name to bus_selinux_allows_acquire_service.
4750
4751         * bus/bus.c (bus_context_check_security_policy): Pass
4752         additional audit data.  Move assignment of dest
4753         to its own line.
4754
4755 2004-11-07  Colin Walters  <walters@verbum.org>
4756
4757         * dbus/dbus-transport-unix.c (do_authentication): Always
4758         initialize auth_completed.
4759         
4760 2004-11-07  Colin Walters  <walters@verbum.org>
4761
4762         * bus/bus.c (load_config): Break into three
4763         separate functions: process_config_first_time_only,
4764         process_config_every_time, and process_config_postinit.
4765         (process_config_every_time): Move call of
4766         bus_registry_set_service_context_table into
4767         process_config_postinit.
4768         (process_config_postinit): New function, does
4769         any processing that needs to happen late
4770         in initialization (and also on reload).
4771         (bus_context_new): Instead of calling load_config,
4772         open config parser here and call process_config_first_time_only
4773         and process_config_every_time directly.  Later, after
4774         we have forked but before changing UID,
4775         invoke bus_selinux_full_init, and then call
4776         process_config_postinit.
4777         (bus_context_reload_config): As in bus_context_new,
4778         load parse file inside here, and call process_config_every_time
4779         and process_config_postinit.
4780
4781         * bus/services.h, bus/services.c
4782         (bus_registry_set_service_context_table): Rename
4783         from bus_registry_set_sid_table.  Take string hash from config
4784         parser, and convert them here into SIDs.
4785
4786         * bus/config-parser.c (struct BusConfigParser): Have
4787         config parser only store a mapping of service->context
4788         string.
4789         (merge_service_context_hash): New function.
4790         (merge_included): Merge context string hashes instead
4791         of using bus_selinux_id_table_union.
4792         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
4793         simply create a new string hash.
4794         (bus_config_parser_unref): Unref it.
4795         (start_selinux_child): Simply insert strings into hash,
4796         don't call bus_selinux_id_table_copy_over.
4797
4798         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
4799         (bus_selinux_id_table_copy_over): Delete.
4800
4801 2004-11-03  Colin Walters  <walters@verbum.org>
4802
4803         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
4804         variables.
4805         
4806 2004-11-03  Colin Walters  <walters@verbum.org>
4807
4808         * bus/test-main.c (test_pre_hook): Fix test logic,
4809         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
4810
4811 2004-11-02  Colin Walters  <walters@redhat.com>
4812
4813         * bus/selinux.c (bus_selinux_init): Split into two functions,
4814         bus_selinux_pre_init and bus_selinux_post_init.
4815         (bus_selinux_pre_init): Just determine whether SELinux is
4816         enabled.
4817         (bus_selinux_post_init): Do everything else.
4818
4819         * bus/main.c (main): Call bus_selinux_pre_init before parsing
4820         config file, and bus_selinux_post_init after.  This ensures that
4821         we don't lose the policyreload notification thread that
4822         bus_selinux_init created before forking previously.
4823         
4824         * bus/test-main.c (test_pre_hook): Update for split.
4825
4826 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
4827
4828         Patch from Johan Fischer <linux@fischaz.com>
4829         
4830         * mono/doc/Makefile.am (install-data-local): Added directory
4831         install for DESTDIR
4832
4833 2004-10-29  Colin Walters  <walters@redhat.com>
4834
4835         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
4836         parameter for fd to write pid to.       
4837
4838         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
4839         
4840         * bus/bus.c (bus_context_new): Pass print_pid_fd
4841         to _dbus_become_daemon (bug #1720)
4842
4843 2004-10-29  Colin Walters  <walters@redhat.com>
4844
4845         Patch from Ed Catmur <ed@catmur.co.uk>
4846
4847         * mono/doc/Makefile.am (install-data-local): Handle
4848         DESTDIR.
4849
4850 2004-10-29  Colin Walters  <walters@redhat.com>
4851
4852         * bus/.cvsignore, qt/.cvsignore: Update.
4853
4854 2004-10-29  Colin Walters  <walters@redhat.com>
4855
4856         Patch from Kristof Vansant <de_lupus@pandora.be>
4857
4858         * configure.in: Detect Slackware.
4859         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
4860         * bus/rc.messagebus.in: New file.
4861
4862 2004-10-29  Colin Walters  <walters@redhat.com>
4863
4864         * tools/dbus-monitor.c (filter_func): Return
4865         DBUS_HANDLER_RESULT_HANDLED in filter function
4866         for now.  See:
4867         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
4868
4869 2004-10-29  Colin Walters  <walters@redhat.com>
4870
4871         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
4872
4873         * bus/services.c (bus_registry_acquire_service): 
4874         Correctly retrieve service name from DBusString
4875         for printing.
4876
4877 2004-10-29  Colin Walters  <walters@redhat.com>
4878
4879         * dbus/dbus-glib.h: Update documentation to not
4880         refer to internal APIs.
4881
4882 2004-10-27  Joe Shaw  <joeshaw@novell.com>
4883
4884         * mono/Arguments.cs (GetDBusTypeConstructor):
4885         type.UnderlyingSystemType will return "System.Byte" if you do it
4886         on "byte[]", which is not what we want.  So check the type.IsArray
4887         property and use System.Array instead.
4888
4889 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
4890
4891         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
4892         the DBusUserInfo structure since this is passed into the function.
4893         This would cause a double free when the function that allocated
4894         the structure would try to free it when an error occured.
4895
4896         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
4897         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
4898         for service activation to avoid 32bit/64bit parallel install issues
4899
4900 2004-10-21  Colin Walters  <walters@verbum.org>
4901
4902         * AUTHORS: Fix my email address, the @gnu.org one
4903         has been bouncing for some time.  Also add J5.
4904         
4905 2004-10-21  Colin Walters  <walters@verbum.org>
4906
4907         * dbus/dbus-transport-unix.c (do_authentication): Return
4908         authentication status to callers.
4909         (unix_handle_watch): If we completed authentication this round,
4910         don't do another read.  Instead wait until the next iteration,
4911         after we've read any pending data in the auth buffer.
4912         (unix_do_iteration): Ditto.
4913         (unix_handle_watch): Updated for new do_authentication prototype.
4914
4915 2004-10-18  Colin Walters  <walters@verbum.org>
4916
4917         * bus/selinux.c (bus_selinux_enabled): Handle
4918         --disable-selinux case.
4919         
4920 2004-10-18  Colin Walters  <walters@verbum.org>
4921
4922         * bus/selinux.h: Add bus_selinux_enabled.
4923         
4924         * bus/selinux.c (bus_selinux_enabled): Implement it.
4925         
4926         * bus/config-parser.c (struct include): Add
4927         if_selinux_enabled member.
4928         (start_busconfig_child): Parse if_selinux_enabled
4929         attribute for include.
4930         (bus_config_parser_content): Handle it.
4931
4932         * bus/session.conf.in, bus/system.conf.in: Add
4933         inclusion of context mapping to default config files;
4934         conditional on SELinux being enabled.
4935         
4936         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
4937         
4938         * test/data/invalid-config-files/badselinux-1.conf, 
4939         test/data/invalid-config-files/badselinux-2.conf:
4940         Test files for bad syntax.
4941         
4942 2004-10-17  Colin Walters  <walters@verbum.org>
4943
4944         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
4945         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
4946         format specifier mismatches.
4947
4948 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4949
4950         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
4951         format string.
4952
4953         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
4954         pointer (bug #1540, Leonardo Boiko).
4955
4956 2004-09-28  Jon Trowbridge  <trow@ximian.com>
4957
4958         * mono/BusDriver.cs: Changed BusDriver struct to remove
4959         the ServiceCreated and ServiceDeleted events and replace them
4960         with the new ServiceOwnerChanged event.
4961
4962         * mono/example/BusListener.cs: Added a new example program,
4963         which listens for and reports any ServiceOwnerChanged events
4964         on the bus driver.
4965
4966         * mono/example/Makefile.am (DESTDIR): Build changes for the
4967         new BusListener.cs example.
4968
4969 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4970
4971         * bus/signals.c (bus_match_rule_parse): validate the components of
4972         match rules (bug #1439).
4973
4974         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
4975
4976 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4977
4978         * doc/dbus-specification.xml: document ServiceOwnerChanged
4979         signal.
4980         
4981         * bus/driver.c, bus/driver.h, bus/services.c: Use
4982         ServiceOwnerChanged signal instead of ServiceCreated and
4983         ServiceDeleted.
4984         
4985         * bus/dispatch.c: update testcase for the new signal.
4986
4987 2004-09-20  Jon Trowbridge  <trow@ximian.com>
4988
4989         Patch from Nat Friedman <nat@novell.com>
4990
4991         * mono/Makefile.am: A number of small build fixes to allow "make
4992         distcheck" to succeed.
4993
4994         * mono/example/Makefile.am: "make distcheck" fixes.
4995
4996         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
4997         key in @srcdir@.
4998
4999         * test/Makefile.am: "make distcheck" fixes.
5000
5001 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5002
5003         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5004
5005         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5006
5007         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5008         messages after the first one (bug #1389).
5009         
5010         * bus/dispatch.c (check_double_hello_message): add a test case for
5011         the double hello message bug.
5012         (check_existent_service_activation): fix check of spawning error.
5013         
5014 2004-09-16  David Zeuthen  <david@fubar.dk>
5015
5016         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5017
5018 2004-09-12  David Zeuthen  <david@fubar.dk>
5019
5020         Patch from Kay Sievers <kay.sievers@vrfy.org>
5021
5022         * bus/bus.c (bus_context_new):
5023         * bus/bus.h:
5024         * bus/main.c (usage)
5025         (main):
5026         Add commandline option --nofork to override configuration file
5027         setting.
5028
5029 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5030
5031         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5032         compilers don't like it (bug #974).
5033
5034 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5035
5036         * qt/connection.*: Applied patch by Jérôme Lodewyck
5037         <lodewyck@clipper.ens.fr> to integrate an existing
5038         connection into the Qt eventloop
5039
5040 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5041
5042         * mono/BusDriver.cs: Added.  This is a class for interacting with
5043         the org.freedesktop.DBus service.
5044
5045         * mono/Message.cs: Added a mechanism to expose the message that is
5046         currently being dispatched via the static Message.Current
5047         property.  Added Message.Sender and Message.Destination
5048         properties.
5049
5050         * mono/Handler.cs: Expose the dispatched message via
5051         Message.Current when handling method calls.
5052
5053         * mono/Service.cs: Expose the dispatched message via
5054         Message.Current when handling signal emissions.
5055         
5056         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5057         Connection.BaseService property.
5058
5059 2004-08-28  Havoc Pennington  <hp@redhat.com>
5060
5061         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5062
5063         More fixes from Steve Grubb
5064         
5065         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5066         (_dbus_listen_tcp_socket): fix fd leak
5067
5068         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5069         EINTR to a bit lower in the code
5070
5071 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5072
5073         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5074         TRUE if we are inquiring about the existence of the built-in
5075         org.freedesktop.DBus service.
5076
5077 2004-08-25  John Palmieri  <johnp@redhat.com>
5078         * bus/config-parser.c:
5079         (struct PolicyType): Add POLICY_CONSOLE
5080         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5081         (start_busconfig_child): Sets up console element when
5082         <policy at_console=""> is encountered in a policy file
5083         (append_rule_from_element): Convert console elements to console
5084         rules.
5085
5086         * bus/policy.c: 
5087         (bus_policy_create_client_policy): Add console rules to the client
5088         policy based on if the client is at the console
5089         (bus_policy_append_console_rule): New function for adding a
5090         console rule to a policy
5091         (bus_policy_merge): Handle console rule merging
5092
5093         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5094         where we check for console user files
5095         
5096         * dbus/dbus-sysdeps.c:
5097         (_dbus_file_exists): New function which checks if the given
5098         file exists
5099         (_dbus_user_at_console): New function which does the system
5100         specific process of checking if the user is at the console
5101
5102         * dbus/dbus-userdb.c:
5103         (_dbus_is_console_user): New function converts a UID to user name
5104         and then calls the system specific _dbus_user_at_console to 
5105         see if the user is at the console and therefor a console user
5106
5107 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5108
5109         * bus/config-parser.c (set_limit):
5110         * bus/dbus-daemon-1.1.in:
5111         * test/data/valid-config-files/many-rules.conf: set the
5112         max_match_rules_per_connection limt from the config file. 
5113
5114         * doc/busconfig.dtd: update the DTD.
5115
5116         * bus/driver.c: remove some unused variables.
5117
5118 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5119
5120         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5121         it's been replaced by dbus_g_bus_get
5122
5123 2004-08-23  Colin Walters  <walters@redhat.com>
5124
5125         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5126
5127         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5128
5129         * bus/selinux.c: Create a thread for policy reload notification.
5130         (bus_selinux_get_policy_root): Implement.
5131
5132         * bus/config-parser.c (start_busconfig_child)
5133         (bus_config_parser_content): Support SELinux-root relative
5134         inclusion.
5135
5136         * configure.in <HAVE_SELINUX>: Add -lpthread.
5137         
5138         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5139         (test_post_hook): Move memory checking into here.
5140         (test_pre_hook, test_post_hook): Move SELinux checks in
5141         here, but conditional on a DBUS_TEST_SELINUX environment
5142         variable.  Unfortunately we can't run the SELinux checks
5143         as a normal user, since they won't have any permissions
5144         for /selinux.  So this will have to be tested manually
5145         for now, until we have virtualization for most of
5146         libselinux.
5147         
5148 2004-08-23  Havoc Pennington  <hp@redhat.com>
5149
5150         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5151         drop supplementary groups, suggested by Steve Grubb
5152
5153 2004-08-20  Colin Walters  <walters@redhat.com>
5154
5155         * bus/config-parser.c (start_busconfig_child): Remove some unused
5156         variables.
5157         
5158         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5159         warning.
5160
5161 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5162
5163         * configure.in: If --enable-mono is passed in, if we can't find
5164         mono error out.
5165
5166         * mono/Makefile.am: Use /gacutil to install assemblies into the
5167         GAC and not /root.
5168
5169 2004-08-12  Havoc Pennington  <hp@redhat.com>
5170
5171         * NEWS: update for 0.22
5172
5173         * configure.in: release 0.22
5174
5175 2004-08-11  Colin Walters  <walters@redhat.com>
5176
5177         * tools/dbus-send.c (main, usage): Add --reply-timeout
5178         argument.
5179
5180 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5181
5182         * bus/bus.c (process_config_first_time_only): get rid of an unused
5183         DBusError that was causing a memoy leak (bug #989).
5184
5185         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5186         fix compilation on Solaris/Forte C (bug #974)
5187
5188         * bus/main.c (main): plug two minuscule memleaks.
5189
5190 2004-08-10  Havoc Pennington  <hp@redhat.com>
5191
5192         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5193
5194 2004-08-09  Havoc Pennington  <hp@redhat.com>
5195
5196         * COPYING: switch to Academic Free License version 2.1 instead of
5197         2.0, to resolve complaints about patent termination clause.
5198
5199 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5200
5201         * README: added documentation for the --enable-python 
5202         configure switch.
5203
5204 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5205
5206         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5207         _unref in the SELinux support.
5208
5209         * doc/busconfig.dtd: update DTD for SELinux support.
5210
5211         * bus/config-loader-libxml.c: fix error handler and parser
5212         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5213
5214         * configure.in: remove the warning about libxml2.
5215
5216         * dbus/dbus-bus.c: silence doxygen warning.
5217
5218 2004-07-31  Colin Walters  <walters@redhat.com>
5219
5220         * configure.in: Move #error in SELinux check to its own line.
5221
5222 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5223
5224         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5225         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5226         dbus_error_set.
5227
5228         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5229         broken by the change in the _SET_OOM macros.
5230
5231 2004-07-31  Colin Walters  <walters@redhat.com>
5232
5233         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5234         BUS_SET_OOM.
5235
5236 2004-07-31  Colin Walters  <walters@redhat.com>
5237
5238         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5239         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5240         AC_MSG_CHECKING.
5241
5242 2004-07-24  Havoc Pennington  <hp@redhat.com>
5243
5244         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5245
5246         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5247         functionality
5248
5249         * configure.in: add --enable-selinux
5250         
5251         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5252
5253         * bus/main.c (main): initialize and shut down selinux
5254
5255         * bus/connection.c: store SELinux ID on each connection, to avoid 
5256         repeated getting of the string context and converting it into 
5257         an ID
5258
5259         * bus/bus.c (bus_context_get_policy): new accessor, though it
5260         isn't used
5261         (bus_context_check_security_policy): check whether the security
5262         context of sender connection can send to the security context of
5263         recipient connection
5264
5265         * bus/config-parser.c: add parsing for <selinux> and <associate>
5266         
5267         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5268         implement dbus_connection_get_unix_fd()
5269
5270         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5271         function, used by the selinux stuff
5272         
5273 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5274
5275         * bus/config-loader-libxml.c: complete the implementation of
5276         libxml backend for config file loader. Doesn't work with full OOM
5277         test yet. 
5278         
5279         * configure.in: change error when selecting libxml into a warning.
5280         
5281         * test/data/invalid-config-files: add two non-well-formed XML
5282         files. 
5283         
5284         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5285         
5286         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5287         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5288         be necessary to read all the buffer. (bug #894)
5289
5290         * bus/activation.c (bus_activation_activate_service): fix a
5291         potential assertion failure (bug #896). Small optimization in the
5292         case of auto-activation messages.
5293
5294         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5295         add test case for byte-through-vararg bug (#901). patch by Kimmo
5296         Hämäläinen. 
5297
5298 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5299
5300         * python/dbus.py:
5301         * python/dbus_bindings.pyx.in:
5302         Add dbus.init_gthreads (), allow emit_signal to pass
5303         arguments to the signal.
5304         
5305 2004-07-24  Havoc Pennington  <hp@redhat.com>
5306
5307         * AUTHORS: add some people, not really comprehensively, let me
5308         know if I missed you
5309
5310 2004-07-24  Havoc Pennington  <hp@redhat.com>
5311
5312         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5313         Owen
5314
5315         * test/Makefile.am (DIST_SUBDIRS): here also
5316
5317 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5318
5319         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5320         breaking build on Solaris, reported by Farhad Saberi on the ML.
5321
5322         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5323         va_arg invocation to account for integer promotion in the case of
5324         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5325
5326         * bus/services.c (bus_service_remove_owner): fix bug #902, use
5327         _dbus_list_get_first_link, not _dbus_list_get_first.
5328
5329         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5330
5331         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5332         handler functions so that the asserts in _dbus_object_subtree_unref
5333         do not fail.
5334
5335         * dbus/dbus-transport-unix.c (do_reading):
5336         _dbus_transport_queue_messages return value is of type
5337         dbus_bool_t, not DBusDispatchStatus.
5338         
5339 2004-07-19  David Zeuthen  <david@fubar.dk>
5340
5341         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5342
5343         * bus/dispatch.c:
5344         (check_get_connection_unix_user): Debug says GetProperty; but the
5345         method is called GetConnectionUnixUser
5346         (check_get_connection_unix_process_id): New function
5347         (bus_dispatch_test): Actually call check_get_connection_unix_user();
5348         also call check_get_connection_unix_process_id()
5349         
5350         * bus/driver.c:
5351         (bus_driver_handle_get_connection_unix_process_id): New function,
5352         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5353         interface
5354         
5355         * dbus/dbus-auth.c:
5356         (handle_server_data_external_mech): Set pid from the credentials
5357         obtained from the socket
5358         
5359         * dbus/dbus-connection.c:
5360         (dbus_connection_get_unix_process_id): New function
5361         
5362         * dbus/dbus-connection.h: 
5363         Add prototype for dbus_connection_get_unix_process_id
5364         
5365         * dbus/dbus-transport.c:
5366         (_dbus_transport_get_unix_process_id): New function
5367         
5368         * dbus/dbus-transport.h:
5369         Add prototype for _dbus_transport_get_unix_process_id
5370         
5371 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5372
5373         * dbus/dbus-message.c: Message counter fix, patch by Christian
5374         Hammond <chipx86@gnupdate.org>
5375
5376 2004-07-18  Seth Nickell  <seth@gnome.org>
5377
5378         * python/dbus.py:
5379         * python/dbus_bindings.pyx.in:
5380         * python/tests/test-client.py:
5381
5382         Add dbus.ByteArray and dbus_bindings.ByteArray
5383         types so that byte streams can be passed back.
5384
5385         Give jdahlin the heaps of credit that are so
5386         rightfully his.
5387         
5388 2004-07-12  Seth Nickell  <seth@gnome.org>
5389
5390         * python/dbus.py:
5391
5392         Add message argument to the default object_method_handler
5393         function.
5394         
5395         * python/dbus_bindings.pyx.in:
5396
5397         Automatically return NIL when passed an empty list
5398         (we can't pass back a list since lists are typed
5399         and we don't have any idea what type the the client
5400         intended the list to be... :-( )
5401         
5402 2004-07-10  Seth Nickell  <seth@gnome.org>
5403
5404         * python/examples/Makefile.am:
5405
5406         Fix distcheck breakage caused by new examples.
5407
5408 2004-07-10  Seth Nickell  <seth@gnome.org>
5409
5410         * python/dbus.py:
5411
5412         Add "message" argument to service-side dbus.Object
5413         methods. This will break existing services written
5414         using the python bindings, but will allow extraction
5415         of all the message information (e.g. who its from).
5416
5417         Add improved "object oriented" signal handling/emission.
5418         
5419         * python/examples/example-service.py:
5420
5421         Nix this example.
5422         
5423         * python/examples/example-signal-emitter.py:
5424         * python/examples/example-signal-recipient.py:
5425
5426         Two new examples that show how to emit and receive
5427         signals using the new APIs.
5428         
5429         * python/examples/example-signals.py:
5430         * python/examples/gconf-proxy-service.py:
5431         * python/examples/gconf-proxy-service2.py:
5432
5433         Add "message" argument to service methods.
5434
5435 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
5436
5437         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5438         * dbus/bus.c (dbus_bus_get_unix_user)
5439         * doc/dbus-specification.xml: implement GetConnectionUnixUser
5440         method of org.freedesktop.DBus interface.
5441
5442         * bus/dispatch.c: test case
5443
5444 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
5445
5446         * python/Makefile.am: switched include directory from glib/ to dbus/
5447         since dbus-glib.h moved
5448  
5449 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5450
5451         * configure.in: prevent building the gcj stuff and libxml loader
5452         since they are broken.
5453
5454 2004-06-20  Havoc Pennington  <hp@redhat.com>
5455
5456         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
5457         codes from the dbus error names
5458         
5459         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
5460         as dbus/dbus-glib.h and that breakage is now visible due to 
5461         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5462         
5463         * glib/dbus-glib.h: s/gproxy/g_proxy/
5464
5465         * dbus/dbus-shared.h: new header to hold stuff shared with
5466         binding APIs
5467         
5468         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5469         than dbus-errors.h
5470
5471         * glib/dbus-glib.h (dbus_set_g_error): move to
5472         dbus-glib-lowlevel.h
5473
5474         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5475         of stuff to enable this
5476
5477         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5478
5479         * a bunch of other changes with the same basic "separate glib 
5480         bindings from dbus.h" theme
5481         
5482 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
5483
5484         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5485
5486         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5487
5488 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5489
5490         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5491         the reply value of the ServiceExists message.
5492
5493 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
5494
5495         * python/dbus_bindings.pyx.in: No longer need to parse path
5496         elements and pass them as arrays of strings.  The C API now
5497         accepts plain path strings.
5498         (_build_parsed_path): removed 
5499
5500 2004-06-07  Havoc Pennington  <hp@redhat.com>
5501
5502         * doc/TODO: remove auto-activation item since it's done; sort
5503         items by importance/milestone
5504
5505 2004-06-07  Havoc Pennington  <hp@redhat.com>
5506
5507         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5508         random signature when using REQUIRED_FIELDS (this hack won't work
5509         in the long term)
5510
5511         * dbus/dbus-message.c: change the signature to be a header field,
5512         instead of message->signature special-case string. Incremental
5513         step forward. Then we can fix up code to send the signature in the
5514         message, then fix up code to validate said signature, then fix up
5515         code to not put the typecodes inline, etc.
5516         (load_one_message): don't make up the signature after the fact
5517         (decode_header_data): require signature field for the known
5518         message types
5519
5520         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5521
5522         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5523
5524 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
5525
5526         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5527
5528         * mono/Handler.cs: Updated to follow new path argument for
5529         (un-)registering objects.
5530
5531         * mono/example/Makefile.am:
5532         * mono/Makefile.am:
5533         * configure.in: Bumped required version for mono and use new -pkg
5534         syntax for deps
5535
5536 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5537
5538         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5539         registration functions take the path argument as char* instead of
5540         char**.
5541
5542         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5543         split off the path decompostion part of
5544         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5545         warnings. 
5546
5547         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5548         
5549 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5550  
5551         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5552         machine approach.  A state is implemented as a function that
5553         handles incoming events as specified for that state.
5554         
5555         * doc/dbus-specification.xml: Update auth protocol state machine
5556         specification to match implementation.  Remove some leftover
5557         base64 examples.
5558
5559 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5560
5561         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5562         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5563         quiet doxygen.
5564
5565         * Doxyfile.in: remove deprecated options.
5566
5567         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5568         glib/test-thread.h, glib/test-thread-client.c,
5569         glib/test-thread-server.c, glib/test-profile.c,
5570         glib/test-dbus-glib.c: remove these unused files.
5571
5572 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5573
5574         * dbus/dbus-object-tree.c
5575         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5576         non-fallback handlers (bug #684).
5577         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5578         (find_subtree_recurse): report wether the returned subtree is an
5579         exact match or a "fallback" match higher up in the tree.
5580         (object_tree_test_iteration): update test case.
5581
5582 2004-06-01  Seth Nickell  <seth@gnome.org>
5583
5584         * python/dbus_bindings.pyx.in:
5585         * python/tests/test-client.py:
5586
5587         Round off basic type support. Add dicts (yay!), and 
5588         remaining array types.
5589
5590         Make MessageIter more general so it works for dicts too.
5591
5592         Mark all loop variables as C integers.
5593         
5594 2004-05-31  Havoc Pennington  <hp@redhat.com>
5595
5596         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
5597         "in" before "out"
5598
5599         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
5600
5601         * glib/dbus-glib-tool.c (main): set up to have a --self-test
5602         option that runs the tests, and start filling in some code
5603         including for starters just dumping the interfaces to stdout
5604
5605         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
5606
5607         * test/data/valid-introspection-files/lots-of-types.xml: test of
5608         an example introspection file
5609
5610         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
5611         "node" (I think...)
5612
5613 2004-05-31  Seth Nickell  <seth@gnome.org>
5614
5615         * python/dbus_bindings.pyx.in:
5616         * python/tests/test-client.py:
5617
5618         Test Suite: 1
5619         Python Bindings: 0
5620
5621         Fix string array memory trashing bug... oops...
5622
5623 2004-05-30  Seth Nickell  <seth@gnome.org>
5624
5625         * python/dbus.py:
5626
5627         Add a nicer-but-less-flexible alternate API for handling 
5628         calls to virtual objects in dbus.ObjectTree.
5629
5630         Screw up the argument order to the dbus.Object constructor
5631         for consistency with dbus.ObjectTree (and to make dbus_methods
5632         optional for future extension)
5633         
5634         * python/examples/Makefile.am:
5635         * python/examples/gconf-proxy-service.py:
5636         * python/examples/gconf-proxy-service2.py:
5637
5638         Alternate implementation of gconf-proxy-service using the
5639         nicer dbus.ObjectTree API.
5640         
5641         * python/examples/example-service.py:
5642         * python/tests/test-server.py
5643
5644         Reverse the argument order to deal with dbus.Object constructor
5645         changes.
5646         
5647 2004-05-30  Seth Nickell  <seth@gnome.org>
5648
5649         * python/examples/example-client.py:
5650         * python/examples/example-service.py:
5651
5652         Take it back. Lists seem to work but they're broken
5653         in the test suite. Make the base examples use
5654         lists (works fine).
5655
5656 2004-05-30  Seth Nickell  <seth@gnome.org>
5657
5658         * python/dbus_bindings.pyx.in:
5659         * python/tests/test-client.py:
5660
5661         Add some more tests and fix errors that crop up.
5662         Unfortunately, currently it seems like marshalling
5663         and unmarshalling of lists is completely broken :-(
5664
5665 2004-05-30  Seth Nickell  <seth@gnome.org>
5666
5667         * python/dbus_bindings.pyx.in:
5668
5669         Add support for ObjectPath type.
5670
5671         * python/dbus.py:
5672
5673         Refactor message handling code to a common function.
5674         
5675         * python/tests/test-client.py:
5676         * python/tests/test-server.py:
5677
5678         Add tests that check to make sure values of all types
5679         can be echoed from a service w/o mangling.
5680         
5681 2004-05-29  Seth Nickell  <seth@gnome.org>
5682
5683         * python/dbus.py:
5684
5685         Add ObjectTree class which allows implementation
5686         of trees of "virtual" objects. Basically the python
5687         wrapper for "register_fallback".
5688         
5689         * python/examples/Makefile.am
5690         * python/examples/gconf-proxy-client.py:
5691         * python/examples/gconf-proxy-service.py:
5692
5693         Implement a simple GConf proxy service that supports
5694         get/set on string and int GConf keys using the ObjectTree.
5695         
5696 2004-05-29  Seth Nickell  <seth@gnome.org>
5697
5698         * python/dbus.py:
5699         * python/examples/example-client.py:
5700         * python/examples/example-service.py:
5701         * python/examples/list-system-services.py:
5702
5703         Add SessionBus, SystemBus and ActivationBus classes
5704         so you don't need to know the special little BUS_TYPE
5705         flag.
5706         
5707 2004-05-29  Havoc Pennington  <hp@redhat.com>
5708
5709         * bus/config-parser.c (process_test_valid_subdir): temporarily
5710         stop testing config parser OOM handling, since expat has issues
5711         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
5712
5713         * bus/dbus-daemon-1.1.in: change requested_reply to
5714         send_requested_reply/receive_requested_reply so we can send the
5715         replies, not just receive them.
5716
5717         * bus/config-parser.c: parse the new
5718         send_requested_reply/receive_requested_reply
5719
5720         * bus/policy.c (bus_client_policy_check_can_send): add
5721         requested_reply argument and use it
5722
5723         * bus/bus.c (bus_context_check_security_policy): pass through
5724         requested_reply status to message send check
5725
5726         * bus/system.conf.in: adapt to requested_reply change
5727         
5728 2004-05-28  Havoc Pennington  <hp@redhat.com>
5729
5730         * test/glib/test-service-glib.c (main): remove unused variable
5731
5732         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
5733
5734         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
5735         from the enum, no longer in use.
5736
5737         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
5738         works right.
5739
5740         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
5741         whether error_name passed in is a valid error name.
5742
5743 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
5744
5745         * dbus/dbus-message.c (dbus_message_get_args): Added support for
5746         OBJECT_PATH and OBJECT_PATH_ARRAY
5747
5748 2004-05-28  Seth Nickell  <seth@gnome.org>
5749
5750         * python/examples/Makefile.am:
5751
5752         Forget to add Makefile.am. Do not pass go.
5753
5754 2004-05-28  Michael Meeks  <michael@ximian.com>
5755
5756         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
5757         fix no int64 case.
5758
5759         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
5760
5761         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
5762         (_dbus_message_iter_get_basic_type_array): impl.
5763         drastically simplify ~all relevant _get methods to use these.
5764         (_dbus_message_iter_append_basic_array),
5765         (dbus_message_iter_append_basic): impl
5766         drastically simplify ~all relevant _append methods to use these.
5767
5768         * dbus/dbus-message-builder.c (parse_basic_type) 
5769         (parse_basic_array, lookup_basic_type): impl.
5770         (_dbus_message_data_load): prune scads of duplicate /
5771         cut & paste coding.
5772
5773         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
5774         (_dbus_demarshal_basic_type): implement,
5775         (demarshal_and_validate_len/arg): beef up debug.
5776         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
5777
5778 2004-05-27  Seth Nickell  <seth@gnome.org>
5779
5780         * configure.in:
5781         * python/Makefile.am:
5782
5783         Include the example python apps in the tarball.
5784         
5785         * python/examples/list-system-services.py
5786
5787         Add a python new example that fetches the list of services
5788         from the system bus.
5789         
5790 2004-05-27  Seth Nickell  <seth@gnome.org>
5791
5792         * python/dbus.py:
5793         * python/dbus_bindings.pyx.in:
5794
5795         Fix failure to notify that a signal was not handled,
5796         resulted in hung functions.
5797         
5798 2004-05-25  Colin Walters  <walters@redhat.com>
5799
5800         * tools/dbus-monitor.c (main): Monitor all types of messages.
5801
5802 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
5803
5804         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
5805         which unregisters the object path and disposes the handler.
5806
5807 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
5808  
5809         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
5810          
5811         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
5812         operands to && so we call dbus_message_iter_next () for the last
5813         argument also.
5814
5815 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5816
5817         * dbus/dbus-object-tree.c
5818         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
5819         children even if the requested path isn't registered.
5820         (object_tree_test_iteration): test object_tree_list_registered.
5821
5822         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
5823         it to 0.
5824         
5825 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
5826
5827         * doc/TODO: Remove resolved items.
5828
5829         * bus/expirelist.h (struct BusExpireList): remove unused n_items
5830         field.
5831         
5832         * bus/connection.c (bus_connections_expect_reply): Enforce the
5833         per-connection limit on pending replies.
5834         
5835         Patch from Jon Trowbridge <trow@ximian.com>:
5836  
5837         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
5838         up a watch that triggers a config reload when one end of the pipe
5839         becomes readable.
5840         (signal_handler): Instead of doing the config reload in our SIGHUP
5841         handler, just write to the reload pipe and let the associated
5842         watch handle the reload when control returns to the main loop.
5843  
5844         * bus/driver.c (bus_driver_handle_reload_config): Added.
5845         Implements a ReloadConfig method for requesting a configuration
5846         file reload via the bus driver.
5847  
5848 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
5849
5850         * HACKING: Updated release instructions concerning the wiki page.
5851
5852 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
5853
5854         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
5855         filter against auth->allowed_mechs; we only add allowed mechs in
5856         record_mechanisms().
5857  
5858         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
5859         ALLOWED_MECHS to auth-script format so we can set the list of
5860         allowed mechanisms.
5861  
5862         * data/auth/client-out-of-mechanisms.auth-script: New test to
5863         check client disconnects when it is out of mechanisms to try.
5864  
5865         * dbus/dbus-auth.c (process_command): Remove check for lines
5866         longer that 1 MB; we only buffer up maximum 16 kB.
5867  
5868         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5869         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
5870         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
5871         assume there might be unused bytes.
5872  
5873         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
5874         client-out-of-mechs, it is handled in process_reject(). Move check
5875         for max failures to send_rejected(), as it's a server-only thing.
5876
5877         * dbus/dbus-auth.c: Factor out protocol reply code into functions
5878         send_auth(), send_data(), send_rejected(), send_error(),
5879         send_ok(), send_begin() and send_cancel().
5880
5881 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
5882
5883         Remove base64 encoding, replace with hex encoding. Original patch
5884         from trow@ximian.com, added error handling.
5885
5886         * dbus/dbus-string.c (_dbus_string_base64_encode)
5887         (_dbus_string_base64_decode): Remove.
5888         (_dbus_string_hex_decode): Add end_return argument so we can
5889         distinguish between OOM and invalid hex encoding.
5890         (_dbus_string_test): Remove base64 tests and add test case for
5891         invalid hex.
5892
5893         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
5894         Replace base64 with hex.
5895
5896         * test/data/auth/invalid-hex-encoding.auth-script: New test case
5897         for invalid hex encoded data in auth protocol.
5898
5899 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5900
5901         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
5902         leak.
5903
5904 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
5905
5906         * mono/dbus-sharp.dll.config.in: Added for GAC
5907         * mono/dbus-sharp.snk: Added for GAC
5908         * mono/Assembly.cs.in: Added for GAC
5909         * mono/Makefile.am: Changes for GAC installation        
5910         * configure.in: Added refs for dbus-sharp.dll.config.in and
5911         Assembly.cs.in. More fixes for mono testing
5912         * mono/example/Makefile.am: Changed var to CSC
5913         * Makefile.am: Changed flag name to DBUS_USE_CSC
5914
5915 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
5916
5917         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
5918         * mono/doc/*: Added documentation framework
5919         * configure.in: Added monodoc check
5920         * README: Added description of mono configure flags
5921
5922 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
5923
5924         * doc/dbus-specification.xml: Added a "Required" column to the 
5925         header fields table and changed the "zero or more" verbage in
5926         the above paragraph to read "The header must contain the required 
5927         named header fields and zero or more of the optional named header 
5928         fields".
5929         * test/data/invalid-messages/*.message: Added the required PATH 
5930         named header field to the tests so that they don't fail on 
5931         'Missing path field'
5932
5933 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
5934
5935         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
5936         the stack by implicitly defining variable and parameter types and
5937         removing the hack of defining C pointers as python objects and later
5938         casting them.
5939
5940 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
5941
5942         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
5943
5944 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
5945
5946         * mono/DBusType/Dict.cs: Handle empty dicts
5947         * mono/DBusType/Array.cs: Handle empty arrays
5948         * mono/Arguments.cs: Handle empty arguments
5949
5950 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
5951
5952         * dbus-sharp.pc.in: Modified to include include Libs and Requires
5953         field
5954
5955 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
5956
5957         * test/data/valid-messages/standard-*.message: Update message
5958         test scripts to new header field names.
5959
5960 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
5961
5962         * test/break-loader.c (randomly_do_n_things): tracked down buffer
5963         overflow to times_we_did_each_thing array which would chop off the
5964         first character of the failure_dir string. Increased the size of
5965         the array to 7 to reflect the number of random mutation functions
5966         we have.
5967
5968 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
5969
5970         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
5971         unix_server->watch here, it is unreffed in disconnect.
5972         (_dbus_server_new_for_tcp_socket): convert NULL host to
5973         "localhost" here so we don't append NULL to address.
5974         
5975         * dbus/dbus-server.c (_dbus_server_test): Add test case for
5976         various addresses, including tcp with no explicit host.
5977
5978 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5979
5980         * dbus/dbus-message.c (decode_header_data, decode_string_field):
5981         fix incorrect setting of .name_offset in the HeaderField (it was
5982         off by two bytes, positioned right after the name and typecode)
5983
5984         * bus/bus.c (bus_context_new, bus_context_unref): test before
5985         calling dbus_server_free_data_slot and _dbus_user_database_unref
5986         in case of an error.
5987
5988         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
5989         by libdbus-gtool.
5990
5991 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
5992
5993         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
5994         _dbus_poll() instead of select().
5995
5996 2004-04-15  Jon Trowbridge  <trow@ximian.com>
5997
5998         * bus/main.c (signal_handler): Reload the configuration files
5999         on SIGHUP.
6000         (main): Set up our SIGHUP handler.
6001
6002         * bus/bus.c (struct BusContext): Store the config file, user and
6003         fork flag in the BusContext.
6004         (process_config_first_time_only): Added.  Contains the code
6005         (previously in bus_context_new) for setting up the BusContext from
6006         the BusConfigParser that should only be run the first time the
6007         config files are read.
6008         (process_config_every_time): Added.  Contains the code (previously
6009         in bus_context_new) for setting up the BusContext from the
6010         BusConfigParser that should be run every time the config files are
6011         read.
6012         (load_config): Added.  Builds a BusConfigParser from the config
6013         files and passes the resulting structure off to
6014         process_config_first_time_only (assuming this is the first time)
6015         and process_config_every_time.
6016         (bus_context_new): All of the config-related code has been moved
6017         to process_config_first_time_only and process_config_every_time.
6018         Now this function just does the non-config-related initializations
6019         and calls load_config.
6020         (bus_context_reload_config): Added.
6021
6022 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6023
6024         * bus/driver.c (bus_driver_handle_get_service_owner):
6025         implement a GetServiceOwner method.
6026         * doc/dbus-specification.xml: document it.
6027         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6028         
6029         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6030         implement, using the bus GetServiceOwner method.
6031
6032         * test/glib/test-dbus-glib.c:
6033         use dbus_gproxy_new_for_service_owner so that we can receive the
6034         signal. 
6035
6036 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6037
6038         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6039         dbus/dbus-message.c, dbus/dbus-protocol.h
6040         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6041
6042         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6043         dbus/dbus-message.c, dbus/dbus-protocol.h
6044         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6045
6046         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6047         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6048         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6049
6050         * doc/dbus-specification.xml (Header Fields Table):
6051         s/SERVICE/DESTINATION
6052         s/SENDER_SERVICE/SENDER
6053
6054
6055 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6056
6057         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6058         a few seconds.
6059
6060 2004-04-13  Michael Meeks  <michael@ximian.com>
6061
6062         * glib/dbus-gobject.c (handle_introspect): split out
6063         (introspect_properties): this.
6064         (handle_introspect): implement this.
6065
6066         * test/glib/Makefile.am: use the absolute path so the bus
6067         daemon's chdir ("/") doesn't kill us dead.
6068
6069         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6070
6071 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6072
6073         * bus/config-parser.c (struct BusConfigParser): Added
6074         included_files field.
6075         (seen_include): Added.  Checks whether or not a file has already
6076         been included by any parent BusConfigParser.
6077         (bus_config_parser_new): Copy the parent's included_files.
6078         (include_file): Track which files have been included, and fail on
6079         circular inclusions.
6080         (process_test_valid_subdir): Changed printf to report if we are
6081         testing valid or invalid conf files.
6082         (all_are_equiv): Changed printf to be a bit clearer about
6083         what we are actually doing.
6084         (bus_config_parser_test): Test invalid configuration files.
6085
6086 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6087
6088         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6089         argument.  If non-null, the newly-constructed BusConfigParser will
6090         be initialized with the parent's BusLimits instead of the default
6091         values.
6092         (include_file): When including a config file, pass in
6093         the current parser as the parent and then copy the BusLimits
6094         from the included BusConfigParser pack to the current parser.
6095         (process_test_valid_subdir): Renamed from process_test_subdir.
6096         (process_test_equiv_subdir): Added.  Walks through a directory,
6097         descending into each subdirectory and loading the config files
6098         it finds there.  If any subdirectory contains two config files
6099         that don't produce identical BusConfigParser structs, fail.
6100         For now, the BusConfigParser's BusPolicies are not compared.
6101         (bus_config_parser_test): Call both process_test_valid_subdir and
6102         process_test_equiv_subdir.
6103
6104         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6105         argument and pass it along to the call to bus_config_parser_new.
6106         Also made a few small changes to allow this code to compile.
6107
6108         * bus/config-loader-expat.c (bus_config_load): Take a parent
6109         argument and pass it along to the call to bus_config_parser_new.
6110
6111         * bus/bus.c (bus_context_new): Load the config file
6112         with a NULL parent argument.
6113
6114 2004-03-29  Michael Meeks  <michael@ximian.com>
6115
6116         * glib/dbus-gobject.c (introspect_properties): split
6117         out, fix mangled 'while' flow control.
6118         (introspect_signals): implement.
6119         (handle_introspect): update.
6120
6121 2004-03-29  Michael Meeks  <michael@ximian.com>
6122
6123         * glib/dbus-gobject.c (set_object_property): split out / 
6124         re-work, use the property type, and not the message type(!)
6125         (get_object_property): ditto.
6126
6127         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6128         (dbus_gvalue_marshal): make this code re-usable, needed
6129         for signals too, also on both proxy and server side.
6130         Re-write for more efficiency / readability.
6131
6132 2004-03-29  Michael Meeks  <michael@ximian.com>
6133
6134         * dbus/dbus-message.c
6135         (dbus_message_new_error_printf): impl.
6136
6137         * dbus/dbus-connection.c
6138         (dbus_connection_unregister_object_path): fix warning.
6139
6140         * configure.in: fix no-mono-installed situation.
6141
6142 2004-03-27  Havoc Pennington  <hp@redhat.com>
6143
6144         Patch from Timo Teräs:
6145         
6146         * tools/dbus-send.c (main): if --print-reply, assume type is
6147         method call; support boolean type args
6148         
6149         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6150         bunch of memleak and logic bugs
6151         
6152 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6153
6154         * mono/Arguments.cs:
6155         * mono/Introspector.cs:
6156         * mono/Handler.cs:
6157         * mono/InterfaceProxy.cs:
6158         * mono/Message.cs
6159         * mono/ProxyBuilder.cs:
6160         * mono/Service.cs:
6161         Added InterfaceProxy class to avoid building proxies for every
6162         object.
6163
6164         * dbus-message.h:
6165         * dbus-message.c (dbus_message_append_args_valist)
6166         (dbus_message_iter_get_object_path)
6167         (dbus_message_iter_get_object_path_array)
6168         (dbus_message_iter_append_object_path)
6169         (dbus_message_iter_append_object_path_array):
6170         Added object_path iter functions to handle OBJECT_PATH arguments
6171         
6172 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6173
6174         First checkin of mono bindings.
6175         * configure.in:
6176         * Makefile.am:
6177         Build stuff for the bindings
6178         * dbus-sharp.pc.in: Added for pkgconfig
6179         
6180 2004-03-21  Havoc Pennington  <hp@redhat.com>
6181
6182         * test/test-service.c (main): remove debug spew
6183
6184 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6185
6186         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6187         arrays
6188
6189         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6190         (dbus_message_iter_init_array_iterator)
6191         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6192         indicate whether the iterator is empty
6193
6194         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6195         warnings
6196
6197 2004-03-19  Havoc Pennington  <hp@redhat.com>
6198
6199         * NEWS: 0.21 updates
6200
6201         * configure.in: 0.21
6202
6203         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6204         
6205         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6206         you don't need pyrex to make dist
6207
6208         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6209         sources; run moc
6210         
6211 2004-03-18  Richard Hult  <richard@imendio.com>
6212
6213         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6214         (dbus_message_set_auto_activation): Add doxygen docs.
6215
6216 2004-03-16  Richard Hult  <richard@imendio.com>
6217
6218         * bus/activation.c: (bus_activation_service_created),
6219         (bus_activation_send_pending_auto_activation_messages),
6220         (bus_activation_activate_service):
6221         * bus/activation.h:
6222         * bus/dispatch.c: (bus_dispatch),
6223         (check_nonexistent_service_auto_activation),
6224         (check_service_auto_activated),
6225         (check_segfault_service_auto_activation),
6226         (check_existent_service_auto_activation), (bus_dispatch_test):
6227         * bus/driver.c: (bus_driver_handle_activate_service):
6228         * bus/services.c: (bus_registry_acquire_service):
6229         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6230         (dbus_message_get_auto_activation):
6231         * dbus/dbus-message.h:
6232         * dbus/dbus-protocol.h: Implement auto-activation.
6233         
6234         * doc/dbus-specification.xml: Add auto-activation to the spec.
6235
6236 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6237
6238         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6239         fix a bug with CUSTOM types.
6240
6241         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6242         a unit test for this bug (used to fail).
6243
6244 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6245
6246         * bus/activation.c:
6247         (babysitter_watch_callback): notify all pending activations waiting for
6248           the same exec that the activation failed.
6249         (bus_activation_activate_service): shortcut the activation if we 
6250           already waiting for the same executable to start up.
6251
6252 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6253
6254         * bus/activation.c: 
6255         - Added service file reloading. 
6256           Each service files directory is kept in an hash table in 
6257           BusActivation and each BusActivationEntry knows what .service-file it
6258           was read from. So when you try to activate a service the bus will 
6259           check if it's been updated, removed or if new .service-files has 
6260           been installed.
6261         - Test code at the bottom for the service file reloading.
6262         * bus/test-main.c: (main):
6263         * bus/test.h:
6264         - added service reloading test.
6265         * dbus/dbus-sysdeps.c: 
6266         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6267
6268 2004-03-08  Michael Meeks  <michael@ximian.com>
6269
6270         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6271         bail immediately if disconnected, to avoid busy loop.
6272
6273         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6274         cleanup cut/paste/inefficiency.
6275
6276 2004-03-01  David Zeuthen  <david@fubar.dk>
6277
6278         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6279         bug where args were used twice. This bug resulted in a segfault
6280         on a Debian/PPC system when starting the messagebus daemon. Include
6281         dbus-sysdeps.h for DBUS_VA_COPY
6282
6283         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6284
6285         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6286         appropriate va_copy implementation. From GLib
6287         
6288 2004-02-24  Joe Shaw  <joe@ximian.com>
6289
6290         * bus/services.c (bus_registry_acquire_service): We need to pass
6291         in the service name to dbus_set_error() to prevent a crash.
6292
6293 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6294
6295         * AUTHORS: Reveal my True identity.
6296
6297 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6298
6299         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6300         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6301
6302 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6303
6304         * doc/TODO: Added not about better error check of configuration files.
6305
6306 2003-12-02  Richard Hult  <richard@imendio.com>
6307
6308         * Update AFL version to 2.0 throughout the source files to reflect
6309         the update that was done a while ago.
6310
6311 2003-12-02  Richard Hult  <richard@imendio.com>
6312
6313         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6314         wrote_dict_key to FALSE on the iter that the dict is appended to,
6315         just like when appending other types. Fixes a bug where a dict
6316         couldn't be put inside a dict.
6317         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6318         (message_iter_test, _dbus_message_test): Add test case for dict
6319         inside dict.
6320
6321 2003-12-01  David Zeuthen  <david@fubar.dk>
6322
6323         * python/dbus.py: Add the actual message when calling the reciever
6324         of a signal such that parameters can be inspected. Add the method
6325         remove_signal_receiver
6326         
6327 2003-11-26  Mikael Hallendal  <micke@imendio.com>
6328
6329         * bus/*.[ch]:
6330         * dbus/*.[ch]:
6331         * glib/*.[ch]: Made ref functions return the pointer
6332
6333 2003-11-25  Zack Rusin  <zack@kde.org>
6334
6335         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6336
6337         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
6338         wrappers,
6339
6340         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
6341         the Integrator and to better fit with the server,
6342
6343 2003-11-24  Zack Rusin  <zack@kde.org>
6344
6345         * qt/connection.h, qt/connection.cpp: removing initDbus method since
6346         the integrator handles it now
6347
6348         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6349         since QTimer wasn't really meant to be used the way DBusTimeout is
6350
6351 2003-11-24  Zack Rusin  <zack@kde.org>
6352
6353         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
6354         Integrator class which integrates D-BUS with the Qt event loop,
6355
6356         * qt/connection.h, qt/connection.cpp: Move all the code which
6357         was dealing with D-BUS integration to the Integrator class,
6358         and start using Integrator,
6359
6360 2003-11-23  Zack Rusin  <zack@kde.org>
6361
6362         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
6363         wrapper
6364
6365         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6366         switching namespaces to DBusQt, reworking the class,
6367
6368         * Makefile.cvs: switching dependencies so that it matches KDE 
6369         schematics,
6370         
6371         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
6372         the library
6373
6374 2003-11-19  Havoc Pennington  <hp@redhat.com>
6375
6376         * NEWS: update
6377
6378         * configure.in: bump version to 0.20
6379
6380         * configure.in (have_qt): add yet another place to look for qt
6381         (someone hand trolltech a .pc file...)
6382
6383 2003-11-01  Havoc Pennington  <hp@redhat.com>
6384
6385         * doc/dbus-specification.xml: add state machine docs on the auth
6386         protocol; just a first draft, I'm sure it's wrong.      
6387
6388 2003-10-28  David Zeuthen  <david@fubar.dk>
6389
6390         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6391         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6392         
6393 2003-10-28  Havoc Pennington  <hp@redhat.com>
6394
6395         * dbus/dbus-message.c (get_next_field): delete unused function
6396
6397 2003-10-28  Havoc Pennington  <hp@redhat.com>
6398
6399         * bus/expirelist.c (do_expiration_with_current_time): detect
6400         failure of the expire_func due to OOM
6401
6402         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6403
6404         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6405         NoReply error that's now created by the bus when the service exits
6406
6407 2003-10-28  Havoc Pennington  <hp@redhat.com>
6408
6409         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6410         tests for set_path, set_interface, set_member, etc.
6411
6412         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6413
6414         * dbus/dbus-message.c (set_string_field): always just delete and
6415         re-append the field; accept NULL for deletion
6416         (re_align_fields_recurse): reimplement
6417         
6418 2003-10-26  Havoc Pennington  <hp@redhat.com>
6419
6420         * dbus/dbus-connection.c: fix docs to properly describe the
6421         disconnected message
6422         (_dbus_connection_notify_disconnected): remove this function; 
6423         we can't synchronously add the disconnected message, we have to 
6424         do it after we've queued any remaining real messages
6425         (_dbus_connection_get_dispatch_status_unlocked): queue the
6426         disconnect message only if the transport has finished queueing all
6427         its real messages and is disconnected.
6428         (dbus_connection_disconnect): update the dispatch status here
6429
6430 2003-10-22  Havoc Pennington  <hp@redhat.com>
6431
6432         * bus/bus.c (bus_context_check_security_policy): fix up assertion
6433
6434         * bus/connection.c (bus_transaction_send_from_driver): set the
6435         destination to the connection's base service
6436
6437 2003-10-20  Havoc Pennington  <hp@redhat.com>
6438
6439         hmm, make check is currently not passing.
6440         
6441         * doc/dbus-specification.xml: add requirement that custom type
6442         names follow the same rules as interface names.
6443
6444         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6445         duplication and allow 'c' to be 'custom'; dict is now 'm' for
6446         'map'
6447
6448         * doc/dbus-specification.xml: update type codes to match
6449         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6450         CUSTOM. Add type OBJECT_PATH to the spec.
6451
6452 2003-10-17  Havoc Pennington  <hp@redhat.com>
6453
6454         * bus/driver.c (create_unique_client_name): use "." as separator
6455         in base service names instead of '-'
6456
6457         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6458         byte at the end of the string
6459
6460         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6461         optimization macros since string validation seems to be a slow
6462         point.
6463         
6464         * doc/dbus-specification.xml: restrict valid
6465         service/interface/member/error names. Add test suite code for the
6466         name validation.
6467
6468         * dbus/dbus-string.c: limit service/interface/member/error names 
6469         to [0-9][A-Z][a-z]_
6470
6471         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6472         format arg to verbose spew
6473
6474         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6475         memory, return instead of g_error
6476
6477         * test/test-service.c (path_message_func): support emitting a
6478         signal on request
6479
6480         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6481         activation bus type if DBUS_BUS_ACTIVATION was set; default to
6482         assuming the activation bus was the session bus so that services
6483         started manually will still register.
6484         (init_connections_unlocked): fix so that in OOM situation we get
6485         the same semantics when retrying the function
6486         
6487         * test/test-service.c (main): change to use path registration, to
6488         test those codepaths; register with DBUS_BUS_ACTIVATION rather
6489         than DBUS_BUS_SESSION
6490
6491 2003-10-16  Havoc Pennington  <hp@redhat.com>
6492
6493         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6494
6495         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6496         coverage of the tests
6497         (coverage-report.txt): don't move the .da and .bbg files around
6498
6499 2003-10-16  Havoc Pennington  <hp@redhat.com>
6500
6501         * bus/bus.c (struct BusContext): remove struct field I didn't mean
6502         to put there
6503
6504 2003-10-16  Havoc Pennington  <hp@redhat.com>
6505
6506         * bus/connection.c (bus_pending_reply_expired): either cancel or
6507         execute, not both
6508         (bus_connections_check_reply): use unlink, not remove_link, as we
6509         don't want to free the link; fixes double free mess
6510
6511         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6512         where no reply was received
6513
6514         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6515         fix a refcount leak
6516
6517         * bus/signals.c (match_rule_matches): add special cases for the
6518         bus driver, so you can match on sender/destination for it.
6519
6520         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6521         DBUS_PRINT_BACKTRACE is set
6522
6523         * dbus/dbus-internals.c: add pid to assertion failure messages
6524
6525         * dbus/dbus-connection.c: add message type code to the debug spew
6526
6527         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6528         sender=foo not service=foo
6529
6530         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6531         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
6532         DBUS_ACTIVATION_ADDRESS instead
6533
6534         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6535         DBUS_SYSTEM_BUS_ADDRESS if appropriate
6536
6537         * bus/bus.c (bus_context_new): handle OOM copying bus type into
6538         context struct
6539
6540         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6541         (dbus_message_iter_get_object_path_array): new function (half
6542         finished, disabled for the moment)
6543         
6544         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6545         DBUS_MESSAGE_TYPE_ERROR
6546
6547         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6548         avoid redirecting stderr to /dev/null
6549         (babysit): close stdin if not doing the "exit_with_session" thing
6550
6551         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6552         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6553         stdout/stdin, so things don't get confused
6554         
6555         * bus/system.conf.in: fix to allow replies, I modified .conf
6556         instead of .conf.in again.
6557
6558 2003-10-14  David Zeuthen  <david@fubar.dk>
6559
6560         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6561         argtype to arg_type when raising unknown arg type exception.
6562         Changed type list to reflect the changes in dbus-protocol.h so 
6563         the bindings actually work.
6564
6565 2003-10-14  Havoc Pennington  <hp@redhat.com>
6566
6567         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6568         to have a bug keeping it from outputting the .da files sometimes
6569         (string_get_string): don't append garbage nul bytes to the string.
6570
6571 2003-10-15  Seth Nickell  <seth@gnome.org>
6572
6573         * python/Makefile.am:
6574
6575         Include dbus_h_wrapper.h in the dist tarball.
6576
6577 2003-10-14  Havoc Pennington  <hp@redhat.com>
6578
6579         * bus/bus.c (bus_context_check_security_policy): revamp this to
6580         work more sanely with new policy-based requested reply setup
6581
6582         * bus/connection.c (bus_transaction_send_from_driver): set bus
6583         driver messages as no reply
6584
6585         * bus/policy.c (bus_client_policy_check_can_receive): handle a
6586         requested_reply attribute on allow/deny rules
6587
6588         * bus/system.conf: add <allow requested_reply="true"/>
6589
6590         * bus/driver.c (bus_driver_handle_message): fix check for replies
6591         sent to the bus driver, which was backward. How did this ever work
6592         at all though? I think I'm missing something.
6593
6594         * dbus/dbus-message.c (decode_header_data): require error and
6595         method return messages to have a reply serial field to be valid
6596         (_dbus_message_loader_queue_messages): break up this function;
6597         validate that reply serial and plain serial are nonzero; 
6598         clean up the OOM/error handling.
6599         (get_uint_field): don't return -1 from this
6600         (dbus_message_create_header): fix signed/unsigned bug
6601
6602         * bus/connection.c (bus_connections_expect_reply): save serial of
6603         the incoming message, not reply serial
6604
6605 2003-10-14  Havoc Pennington  <hp@redhat.com>
6606
6607         * bus/connection.c: implement pending reply tracking using
6608         BusExpireList
6609
6610         * bus/bus.c (bus_context_check_security_policy): verify that a
6611         reply is pending in order to allow a reply to be sent. Deny 
6612         messages of unknown type.
6613
6614         * bus/dbus-daemon-1.1.in: update to mention new resource limits
6615
6616         * bus/bus.c (bus_context_get_max_replies_per_connection): new
6617         (bus_context_get_reply_timeout): new
6618
6619 2003-10-13  Seth Nickell  <seth@gnome.org>
6620
6621         * python/Makefile.am:
6622
6623         Pass "make distcheck": remove a couple files from DIST_FILES
6624         that weren't included in the final version.
6625
6626 2003-10-12  Havoc Pennington  <hp@pobox.com>
6627
6628         Added test code that 1) starts an actual bus daemon and 2) uses
6629         DBusGProxy; fixed bugs that were revealed by the test. Lots 
6630         more testing possible, but this is the basic framework.
6631         
6632         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
6633         empty proxy lists from the proxy list hash
6634
6635         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
6636         couple of return_if_fail checks
6637
6638         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
6639         to allocate, so everything is cleared to NULL as it should be.
6640
6641         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
6642         source as data to dbus_connection_set_timeout_functions() as the 
6643         timeout functions expected
6644
6645         * test/glib/run-test.sh: add a little script to start up a message
6646         bus and run tests using it
6647
6648         * tools/dbus-launch.1: updates
6649
6650         * tools/dbus-launch.c (main): add --config-file option
6651
6652         * tools/dbus-launch.c (main): remove confusing else if (runprog)
6653         that could never be reached.
6654
6655         * dbus/dbus-message.c (dbus_message_new_method_return) 
6656         (dbus_message_new_error, dbus_message_new_signal): set the
6657         no-reply-expected flag on all these. Redundant, but may
6658         as well be consistent.
6659
6660 2003-10-11  Havoc Pennington  <hp@pobox.com>
6661
6662         * test/decode-gcov.c (function_solve_graph): make broken block
6663         graph a nonfatal error since it seems to be broken. Need to debug
6664         this.
6665
6666         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
6667         can't just check type > INVALID < LAST anymore
6668
6669         * dbus/dbus-message.c (dbus_message_get_signature): new function
6670         (dbus_message_has_signature): new function
6671         (struct DBusMessage): add signature field (right now it isn't sent
6672         over the wire, just generated on the fly)
6673         (dbus_message_copy): copy the signature, and init strings to
6674         proper length to avoid some reallocs
6675         (dbus_message_iter_init_array_iterator): return void, since it
6676         can't fail
6677         (dbus_message_iter_init_dict_iterator): return void since it can't fail
6678         (_dbus_message_loader_queue_messages): add silly temporary hack to
6679         fill in message->signature on load
6680
6681         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
6682         characters, so they are relatively human-readable.
6683
6684 2003-10-11  Havoc Pennington  <hp@pobox.com>
6685
6686         * dbus/dbus-message.c (_dbus_message_test): add more test
6687         coverage, but #if 0 for now since they uncover a bug 
6688         not fixed yet; I think in re_align_field_recurse()
6689         (re_align_field_recurse): add FIXME about broken assertion
6690
6691         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
6692
6693         * bus/connection.c: share a couple code bits with expirelist.c
6694
6695         * bus/expirelist.h, bus/expirelist.c: implement a generic
6696         expire-items-after-N-seconds facility, was going to share between
6697         expiring connections and replies, decided not to use for expiring
6698         connections for now.
6699
6700         * COPYING: include AFL 2.0 (still need to change all the file headers)
6701
6702 2003-10-09  Havoc Pennington  <hp@redhat.com>
6703
6704         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
6705         gcc 3.3. Not that we do anything about it yet.
6706
6707         * bus/signals.c (bus_match_rule_parse): impose max length on the
6708         match rule text
6709
6710         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
6711
6712 2003-10-09  Havoc Pennington  <hp@redhat.com>
6713
6714         Make matching rules theoretically work (add parser).
6715         
6716         * bus/bus.c (bus_context_check_security_policy): fix up to handle
6717         the case where destination is explicitly specified as bus driver
6718         and someone else is eavesdropping.
6719         
6720         * bus/policy.c (bus_client_policy_check_can_receive): fix up
6721         definition of eavesdropping and assertion
6722
6723         * tools/dbus-send.c (main): use dbus_message_type_from_string
6724
6725         * bus/signals.c (bus_match_rule_parse): implement
6726
6727         * dbus/dbus-message.c (dbus_message_type_from_string): new
6728
6729         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
6730
6731 2003-10-02  Havoc Pennington  <hp@pobox.com>
6732
6733         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
6734         dbus_gproxy_oneway_call
6735
6736         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
6737         (dbus_server_setup_with_g_main): fix to allow calling them more
6738         than once on the same args
6739         (dbus_bus_get_with_g_main): new function
6740
6741 2003-10-02  Havoc Pennington  <hp@redhat.com>
6742
6743         * doc/dbus-tutorial.xml: write some stuff
6744
6745 2003-09-29  Havoc Pennington  <hp@pobox.com>
6746
6747         * configure.in: split checks for Doxygen from XML docs, check for
6748         xmlto
6749
6750         * doc/Makefile.am: XML-ify all the docs, and add a blank
6751         dbus-tutorial.xml
6752
6753 2003-09-29  Havoc Pennington  <hp@pobox.com>
6754
6755         * Merge dbus-object-names branch. To see the entire patch 
6756         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
6757         it's huuuuge though.
6758         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
6759         
6760 2003-09-28  Havoc Pennington  <hp@pobox.com>
6761
6762         * HACKING: update to reflect new server
6763
6764 2003-09-26  Seth Nickell  <seth@gnome.org>
6765
6766         * python/dbus.py:
6767         * python/examples/example-signals.py:
6768
6769         Start implementing some notions of signals. The API
6770         is really terrible, but they sort of work (with the
6771         exception of being able to filter by service, and to
6772         transmit signals *as* a particular service). Need to
6773         figure out how to make messages come from the service
6774         we registered :-(
6775         
6776         * python/dbus_bindings.pyx.in:
6777
6778         Removed duplicate message_handler callbacks.
6779         
6780 2003-09-25  Havoc Pennington  <hp@redhat.com>
6781
6782         * bus/session.conf.in: fix my mess
6783
6784 2003-09-25  Havoc Pennington  <hp@pobox.com>
6785
6786         * bus/session.conf.in: fix security policy, reported by Seth Nickell
6787
6788 2003-09-25  Seth Nickell  <seth@gnome.org>
6789
6790         * python/examples/example-service.py:
6791
6792         Johan notices complete wrong code in example-service, but
6793         completely wrong in a way that works exactly the same (!).
6794         Johan is confused, how could this possibly work? Example
6795         code fails to serve purpose of making things clear.
6796         Seth fixes.
6797
6798 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
6799
6800         * doc/dbus-specification.sgml: don't require header fields
6801         to be 4-byte aligned and specify that fields should be
6802         distinguished from padding by the fact that zero is not
6803         a valid field name.
6804         
6805         * doc/TODO: remove re-alignment item and add item to doc
6806         the OBJECT_PATH type.
6807         
6808         * dbus/dbus-message.c:
6809         (HeaderField): rename the original member to value_offset
6810         and introduce a name_offset member to keep track of where
6811         the field actually begins.
6812         (adjust_field_offsets): remove.
6813         (append_int_field), (append_uint_field),
6814         (append_string_field): don't align the start of the header
6815         field to a 4-byte boundary.
6816         (get_next_field): impl finding the next marhsalled field
6817         after a given field.
6818         (re_align_field_recurse): impl re-aligning a number of
6819         already marshalled fields.
6820         (delete_field): impl deleting a field of any type and
6821         re-aligning any following fields.
6822         (delete_int_or_uint_field), (delete_string_field): remove.
6823         (set_int_field), (set_uint_field): no need to re-check
6824         that we have the correct type for the field.
6825         (set_string_field): ditto and impl re-aligning any
6826         following fields.
6827         (decode_header_data): update to take into account that
6828         the fields aren't 4-byte aligned any more and the new
6829         way to distinguish padding from header fields. Also,
6830         don't exit when there is too much header padding.
6831         (process_test_subdir): print the directory.
6832         (_dbus_message_test): add test to make sure a following
6833         field is re-aligned correctly after field deletion.
6834         
6835         * dbus/dbus-string.[ch]:
6836         (_dbus_string_insert_bytes): rename from insert_byte and
6837         allow the insert of multiple bytes.
6838         (_dbus_string_test): test inserting multiple bytes.
6839
6840         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
6841         warning note to docs about having to re-align any
6842         marshalled values following the string.
6843         
6844         * dbus/dbus-message-builder.c:
6845         (append_string_field), (_dbus_message_data_load):
6846         don't align the header field.
6847         
6848         * dbus/dbus-auth.c: (process_test_subdir): print the
6849         directory.
6850         
6851         * test/break-loader.c: (randomly_add_one_byte): upd. for
6852         insert_byte change.
6853         
6854         * test/data/invalid-messages/bad-header-field-alignment.message:
6855         new test case.
6856         
6857         * test/data/valid-messages/unknown-header-field.message: shove
6858         a dict in the unknown field.
6859
6860 2003-09-25  Seth Nickell  <seth@gnome.org>
6861
6862         * python/dbus.py:
6863         * python/dbus_bindings.pyx.in:
6864
6865         Handle return values.
6866         
6867         * python/examples/example-client.py:
6868         * python/examples/example-service.py:
6869
6870         Pass back return values from the service to the client.
6871         
6872 2003-09-24  Seth Nickell  <seth@gnome.org>
6873
6874         * python/dbus.py:
6875
6876         Connect Object methods (when you are sharing an object) up... pass
6877         in a list of methods to be shared. Sharing all the methods just
6878         worked out too weird. You can now create nice Services over the
6879         DBus in Python. :-)
6880         
6881         * python/dbus_bindings.pyx.in:
6882
6883         Keep references to user_data tuples passed into C functions so 
6884         Python doesn't garbage collect on us.
6885
6886         Implement MethodReturn and Error subclasses of Message for creating
6887         DBusMessage's of those types.
6888         
6889         * python/examples/example-client.py:
6890         * python/examples/example-service.py:
6891
6892         Simple example code showing both how create DBus services and objects,
6893         and how to use them.
6894
6895 2003-09-23  Havoc Pennington  <hp@pobox.com>
6896
6897         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
6898
6899 2003-09-23  Havoc Pennington  <hp@redhat.com>
6900
6901         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
6902         (dbus_gproxy_disconnect_signal): implement
6903         (dbus_gproxy_manager_remove_signal_match): implement
6904         (dbus_gproxy_manager_add_signal_match): implement
6905         (dbus_gproxy_oneway_call): implement
6906
6907 2003-09-23  Havoc Pennington  <hp@pobox.com>
6908
6909         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
6910         subclass. This means dropping the transparent thread safety of the
6911         proxy; you now need a separate proxy per-thread, or your own
6912         locking on the proxy. Probably right anyway.
6913         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
6914
6915 2003-09-22  Havoc Pennington  <hp@redhat.com>
6916
6917         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
6918
6919 2003-09-21  Seth Nickell  <seth@gnome.org>
6920
6921         First checkin of the Python bindings.
6922         
6923         * python/.cvsignore:
6924         * python/Makefile.am:
6925         * python/dbus_bindings.pyx.in:
6926         * python/dbus_h_wrapper.h:
6927
6928         Pieces for Pyrex to operate on, building a dbus_bindings.so
6929         python module for low-level access to the DBus APIs.
6930         
6931         * python/dbus.py:
6932
6933         High-level Python module for accessing DBus objects.
6934
6935         * configure.in:
6936         * Makefile.am:
6937
6938         Build stuff for the python bindings.
6939
6940         * acinclude.m4:
6941
6942         Extra macro needed for finding the Python C header files.
6943
6944 2003-09-21  Havoc Pennington  <hp@pobox.com>
6945
6946         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
6947         implementing the proxy manager, didn't get very far.
6948
6949         * dbus/dbus-bus.c (dbus_bus_add_match): new
6950         (dbus_bus_remove_match): new
6951
6952         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
6953         path_name argument; adjust the other not-yet-implemented 
6954         gproxy constructors to be what I think they should be.
6955
6956 2003-09-21  Havoc Pennington  <hp@pobox.com>
6957
6958         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
6959         by default for message bus connections.
6960
6961         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
6962         exit_on_disconnect flag is set and we process the disconnected
6963         signal.
6964         (dbus_connection_set_exit_on_disconnect): new function
6965
6966 2003-09-21  Havoc Pennington  <hp@pobox.com>
6967
6968         Get matching rules mostly working in the bus; only actually
6969         parsing the rule text remains. However, the client side of
6970         "signal connections" hasn't been started, this patch is only the
6971         bus side.
6972         
6973         * dbus/dispatch.c: fix for the matching rules changes
6974         
6975         * bus/driver.c (bus_driver_handle_remove_match)
6976         (bus_driver_handle_add_match): send an ack reply from these
6977         method calls
6978
6979         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
6980         arguments, reported by Seth Nickell
6981
6982         * bus/config-parser.c (append_rule_from_element): support
6983         eavesdrop=true|false attribute on policies so match rules 
6984         can be prevented from snooping on the system bus.
6985
6986         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
6987         and "destination" in attribute names; fix some docs bugs; 
6988         add eavesdrop=true|false attribute
6989
6990         * bus/driver.c (bus_driver_handle_add_match)
6991         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
6992         messages
6993
6994         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
6995         rid of broadcast service concept, signals are just always broadcast
6996
6997         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
6998         mostly implement matching rules stuff (currently only exposed as signal
6999         connections)
7000
7001 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7002
7003         * doc/dbus-specification.sgml: Change the header field name
7004         to be an enum and update the rest of the spec to reference
7005         the fields using the conventinal name.
7006
7007         * dbus/dbus-protocol.h: update to reflect the spec.
7008
7009         * doc/TODO: add item to remove the 4 byte alignment requirement.
7010         
7011         * dbus/dbus-message.c: Remove the code to generalise the
7012         header/body length and serial number header fields as named
7013         header fields so we can reference field names using the 
7014         protocol values.
7015         (append_int_field), (append_uint_field), (append_string_field):
7016         Append the field name as a byte rather than four chars.
7017         (delete_int_or_uint_field), (delete_string_field): reflect the
7018         fact that the field name and typecode now occupy 4 bytes instead
7019         of 8.
7020         (decode_string_field), (decode_header_data): update to reflect
7021         protocol changes and move the field specific encoding from
7022         decode_string_field() back into decode_header_data().
7023         
7024         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7025         Add utility to aid debugging.
7026         
7027         * dbus/dbus-message-builder.c:
7028         (append_string_field), (_dbus_message_data_load): Update to
7029         reflect protocol changes; Change the FIELD_NAME directive
7030         to HEADER_FIELD and allow it to take the field's conventional
7031         name rather than the actual value.
7032         
7033         * test/data/*/*.message: Update to use HEADER_FIELD instead
7034         of FIELD_NAME; Always align the header on an 8 byte boundary
7035         *before* updating the header length.
7036
7037 2003-09-15  Havoc Pennington  <hp@pobox.com>
7038
7039         * dbus/dbus-pending-call.c: add the get/set object data
7040         boilerplate as for DBusConnection, etc. Use generic object data
7041         for the notify callback.
7042
7043         * glib/dbus-gparser.c (parse_node): parse child nodes
7044
7045         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7046         
7047         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7048         contain functions shared between the convenience lib and the
7049         installed lib
7050
7051         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7052         -export-symbols-regex to the GLib library
7053
7054         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7055         fix the locking in here, and add a default handler for
7056         Introspect() that just returns sub-nodes.
7057
7058 2003-09-14  Havoc Pennington  <hp@pobox.com>
7059
7060         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7061         rather than gfoo consistent
7062
7063         * glib/dbus-gproxy.h: delete for now, move contents to
7064         dbus-glib.h, because the include files don't work right since we
7065         aren't in the dbus/ subdir.
7066         
7067         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7068         (dbus_gproxy_end_call): finish
7069         (dbus_gproxy_begin_call): finish
7070
7071         * glib/dbus-gmain.c (dbus_set_g_error): new
7072
7073         * glib/dbus-gobject.c (handle_introspect): include information
7074         about child nodes in the introspection
7075
7076         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7077         function to help in implementation of introspection
7078
7079         * dbus/dbus-object-tree.c
7080         (_dbus_object_tree_list_registered_and_unlock): new function
7081
7082 2003-09-12  Havoc Pennington  <hp@pobox.com>
7083
7084         * glib/dbus-gidl.h: add common base class for all the foo_info
7085         types
7086
7087         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7088         similar to kdcop
7089
7090         * test/Makefile.am: try test srcdir -ef . in addition to test
7091         srcdir = ., one of them should work (yeah lame)
7092         
7093         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7094         library
7095         
7096         * glib/dbus-gparser.h: make description_load routines return
7097         NodeInfo* not Parser*
7098
7099         * Makefile.am (SUBDIRS): build test dir after all library dirs
7100
7101         * configure.in: add GTK+ detection
7102
7103 2003-09-07  Havoc Pennington  <hp@pobox.com>
7104
7105         * Make Doxygen contented.
7106
7107 2003-09-07  Havoc Pennington  <hp@pobox.com>
7108
7109         * doc/dbus-specification.sgml: more updates
7110
7111 2003-09-06  Havoc Pennington  <hp@pobox.com>
7112
7113         * doc/dbus-specification.sgml: partial updates
7114
7115         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7116         zillionth time; hopefully I edited the right file this time.
7117
7118         * bus/config-parser.c (append_rule_from_element): support
7119         send_type, send_path, receive_type, receive_path
7120
7121         * bus/policy.c: add message type and path to the list of things
7122         that can be "firewalled"
7123
7124 2003-09-06  Havoc Pennington  <hp@pobox.com>
7125
7126         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7127         (dbus_connection_register_object_path): make this not handle
7128         messages to paths below the given path
7129
7130 2003-09-03  Havoc Pennington  <hp@pobox.com>
7131
7132         * test/glib/Makefile.am: add this with random glib-linked test
7133         programs
7134
7135         * glib/Makefile.am: remove the random test programs from here,
7136         leave only the unit tests
7137
7138         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7139         uscore/javacaps conversion, and fix     
7140         (get_object_property, set_object_property): change to .NET
7141         convention for mapping props to methods, set_FooBar/get_FooBar, 
7142         since one language has such a convention we may as well copy it. 
7143         Plus real methods in either getFooBar or get_foo_bar style won't 
7144         collide with this convention.
7145
7146 2003-09-01  Havoc Pennington  <hp@pobox.com>
7147
7148         * glib/dbus-gparser.c: implement
7149
7150         * glib/dbus-gobject.c: start implementing skeletons support
7151
7152         * configure.in: when disabling checks/assert, also define
7153         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7154
7155 2003-09-01  Havoc Pennington  <hp@pobox.com>
7156
7157         * glib/Makefile.am: rearrange a bunch of files and get "make
7158         check" framework set up
7159
7160 2003-08-31  Havoc Pennington  <hp@pobox.com>
7161
7162         * fix build with --disable-tests
7163
7164 2003-08-30  Havoc Pennington  <hp@pobox.com>
7165
7166         * dbus/dbus-connection.c: purge DBusMessageHandler
7167
7168         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7169         use callbacks everywhere
7170
7171 2003-08-30  Havoc Pennington  <hp@pobox.com>
7172
7173         * test/data/valid-config-files/system.d/test.conf: change to 
7174         root for the user so warnings don't get printed
7175
7176         * dbus/dbus-message.c: add dbus_message_get_path,
7177         dbus_message_set_path
7178         
7179         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7180         dispatching to a path
7181
7182         * dbus/dbus-string.c (_dbus_string_validate_path): add
7183
7184         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7185         (_dbus_marshal_object_path): implement
7186
7187         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7188         to contain the path to the target object
7189         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7190         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7191
7192 2003-08-30  Havoc Pennington  <hp@pobox.com>
7193
7194         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7195
7196 2003-08-29  Havoc Pennington  <hp@pobox.com>
7197
7198         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7199         registered
7200         (struct DBusObjectSubtree): shrink this
7201         a lot, since we may have a lot of them
7202         (_dbus_object_tree_free_all_unlocked): implement
7203         (_dbus_object_tree_dispatch_and_unlock): implement
7204
7205 2003-08-29  Havoc Pennington  <hp@pobox.com>
7206
7207         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7208
7209 2003-08-28  Havoc Pennington  <hp@pobox.com>
7210
7211         purge DBusObjectID
7212         
7213         * dbus/dbus-connection.c: port to no ObjectID, create a
7214         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7215
7216         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7217         everything except UnregisterFunction and MessageFunction
7218         
7219         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7220         add DBUS_TYPE_OBJECT_PATH
7221         
7222         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7223         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7224         path-based object IDs
7225
7226 2003-08-25  Havoc Pennington  <hp@pobox.com>
7227
7228         Just noticed that dbus_message_test is hosed, I wonder when I
7229         broke that. I thought make check was passing earlier...
7230         
7231         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7232         container tree, will replace most of dbus-object-registry
7233
7234         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7235         screwup
7236
7237 2003-08-19  Havoc Pennington  <hp@pobox.com>
7238
7239         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7240         (dbus_message_is_error): fix this function
7241
7242         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7243         match
7244
7245         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7246         reflect clarified man page
7247         (bus_client_policy_check_can_send): ditto
7248         
7249         * bus/session.conf.in: fixup
7250
7251         * bus/system.conf.in: fixup
7252
7253 2003-08-18  Havoc Pennington  <hp@redhat.com>
7254
7255         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7256
7257         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7258         dumb bug created earlier (wrong order of args to
7259         decode_header_data())
7260         
7261         * tools/dbus-send.c: port
7262
7263         * tools/dbus-print-message.c (print_message): port
7264
7265         * test/data/*messages: port all messages over
7266         
7267         * dbus/dbus-message-builder.c: support including 
7268         message type
7269         
7270         * bus/driver.c: port over
7271         
7272         * bus/dispatch.c: port over to new stuff
7273
7274         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7275         rename disconnect signal to "Disconnected"
7276
7277 2003-08-17  Havoc Pennington  <hp@pobox.com>
7278
7279         This doesn't compile yet, but syncing up so I can hack on it from
7280         work. What are branches for if not broken code? ;-)
7281         
7282         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7283         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7284         DBUS_HEADER_FIELD_ERROR_NAME
7285         
7286         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7287         for the interface+member pairs
7288         (string_hash): change to use g_str_hash algorithm
7289         (find_direct_function, find_string_function): refactor these to
7290         share most code.
7291         
7292         * dbus/dbus-message.c: port all of this over to support 
7293         interface/member fields instead of name field
7294
7295         * dbus/dbus-object-registry.c: port over
7296         
7297         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7298         from _dbus_string_validate_name
7299
7300         * bus/dbus-daemon-1.1: change file format for the 
7301         <deny>/<allow> stuff to match new message naming scheme
7302
7303         * bus/policy.c: port over
7304
7305         * bus/config-parser.c: parse new format
7306         
7307 2003-08-16  Havoc Pennington  <hp@pobox.com>
7308
7309         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7310         broken assertion
7311
7312         * glib/dbus-gproxy.c: some hacking
7313
7314 2003-08-15  Havoc Pennington  <hp@redhat.com>
7315
7316         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7317
7318         * dbus/dbus-connection.c
7319         (dbus_connection_send_with_reply_and_block): factor out internals;
7320         change to convert any error replies to DBusError instead of 
7321         returning them as a message
7322
7323 2003-08-15  Havoc Pennington  <hp@pobox.com>
7324
7325         * dbus/dbus-connection.c, 
7326         dbus/dbus-pending-call.c: Finish the pending call stuff
7327
7328 2003-08-14  Havoc Pennington  <hp@redhat.com>
7329
7330         * dbus/dbus-pending-call.c: start on new object that will replace
7331         DBusMessageHandler and ReplyHandlerData for tracking outstanding
7332         replies
7333
7334         * dbus/dbus-gproxy.c: start on proxy object used to communicate
7335         with remote interfaces
7336
7337         * dbus/dbus-gidl.c: do the boring boilerplate in here
7338         
7339 2003-08-12  Havoc Pennington  <hp@pobox.com>
7340
7341         * bus/dispatch.c (bus_dispatch): make this return proper 
7342         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7343
7344         * dbus/dbus-errors.c (dbus_set_error): use
7345         _dbus_string_append_printf_valist
7346
7347         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7348         (_dbus_string_append_printf): new
7349
7350         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7351         UNKNOWN_METHOD
7352
7353         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7354         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7355         message is unhandled.
7356
7357 2003-08-11  Havoc Pennington  <hp@pobox.com>
7358
7359         * bus/test.c (client_disconnect_handler): change to return
7360         HANDLED (would have been REMOVE_MESSAGE)
7361
7362         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7363         HANDLED/NOT_YET_HANDLED instead of
7364         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
7365         should be used.
7366
7367 2003-08-10  Havoc Pennington  <hp@pobox.com>
7368
7369         * tools/dbus-send.c (main): add --type argument, for now
7370         supporting only method_call and signal types.
7371
7372         * tools/dbus-print-message.c: print message type
7373
7374         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7375         init connection->objects
7376
7377         * doc/dbus-specification.sgml: fix sgml
7378
7379         * bus/*.c: port over to object-instance API changes
7380
7381         * test/test-service.c: ditto
7382         
7383         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7384         name, we will have to fix up the rest of the code to also handle
7385         this
7386         (dbus_message_new): generic message-creation call
7387         (set_string_field): allow appending name field
7388
7389 2003-08-06  Havoc Pennington  <hp@pobox.com>
7390
7391         * dbus/dbus-object-registry.c: implement signal connection 
7392         and dispatch
7393
7394         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7395
7396         * dbus/dbus-internals.c (_dbus_memdup): new function
7397
7398 2003-08-02  Havoc Pennington  <hp@pobox.com>
7399
7400         * dbus/dbus-message.c (dbus_message_get_no_reply)
7401         (dbus_message_set_no_reply): add these and remove
7402         set_is_error/get_is_error
7403
7404         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
7405         remove the ERROR flag, since there's now an ERROR type
7406
7407 2003-08-01  Havoc Pennington  <hp@pobox.com>
7408
7409         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7410         implement
7411
7412         * dbus/dbus-message.c (dbus_message_get_type): new function
7413
7414         * doc/dbus-specification.sgml: add "type" byte to messages
7415
7416 2003-08-01  Havoc Pennington  <hp@pobox.com>
7417
7418         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7419         a message type enum to distinguish kinds of message
7420         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
7421         that need not be replied to
7422
7423 2003-08-01  Havoc Pennington  <hp@pobox.com>
7424
7425         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7426         (unpack_8_octets): fix no-64-bit-int bug
7427
7428         * dbus/dbus-object-registry.c (validate_id): validate the 
7429         connection ID bits, not just the instance ID.
7430
7431         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7432         the connection-global 33 bits of the object ID
7433
7434         * dbus/dbus-object-registry.c (info_from_entry): fill in 
7435         object ID in the new way
7436
7437         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
7438         define server/client/instance bits.
7439
7440 2003-07-30  Havoc Pennington  <hp@pobox.com>
7441
7442         * dbus/dbus-connection.c (dbus_connection_register_object): fix
7443         build
7444
7445 2003-07-13  Havoc Pennington  <hp@pobox.com>
7446
7447         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7448         fields to DBusObjectVTable and DBusObjectInfo
7449
7450 2003-07-12  Havoc Pennington  <hp@pobox.com>
7451
7452         * dbus/dbus-object-registry.c: implement unit test,
7453         fix bugs discovered in process
7454
7455         * dbus/dbus-connection.c: remove handler_table and
7456         register_handler(), add DBusObjectRegistry usage
7457
7458         * dbus/dbus-objectid.c (dbus_object_id_is_null)
7459         (dbus_object_id_set_null): new functions
7460
7461 2003-07-08  Havoc Pennington  <hp@pobox.com>
7462
7463         * dbus/dbus-object.c: implement some of this
7464
7465         * dbus/dbus-object-registry.c
7466         (_dbus_object_registry_add_and_unlock): fill in the object_id out
7467         param
7468         (_dbus_object_registry_new): handle OOM
7469
7470 2003-07-08  Havoc Pennington  <hp@pobox.com>
7471
7472         * dbus/dbus-object.h: sketch out an API for registering objects
7473         with a connection, that allows us to use as little as 24 bytes
7474         per object and lets application code represent an object in 
7475         any conceivable way.
7476
7477         * dbus/dbus-object-registry.c: implement the hard bits of the
7478         DBusConnection aspect of object API. Not yet wired up.
7479         
7480 2003-07-06  Havoc Pennington  <hp@pobox.com>
7481
7482         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7483         (_dbus_marshal_object_id): new
7484         (_dbus_demarshal_object_id): new
7485         (_dbus_marshal_get_arg_end_pos): support object ID type, and
7486         consolidate identical switch cases. Don't conditionalize handling
7487         of DBUS_TYPE_UINT64, need to handle the type always.
7488         (_dbus_marshal_validate_arg): consolidate identical cases, and
7489         handle DBUS_TYPE_OBJECT_ID
7490
7491         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7492
7493         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7494
7495 2003-09-28  Havoc Pennington  <hp@pobox.com>
7496
7497         * real 0.13 release
7498
7499 2003-09-28  Havoc Pennington  <hp@pobox.com>
7500
7501         * doc/Makefile.am (dbus-specification.html): testing a funky hack
7502         to work with Debian db2html
7503
7504 2003-09-28  Havoc Pennington  <hp@pobox.com>
7505
7506         * configure.in: 0.13
7507
7508         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7509         stylesheet-images for benefit of Debian
7510         
7511         Change back to using filesystem-linked sockets for the system
7512         bus, so only root can create the default system bus address.
7513         
7514         * bus/system.conf.in: change to use
7515         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7516
7517         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7518         from here.
7519
7520         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7521         here, and AC_DEFINE DBUS_SYSTEM_PATH
7522
7523 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7524
7525         * doc/TODO:
7526         * doc/busconfig.dtd:
7527         Add busconfig DTD.
7528         
7529 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7530
7531         * doc/dbus-specification.sgml:
7532         Add activation reply values.
7533         
7534 2003-08-05  Havoc Pennington  <hp@redhat.com>
7535
7536         * configure.in: 0.12
7537
7538 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
7539
7540         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7541         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7542         (add_watch), (remove_watch), (create_source):
7543         Refcount fds, fixes some reentrancy issues.
7544         
7545 2003-07-30  Havoc Pennington  <hp@redhat.com>
7546
7547         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7548         bus address to be abstract if we have abstract sockets
7549
7550         * NEWS: update
7551
7552 2003-07-28  Havoc Pennington  <hp@redhat.com>
7553
7554         * bus/messagebus.in: fix to avoid processname/servicename 
7555         confusion, from Michael Kearey
7556         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7557         
7558 2003-07-23  Havoc Pennington  <hp@pobox.com>
7559
7560         * dbus/dbus-message.c (dbus_message_iter_get_named): 
7561         fix from Andy Hanton to remove broken "+1"
7562
7563 2003-07-16  Havoc Pennington  <hp@pobox.com>
7564
7565         * tools/dbus-launch.c (babysit): close stdout/stderr in the
7566         babysitter process, as suggested by Thomas Leonard, so 
7567         an "eval `dbus-launch --exit-with-session`" will actually 
7568         return
7569
7570 2003-07-16  Havoc Pennington  <hp@pobox.com>
7571
7572         * configure.in: print out EXPANDED_* variables in the summary at
7573         the end; clean up the code that computes EXPANDED_ variables and
7574         get the ones using exec_prefix right. Should make things work
7575         when you build without --prefix
7576
7577 2003-06-29  Havoc Pennington  <hp@pobox.com>
7578
7579         * mono/Test.cs (class Test): fire up a main loop and run it
7580
7581         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
7582         done once, the app has to do it
7583
7584 2003-06-26  Havoc Pennington  <hp@pobox.com>
7585
7586         * mono/Connection.cs: set up connection with the glib main loop
7587
7588 2003-07-01  Havoc Pennington  <hp@redhat.com>
7589
7590         * doc/dbus-specification.sgml: clarify the format of a type code,
7591         change suggested by Jim Blandy
7592
7593 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
7594
7595         * doc/Makefile.am:
7596         * tools/Makefile.am: Don't assume srcdir == builddir.
7597
7598         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
7599         the allocated block.
7600         (_dbus_memory_test): New function.
7601         * dbus/dbus-test.h: Add _dbus_memory_test ().
7602         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
7603
7604         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
7605         of %c%c%c%c.
7606         (dbus_message_new): Remove obsolete @todo.
7607
7608         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
7609         (_dbus_marshal_set_uint64): Fix comment.
7610
7611         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
7612         hardcode FIELD_REPLY_SERIAL.
7613
7614         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
7615         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
7616
7617         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
7618         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
7619
7620 2003-06-24  Havoc Pennington  <hp@pobox.com>
7621
7622         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
7623
7624 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
7625
7626         * configure.in:
7627         * gcj/.cvsignore:
7628         * gcj/Hello.java:
7629         * gcj/Makefile.am:
7630         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
7631         * gcj/org/.cvsignore:
7632         * gcj/org/Makefile.am:
7633         * gcj/org/freedesktop/.cvsignore:
7634         * gcj/org/freedesktop/Makefile.am:
7635         * gcj/org/freedesktop/dbus/.cvsignore:
7636         * gcj/org/freedesktop/dbus/Makefile.am:
7637         * gcj/org/freedesktop/dbus/Message.java: (Message),
7638         (Message.Message):
7639         * gcj/org/freedesktop/dbus/natMessage.cc:
7640         Fix the build system.
7641
7642 2003-06-22  Havoc Pennington  <hp@pobox.com>
7643
7644         * mono/Connection.cs: add more bindings
7645
7646         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
7647         more than once.
7648
7649 2003-06-22  Havoc Pennington  <hp@pobox.com>
7650
7651         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
7652         Start wrapping more stuff.
7653
7654 2003-06-22  Havoc Pennington  <hp@pobox.com>
7655
7656         * mono/Message.cs: implement Message.Wrap() that ensures we only
7657         have a single C# wrapper per DBusMessage, assuming it works which
7658         it probably doesn't.
7659
7660         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
7661         (dbus_message_free_data_slot): new
7662         (dbus_message_set_data): new
7663         (dbus_message_get_data): new
7664
7665 2003-06-22  Havoc Pennington  <hp@pobox.com>
7666
7667         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
7668         (_dbus_data_slot_allocator_alloc): rework these to keep a
7669         reference count on each slot and automatically manage a global
7670         slot ID variable passed in by address
7671
7672         * bus/bus.c: convert to new dataslot API
7673
7674         * dbus/dbus-bus.c: convert to new dataslot API
7675
7676         * dbus/dbus-connection.c: convert to new dataslot API
7677
7678         * dbus/dbus-server.c: convert to new dataslot API
7679
7680         * glib/dbus-gmain.c: ditto
7681
7682         * bus/test.c: ditto
7683
7684         * bus/connection.c: ditto
7685
7686 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
7687
7688         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
7689         after the gcj checks so that the correct configuration tags
7690         will be added to libtool.
7691
7692         * dbus-glib-1.pc.in: No need to specify any includes since
7693         dbus-1.pc.in has those.
7694
7695 2003-06-22  Havoc Pennington  <hp@pobox.com>
7696
7697         * mono/*, gcj/*, configure.in, Makefile.am:
7698         Check in makefiles and subdirs for mono and gcj bindings.
7699         Neither binding actually exists, just trying to get through
7700         all the build and other boring bits.
7701
7702 2003-06-21  Philip Blundell  <philb@gnu.org>
7703
7704         * tools/dbus-monitor.1: Updated.
7705
7706         * tools/dbus-send.1: Likewise.
7707
7708 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
7709
7710         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
7711         for hangup and error after checking read so we won't discard
7712         pending data if both hangup and read are set.
7713
7714 2003-06-19  Philip Blundell  <philb@gnu.org>
7715
7716         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
7717
7718         * tools/dbus-send.c: Accept both --system and --session.
7719
7720         * tools/dbus-monitor.c: Same here.
7721
7722 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
7723
7724         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
7725         from C++ (Patch by Miloslav Trmac).
7726
7727 2003-06-15  Joe Shaw  <joe@assbarn.com>
7728
7729         * configure.in: Check for socklen_t.
7730
7731         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
7732
7733         * test/test-segfault.c: Add #include <sys/time.h>
7734
7735         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
7736         dbus-launch needs it.
7737
7738 2003-06-09  Havoc Pennington  <hp@redhat.com>
7739
7740         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
7741         SUN_LEN, it breaks abstract socket usage
7742
7743         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
7744         starts of lines.
7745
7746 2003-06-04  Havoc Pennington  <hp@pobox.com>
7747
7748         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
7749         using unix:abstract=/foo, and when listening in a tmpdir
7750         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
7751
7752         * dbus/dbus-transport.c (_dbus_transport_open): support
7753         unix:abstract=/foo
7754
7755         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7756         support abstract sockets
7757
7758         * dbus/dbus-transport-unix.c
7759         (_dbus_transport_new_for_domain_socket): support abstract sockets
7760
7761         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
7762         toggle as an argument, implement abstract namespace support
7763         (_dbus_listen_unix_socket): ditto
7764
7765         * configure.in: add --enable-abstract-sockets and implement
7766         a configure check for autodetection of the right value.
7767
7768 2003-06-01  Havoc Pennington  <hp@pobox.com>
7769
7770         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
7771         in /tmp (though on Linux this will end up being useless,
7772         when we add abstract namespace support)
7773
7774         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
7775         subst'ing it
7776
7777 2003-05-28  Colin Walters  <walters@verbum.org>
7778
7779         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
7780
7781 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
7782
7783         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
7784
7785 2003-05-17  Colin Walters  <walters@gnu.org>
7786
7787         * tools/dbus-send.c: Don't exit with an error code if --help was
7788         passed.  Default to using the session bus instead of the system
7789         one.
7790
7791         * tools/dbus-launch.c: Ditto.
7792
7793         * tools/dbus-monitor.c: Ditto.
7794
7795         * tools/dbus-send.1: Update with new arguments.
7796
7797         * tools/dbus-launch.c: Emit code to export variables.  New
7798         arguments -s and -c to specify shell syntax, and a bit of code to
7799         autodetect syntax.  Also, allow specifying a program to run.
7800
7801         * tools/dbus-launch.1: Update with new arguments.
7802
7803         * tools/dbus-send.1: Ditto.
7804
7805         * tools/dbus-monitor.1: Ditto.
7806
7807 2003-05-17  Havoc Pennington  <hp@pobox.com>
7808
7809         * bus/config-parser.c (merge_included): merge in policies from
7810         child configuration file.
7811
7812         * bus/policy.c (bus_policy_merge): function to merge two policies
7813         together
7814
7815 2003-05-16  Havoc Pennington  <hp@redhat.com>
7816
7817         * dbus/dbus-connection.c: disable verbose lock spew
7818
7819         * tools/dbus-send.c: add --print-reply command line option
7820
7821         * tools/dbus-print-message.h (print_message): new util function
7822         shared by dbus-send and dbus-monitor
7823
7824         * tools/dbus-monitor.c (handler_func): exit on disconnect
7825
7826         * dbus/dbus-transport-unix.c (do_reading): if the transport is
7827         disconnected, don't try to use the read_watch
7828
7829         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
7830         so we can find this bug more easily
7831
7832 2003-05-16  Havoc Pennington  <hp@redhat.com>
7833
7834         * bus/policy.c (free_rule_list_func): avoid a crash when passed
7835         NULL as DBusHashTable is annoyingly likely to do.
7836
7837 2003-05-16  Colin Walters  <walters@verbum.org>
7838
7839         * tools/dbus-monitor.c: Add --session argument and usage()
7840         function.
7841
7842         * tools/dbus-monitor.1: Update with new --session arg.
7843
7844         * bus/Makefile.am (install-data-hook): Create
7845         $(libdir)/dbus-1.0/services so that the session bus is happy.
7846
7847 2003-05-15  Havoc Pennington  <hp@redhat.com>
7848
7849         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
7850         on non-x86. ifdef's are evil.
7851
7852 2003-05-15  Havoc Pennington  <hp@redhat.com>
7853
7854         * configure.in: 0.11
7855
7856         * NEWS: update
7857
7858         * bus/Makefile.am (initddir): apparently we are supposed to put
7859         init scripts in /etc/rc.d/init.d not /etc/init.d
7860
7861         * bus/Makefile.am: remove the "you must --enable-tests to make
7862         check" as it broke distcheck
7863
7864         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
7865
7866 2003-05-13  James Willcox  <jwillcox@gnome.org>
7867
7868         * configure.in:
7869         * bus/activation.c: (bus_activation_service_created),
7870         (bus_activation_activate_service):
7871         * bus/driver.c: (bus_driver_send_service_deleted),
7872         (bus_driver_send_service_created), (bus_driver_send_service_lost),
7873         (bus_driver_send_service_acquired),
7874         (bus_driver_send_welcome_message),
7875         (bus_driver_handle_list_services):
7876         * bus/session.conf.in:
7877         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
7878         (dbus_bus_service_exists), (dbus_bus_activate_service):
7879         * dbus/dbus-bus.h:
7880
7881         Add some convenience API which lets you activate a service, and did a
7882         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
7883         and dbus_message_get_args()
7884
7885 2003-05-11  Havoc Pennington  <hp@pobox.com>
7886
7887         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
7888         calling _dbus_marshal_validate_arg() for every byte in a byte
7889         array, etc.
7890
7891         * dbus/dbus-message-handler.c: use atomic reference counting to
7892         reduce number of locks slightly; the global lock in here sucks
7893
7894         * dbus/dbus-connection.c
7895         (_dbus_connection_update_dispatch_status_and_unlock): variant of
7896         update_dispatch_status that can be called with lock held; then use
7897         in a couple places to reduce locking/unlocking
7898         (dbus_connection_send): hold the lock over the whole function
7899         instead of acquiring it twice.
7900
7901         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
7902
7903         * bus/connection.c (bus_connections_setup_connection): fix access
7904         to already-freed memory.
7905
7906         * dbus/dbus-connection.c: keep a little cache of linked list
7907         nodes, to avoid using the global linked list alloc lock in the
7908         normal send-message case. Instead we just use the connection lock
7909         that we already have to take.
7910
7911         * dbus/dbus-list.c (_dbus_list_find_last): new function
7912
7913         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
7914         change to use a struct for the atomic type; fix docs,
7915         they return value before increment, not after increment.
7916
7917         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
7918         (_dbus_string_append_8_aligned): new functions to try to
7919         microoptimize this operation.
7920         (reallocate_for_length): break this out of set_length(), to
7921         improve profile info, and also so we can consider inlining the
7922         set_length() part.
7923
7924         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
7925         strings with some preallocation, cuts down on our calls to realloc
7926         a fair bit. Though if we can get the "move entire string to empty
7927         string" optimization below to kick in here, it would be better.
7928
7929         * dbus/dbus-string.c (_dbus_string_move): just call
7930         _dbus_string_move_len
7931         (_dbus_string_move_len): add a special case for moving
7932         an entire string into an empty string; we can just
7933         swap the string data instead of doing any reallocs.
7934         (_dbus_string_init_preallocated): new function
7935
7936 2003-05-11  Havoc Pennington  <hp@pobox.com>
7937
7938         Write a "test-profile" that does echo client-server with threads;
7939         profile reveals lock contention, memcpy/realloc of buffers, and
7940         UTF-8 validation as hot spots. 20% of lock contention eliminated
7941         with dbus_atomic_inc/dec implementation on x86.  Much remaining
7942         contention is global mempool locks for GList and DBusList.
7943
7944         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
7945         x86 implementation
7946
7947         * dbus/dbus-connection.c (struct DBusConnection): use
7948         dbus_atomic_t for the reference count
7949
7950         * dbus/dbus-message.c (struct DBusMessage): declare
7951         dbus_atomic_t values as volatile
7952
7953         * configure.in: code to detect ability to use atomic integer
7954         operations in assembly, from GLib patch
7955
7956         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
7957         time, tired of it being wrong in threads and forked processes
7958
7959         * glib/test-profile.c: a little program to bounce messages back
7960         and forth between threads and eat CPU
7961
7962         * dbus/dbus-connection.c: add debug spew macros for debugging
7963         thread locks; include config.h at top; fix deadlock in
7964         dbus_connection_flush()
7965
7966 2003-05-08  Havoc Pennington  <hp@pobox.com>
7967
7968         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
7969         data from getting written, and there wasn't a good reason to
7970         use _exit really.
7971
7972         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
7973         dbus_verbose lines in test coverage
7974         (main): add list of functions sorted by # of untested blocks
7975         to the coverage report
7976
7977         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
7978
7979         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
7980
7981         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
7982         extend test coverage
7983
7984         * test/data/auth/cancel.auth-script: test canceling an
7985         authentication
7986
7987         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
7988         aren't used. in CVS history if we end up needing them.
7989
7990 2003-05-04  Havoc Pennington  <hp@pobox.com>
7991
7992         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
7993         unit test
7994
7995         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
7996         function, which assumed length was in # of strings, not bytes
7997
7998         * dbus/dbus-message.c (_dbus_message_test): add tests for some
7999         missing coverage
8000
8001         * dbus/dbus-connection.c
8002         (_dbus_connection_queue_received_message): disable function for
8003         now, we are only using it in test mode
8004
8005         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8006         remove a mistaken FIXME
8007
8008 2003-05-04  Havoc Pennington  <hp@pobox.com>
8009
8010         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8011         unlock mutex on successful return, patch from Anders Gustafsson
8012
8013 2003-05-04  Havoc Pennington  <hp@pobox.com>
8014
8015         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8016         Anders Gustafsson
8017
8018 2003-05-04  Havoc Pennington  <hp@pobox.com>
8019
8020         * tools/dbus-launch.c: implement
8021
8022         * bus/main.c (main), bus/bus.c (bus_context_new):
8023         implement --print-pid and --fork
8024
8025 2003-05-03  Havoc Pennington  <hp@redhat.com>
8026
8027         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8028         the address had no value, and add to test suite. Fix and
8029         regression test from Miloslav Trmac
8030
8031 2003-05-03  Havoc Pennington  <hp@pobox.com>
8032
8033         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8034         watch is invalid when handled
8035
8036         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8037         dbus-launch utility to launch the bus from a shell script.  Didn't
8038         actually implement dbus-launch yet, it's just a placeholder still.
8039
8040 2003-05-03  Havoc Pennington  <hp@pobox.com>
8041
8042         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8043         daemon; also documents daemon config file, so replaces
8044         doc/config-file.txt. Corrected some stuff from config-file.txt in
8045         the process of moving it.
8046
8047 2003-05-03  Havoc Pennington  <hp@pobox.com>
8048
8049         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8050         add some man pages
8051
8052 2003-05-03  Colin Walters  <walters@verbum.org>
8053
8054         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8055         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8056
8057         * Makefile.am: Update to use new .pc versioning scheme.
8058
8059 2003-05-02  Havoc Pennington  <hp@redhat.com>
8060
8061         * bus/system.conf.in: allow send/receive to/from message bus
8062         service
8063
8064 2003-04-30  Havoc Pennington  <hp@redhat.com>
8065
8066         * configure.in: print a note when building with unit tests and
8067         without assertions
8068
8069 2003-04-30  Havoc Pennington  <hp@redhat.com>
8070
8071         * Makefile.am: add a check-local that complains if you didn't
8072         configure with --enable-tests
8073
8074 2003-04-29  Havoc Pennington  <hp@redhat.com>
8075
8076         * glib/dbus-gmain.c: docs cleanups
8077
8078         * dbus/dbus-types.h: add docs on int64 types
8079
8080         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8081         public API docs section
8082
8083 2003-04-29  Havoc Pennington  <hp@redhat.com>
8084
8085         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8086         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8087         parallel install API version, not with the D-BUS package version.
8088
8089         * HACKING: move some of README over here
8090
8091         * README: updates, and document API/ABI policy
8092
8093         * configure.in: reindentation
8094
8095 2003-04-29  Havoc Pennington  <hp@redhat.com>
8096
8097         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8098         to use this library" to be sure people have the right
8099         expectations.
8100
8101 2003-04-28  Havoc Pennington  <hp@redhat.com>
8102
8103         * configure.in: add --enable-docs which by default is auto yes if
8104         doxygen and db2html found, no otherwise; but can be forced on/off
8105
8106         * doc/Makefile.am: conditionalize whether to build docs on
8107         --enable-docs
8108
8109 2003-04-28  Havoc Pennington  <hp@redhat.com>
8110
8111         * configure.in: 0.10
8112
8113         * NEWS: update
8114
8115         * bus/system.conf.in: add <includedir>system.d</includedir>
8116
8117         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8118         username was provided but not uid
8119
8120         * bus/config-parser.c (struct BusConfigParser): keep track of
8121         whether the parser is toplevel or was included; change some
8122         of the error handling if it's included.
8123
8124 2003-04-27  Havoc Pennington  <hp@pobox.com>
8125
8126         Unbreak my code...
8127
8128         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8129         report correct status if we finish processing authentication
8130         inside this function.
8131
8132         * bus/activation.c (try_send_activation_failure): use
8133         bus_transaction_send_error_reply
8134
8135         * bus/connection.c (bus_connection_get_groups): return an error
8136         explaining the problem
8137
8138         * bus/bus.c (bus_context_check_security_policy): implement
8139         restriction here that inactive connections can only send the
8140         hello message. Also, allow bus driver to send anything to
8141         any recipient.
8142
8143         * bus/connection.c (bus_connection_complete): create the
8144         BusClientPolicy here instead of on-demand.
8145         (bus_connection_get_policy): don't return an error
8146
8147         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8148         sender field in message being replied to
8149
8150         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8151         causing it to return FALSE always
8152
8153         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8154         we checked sender rather than destination
8155
8156 2003-04-25  Havoc Pennington  <hp@redhat.com>
8157
8158         test suite is slightly hosed at the moment, will fix soon
8159
8160         * bus/connection.c (bus_connections_expire_incomplete): fix to
8161         properly disable the timeout when required
8162         (bus_connection_set_name): check whether we can remove incomplete
8163         connections timeout after we complete each connection.
8164
8165         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8166         probably still broken.
8167
8168         * bus/services.c (bus_registry_acquire_service): implement max
8169         number of services owned, and honor allow/deny rules on which
8170         services a connection can own.
8171
8172         * bus/connection.c (bus_connection_get_policy): report errors here
8173
8174         * bus/activation.c: implement limit on number of pending
8175         activations
8176
8177 2003-04-25  Havoc Pennington  <hp@redhat.com>
8178
8179         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8180         where we used >= 0 instead of != DBUS_UID_UNSET.
8181
8182 2003-04-25  Havoc Pennington  <hp@redhat.com>
8183
8184         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8185         were toggled without add/remove, fix from Anders Gustafsson
8186
8187 2003-04-24  Havoc Pennington  <hp@redhat.com>
8188
8189         * test/data/valid-config-files/basic.conf: add <limit> tags to
8190         this test
8191
8192         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8193         <limit> tag in configuration file.
8194
8195 2003-04-24  Havoc Pennington  <hp@redhat.com>
8196
8197         * bus/dispatch.c: somehow missed some name_is
8198
8199         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8200         (_dbus_timeout_set_interval): new
8201
8202         * bus/connection.c (bus_connections_setup_connection): record time
8203         when each connection is first set up, and expire them after the
8204         auth timeout passes.
8205
8206 2003-04-24  Havoc Pennington  <hp@redhat.com>
8207
8208         * dbus/dbus-message.c (dbus_message_name_is): rename
8209         (dbus_message_service_is): rename
8210         (dbus_message_sender_is): rename
8211         (dbus_message_get_service): rename
8212
8213 2003-04-24  Havoc Pennington  <hp@redhat.com>
8214
8215         * configure.in: add --enable-checks
8216
8217         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8218
8219         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8220         to use thread locks.
8221         (_dbus_connection_handler_destroyed_locked): move some private
8222         functions into proper docs group
8223
8224         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8225         _dbus_return_val_if_fail
8226
8227         Throughout: use dbus_return_if_fail
8228
8229 2003-04-23  James Willcox  <jwillcox@gnome.org>
8230
8231         * glib/dbus-glib.h:
8232         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8233         (dbus_connection_setup_with_g_main),
8234         (dbus_server_setup_with_g_main):
8235         * glib/test-dbus-glib.c: (main):
8236         * glib/test-thread-client.c: (main):
8237         * glib/test-thread-server.c: (new_connection_callback), (main):
8238         * tools/dbus-monitor.c: (main):
8239
8240         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8241         and dbus_server_setup_with_g_main().
8242
8243 2003-04-20  Havoc Pennington  <hp@pobox.com>
8244
8245         * doc/dbus-specification.sgml: document the restrictions on
8246         message and service names
8247
8248 2003-04-22  Havoc Pennington  <hp@redhat.com>
8249
8250         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8251         support, and do some code cleanups to share more code and
8252         speed up array marshal/demarshal.
8253
8254         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8255
8256         * configure.in: generate dbus-arch-deps.h
8257
8258         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8259         64-bit typecodes
8260
8261 2003-04-22  Havoc Pennington  <hp@redhat.com>
8262
8263         * test/data/valid-messages/opposite-endian.message: fix test
8264         to use proper type for rply field
8265
8266         * test/data/invalid-messages: add tests for below validation
8267
8268         * dbus/dbus-message.c (decode_header_data): validate field types,
8269         and validate that named fields are valid names
8270         (decode_name_field): consider messages in the
8271         org.freedesktop.Local. namespace to be invalid.
8272
8273         * dbus/dbus-string.c (_dbus_string_validate_name): new
8274
8275 2003-04-19  Havoc Pennington  <hp@pobox.com>
8276
8277         * bus/driver.c (bus_driver_handle_hello): check limits and
8278         return an error if they are exceeded.
8279
8280         * bus/connection.c: maintain separate lists of active and inactive
8281         connections, and a count of each. Maintain count of completed
8282         connections per user. Implement code to check connection limits.
8283
8284         * dbus/dbus-list.c (_dbus_list_unlink): export
8285
8286         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8287         number of bytes in the message queue for a connection
8288
8289 2003-04-18  Havoc Pennington  <hp@pobox.com>
8290
8291         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8292
8293         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8294         memleaks
8295
8296         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8297         on realloc be sure to update the pointer in the keyring
8298
8299         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8300         offset to avoid writing to unallocated memory
8301
8302         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8303         try the next mechanism, so we properly handle OOM
8304
8305         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8306         on OOM.
8307         (_dbus_keyring_new): fix OOM bug
8308         (_dbus_keyring_new_homedir): always set error; impose a maximum
8309         number of keys we'll load from the file, mostly to speed up the
8310         test suite and make its OOM checks more useful, but also for
8311         general sanity.
8312
8313         * dbus/dbus-auth.c (process_error_server): reject authentication
8314         if we get an error from the client
8315         (process_cancel): on cancel, send REJECTED, per the spec
8316         (process_error_client): send CANCEL if we get an error from the
8317         server.
8318
8319 2003-04-18  Havoc Pennington  <hp@pobox.com>
8320
8321         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8322         debug spew
8323
8324         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8325         handling problem
8326
8327         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8328         about DBUS_TEST_HOMEDIR once
8329
8330         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8331         the environment
8332
8333         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8334         config file so we test the right thing
8335
8336         Throughout: assorted docs improvements
8337
8338 2003-04-18  Havoc Pennington  <hp@pobox.com>
8339
8340         * glib/dbus-gmain.c: adapt to watch changes
8341
8342         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8343
8344         * dbus/dbus-server.h: remove dbus_server_handle_watch
8345
8346         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8347
8348         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8349         like DBusTimeout, so we don't need dbus_connection_handle_watch
8350         etc.
8351
8352 2003-04-17  Havoc Pennington  <hp@redhat.com>
8353
8354         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8355         database usage so it all goes via the DBusUserDatabase cache.
8356
8357 2003-04-17  Havoc Pennington  <hp@redhat.com>
8358
8359         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8360         there was an OOM watch we skipped, we always return TRUE so we
8361         iterate again to have a look at it again. Fixes test suite hang.
8362         Code rearrangement also lets us lose some memset and only iterate
8363         over callbacks once.
8364
8365         * bus/driver.c (bus_driver_handle_message): sense of test for
8366         reply was backward
8367
8368 2003-04-16  Havoc Pennington  <hp@pobox.com>
8369
8370         * doc/dbus-specification.sgml: make spec say serials are unsigned
8371
8372         * dbus/dbus-message.h: change message serials to unsigned
8373
8374         * dbus/dbus-connection.c: adapt to message serials being unsigned
8375
8376 2003-04-15  Havoc Pennington  <hp@pobox.com>
8377
8378         * bus/bus.c: create and keep around a shared DBusUserDatabase
8379         object.
8380
8381         * bus/connection.c (bus_connection_get_groups): don't cache
8382         groups for user in the connection object, since user database
8383         object now does that.
8384
8385 2003-04-16  Havoc Pennington  <hp@redhat.com>
8386
8387         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8388         list of size counters
8389         (_dbus_message_loader_putback_message_link): put back a popped link
8390
8391         * dbus/dbus-connection.c
8392         (dbus_connection_set_max_live_messages_size): rename
8393         max_received_size
8394         (dbus_connection_get_outgoing_size): get size of outgoing
8395         queue
8396         (_dbus_connection_set_connection_counter): remove this cruft
8397
8398 2003-04-14  Havoc Pennington  <hp@redhat.com>
8399
8400         * dbus/dbus-userdb.c: user database abstraction, mostly to get
8401         caching, but at some point we might want to be able to use a
8402         different database.
8403
8404         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8405         SHA1 conf file to test the sha1 auth mechanism, since the regular
8406         test always uses EXTERNAL when available.
8407
8408         * configure.in,
8409         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8410         add conf file that requires use of sha1 auth
8411
8412 2003-04-13  Havoc Pennington  <hp@pobox.com>
8413
8414         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8415         from Philip Blundell to send messages and monitor them.
8416
8417 2003-04-13  Havoc Pennington  <hp@pobox.com>
8418
8419         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8420         callbacks
8421
8422         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8423         users
8424
8425         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8426         fix to only recover unused bytes if we're already authenticated
8427         (_dbus_transport_get_is_authenticated): fix to still mark us
8428         authenticated if there are unused bytes.
8429
8430         * bus/dispatch.c: implement security policy checking
8431
8432         * bus/connection.c (bus_transaction_send_from_driver): new
8433
8434         * bus/bus.c (bus_context_check_security_policy): new
8435
8436         * bus/dispatch.c (send_service_nonexistent_error): delete this,
8437         now we just set the DBusError and it gets converted to an error
8438         reply.
8439
8440         * bus/connection.c (allow_user_function): enable code using actual
8441         data from the config file
8442
8443         * bus/policy.c (list_allows_user): handle wildcard rules for
8444         user/group connection perms
8445
8446 2003-04-13  Havoc Pennington  <hp@pobox.com>
8447
8448         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8449
8450         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8451
8452         * bus/policy.c (bus_policy_append_mandatory_rule)
8453         (bus_policy_append_default_rule, bus_policy_append_user_rule)
8454         (bus_policy_append_group_rule): new functions
8455
8456 2003-04-12  Havoc Pennington  <hp@pobox.com>
8457
8458         * bus/config-parser.c (bus_config_parser_new): fix a memleak
8459
8460         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8461         the pid/gid/uid, just for paranoia.
8462
8463         * test/break-loader.c (randomly_do_n_things): find a byte
8464         containing a type code, and randomly change it to a different
8465         type code.
8466
8467 2003-04-12  Havoc Pennington  <hp@pobox.com>
8468
8469         * bus/policy.h: change BusPolicy to be the thing from the config
8470         file, and rename old BusPolicy to BusClientPolicy
8471
8472         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8473         match change in how policy works
8474
8475         * dbus/dbus-internals.h: mark assert_not_reached as
8476         __attribute((noreturn))__
8477
8478 2003-04-11  Havoc Pennington  <hp@redhat.com>
8479
8480         * doc/dbus-specification.sgml: fix a spot with the wrong name for
8481         the broadcast service. Use boolean return for ServiceExists.
8482
8483 2003-04-11  Havoc Pennington  <hp@redhat.com>
8484
8485         * configure.in: add another directory to look for qt in.
8486
8487 2003-04-11  Havoc Pennington  <hp@redhat.com>
8488
8489         * AUTHORS: add Colin Walters
8490
8491 2003-04-11  Havoc Pennington  <hp@redhat.com>
8492
8493         * NEWS: update
8494
8495         * configure.in: 0.9
8496
8497 2003-04-11  Havoc Pennington  <hp@redhat.com>
8498
8499         * bus/messagebus.in: remove pid file when stopping the
8500         message bus, since the bus won't have privileges to remove it
8501         itself.
8502
8503 2003-04-11  Havoc Pennington  <hp@redhat.com>
8504
8505         * bus/bus.c (bus_context_new): move credentials change after
8506         creating pidfile
8507
8508 2003-04-11  Havoc Pennington  <hp@pobox.com>
8509
8510         * test/decode-gcov.c: add "below average functions" to the
8511         coverage report, and change how some of the code works.
8512
8513         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8514         not in the coverage stats.
8515
8516         * test/test-service.c (main): use _dbus_verbose not fprintf in a
8517         couple places so running the test suite doesn't result in megaspam.
8518
8519 2003-04-11  Havoc Pennington  <hp@pobox.com>
8520
8521         * bus/dispatch.c (check_existent_service_activation): accept a no
8522         memory error in a place we didn't before
8523
8524         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8525         in case the first one failed," since the test suite is less
8526         broken now.
8527
8528 2003-04-10  Havoc Pennington  <hp@pobox.com>
8529
8530         * bus/dispatch.c (check_segfault_service_activation): add test
8531         for launching an executable that just crashes.
8532
8533         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8534         don't leave a million cores. We'll see how portable this is.
8535
8536 2003-04-10  Havoc Pennington  <hp@pobox.com>
8537
8538         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8539         the possible parent failures before we fork, so that we don't
8540         fail to create a babysitter after creating the child.
8541
8542         * bus/activation.c (bus_activation_activate_service): kill child
8543         if we don't successfully complete the activation.
8544
8545 2003-04-10  Havoc Pennington  <hp@redhat.com>
8546
8547         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8548         the connection if it's disconnected
8549
8550         * bus/activation.c (bus_activation_service_created): use new
8551         transaction features to roll back removal of pending activation if
8552         we don't successfully create the service after all. Don't remove
8553         pending activation if the function fails.
8554
8555         * dbus/dbus-list.c (_dbus_list_insert_before_link)
8556         (_dbus_list_insert_after_link): new code to facilitate
8557         services.c fixes
8558
8559         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8560         new functionality, so we can preallocate the ability to insert
8561         into a hash table.
8562
8563         * bus/connection.c (bus_transaction_add_cancel_hook): new function
8564         allowing us to put custom hooks in a transaction to be used for
8565         cancelling said transaction
8566
8567         * doc/dbus-specification.sgml: add some discussion of secondary
8568         service owners, and disallow zero-length service names
8569
8570         * bus/services.c (bus_registry_acquire_service): new function,
8571         splits out part of bus_driver_handle_acquire_service() and fixes
8572         a bug where we didn't remove the service doing the acquiring
8573         from the secondary queue if we failed to remove the current owner
8574         from the front of the queue.
8575
8576 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8577
8578         * doc/dbus-specification.sgml:
8579         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
8580
8581 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8582
8583         * bus/.cvsignore:
8584         * glib/.cvsignore:
8585         * test/.cvsignore:
8586         Added files to cvsignore
8587
8588         * dbus/dbus-message.h:
8589         * dbus/dbus-message.c: (dbus_message_iter_get_named):
8590         Make get_named() take two out argument and return a boolean.
8591         (dbus_message_iter_get_args_valist):
8592         Update usage of get_named().
8593         (dbus_message_iter_append_byte):
8594         Fix typo
8595         (dbus_message_iter_append_named)
8596         Fix typo
8597         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
8598         More tests.
8599
8600 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8601
8602         * dbus/dbus-marshal.[ch]:
8603         Add array_type_pos argument to _dbus_marshal_validate_arg.
8604         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
8605
8606         * dbus/dbus-message.[ch]:
8607         Multi-dimensional arrays have full type specification in the
8608         outermost array. Iter code re-arranged to handle this.
8609         Added some more iter tests.
8610
8611         * doc/dbus-specification.sgml:
8612         Add me to authors.
8613         Remove old FIXME.
8614         Update new array encoding description.
8615         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
8616
8617         * test/data/invalid-messages/array-with-mixed-types.message:
8618         * test/data/valid-messages/array-of-array-of-uint32.message:
8619         Change to the new array format.
8620
8621         * test/data/invalid-messages/too-short-dict.message:
8622         Fix bug in test.
8623
8624         * test/data/valid-messages/recursive-types.message:
8625         Fix up and extend test.
8626
8627 2003-04-10  Havoc Pennington  <hp@pobox.com>
8628
8629         * bus/dispatch.c: lots of fixes
8630
8631         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
8632         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
8633         that was crack, broke the test service.
8634
8635         * dbus/dbus-transport.c (_dbus_transport_open): fix error
8636         handling to avoid piling up errors if we get a failure on the
8637         first address.
8638
8639         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
8640         pid in assertion failures.
8641
8642         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
8643         to some fixed size of file descriptor array. Don't return TRUE
8644         anytime a timeout exists, that led to lots of busy loop silliness
8645         in the tests.
8646
8647 2003-04-09  Havoc Pennington  <hp@redhat.com>
8648
8649         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
8650         I'd checked this in earlier but hadn't.
8651
8652 2003-04-09  Havoc Pennington  <hp@redhat.com>
8653
8654         * bus/dispatch.c (bus_dispatch_test): get a bit further through
8655         the activation test (man this is getting old!)
8656
8657 2003-04-09  Havoc Pennington  <hp@redhat.com>
8658
8659         * test/test-utils.c: use dispatch status function to fix this up
8660
8661         * bus/connection.c (connection_watch_callback): don't dispatch
8662         from here
8663         (connection_timeout_callback): don't dispatch from here
8664         (bus_connections_setup_connection): set the dispatch status function
8665         (bus_connection_disconnected): unset it
8666
8667         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
8668         used to add a connection to be dispatched
8669         (_dbus_loop_iterate): do the dispatching at the end of each
8670         iteration
8671
8672         * dbus/dbus-connection.c
8673         (dbus_connection_set_dispatch_status_function): new function
8674         allowing us to fix up main loop usage
8675         (_dbus_connection_last_unref): free all the various function
8676         user data
8677         (dbus_connection_dispatch): call the DispatchStatusFunction
8678         whenever this function returns
8679         (dbus_connection_handle_watch): call DispatchStatusFunction
8680         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
8681         (reply_handler_timeout): call DispatchStatusFunction
8682         (dbus_connection_flush): call DispatchStatusFunction
8683
8684 2003-04-09  Havoc Pennington  <hp@redhat.com>
8685
8686         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
8687         a memory leak
8688
8689         * bus/dispatch.c (check_service_activated): fix bug in test
8690
8691         * dbus/dbus-mainloop.c (check_timeout): fix this up
8692
8693         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
8694         verbose output so we can sort out output from different processes,
8695         e.g. in the activation case.
8696
8697 2003-04-08  Colin Walters  <walters@gnu.org>
8698
8699         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
8700         the pid file.
8701         (bus_context_new): Set it.
8702         (bus_context_unref): Use it to delete the pid file.
8703
8704 2003-04-08  Havoc Pennington  <hp@redhat.com>
8705
8706         * test/data/invalid-messages/array-with-mixed-types.message:
8707         regression test that fails for the moment
8708
8709         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
8710         tests for convenience
8711
8712         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
8713         array of nil, it broke things.
8714
8715         * test/data/invalid-messages/array-of-nil.message: regression test
8716
8717         * test/data/valid-messages/array-of-array-of-uint32.message:
8718         happened to write this so added it to suite
8719
8720 2003-04-08  Havoc Pennington  <hp@redhat.com>
8721
8722         * bus/driver.c (bus_driver_handle_acquire_service): init
8723         retval/reply before checking name
8724
8725         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
8726         recursion depth argument
8727
8728         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
8729         in the public struct for future extension
8730
8731         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
8732         typo
8733
8734         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
8735         message
8736
8737         * doc/dbus-specification.sgml: fix typo
8738
8739 2003-04-08  Alexander Larsson  <alexl@redhat.com>
8740
8741         Implemented recursive types, named types and new-style iters
8742
8743         * bus/driver.c:
8744         * glib/test-thread-client.c: (thread_func):
8745         * glib/test-thread-server.c: (handle_test_message):
8746         * test/test-service.c: (handle_echo):
8747         Update to new api
8748
8749         * dbus/Makefile.am:
8750         * dbus/dbus-dict.c:
8751         * dbus/dbus-dict.h:
8752         * dbus/dbus.h
8753         Remove DBusDict
8754
8755         * dbus/dbus-internals.c: (_dbus_type_to_string):
8756         Update for new types.
8757
8758         * dbus/dbus-marshal.[ch]:
8759         Implement recursive types and the new marshalling format.
8760         Remove hardcoded dict marshalling.
8761         Marshal named types.
8762
8763         * dbus/dbus-message-builder.c:
8764         Add BYTE_ARRAY.
8765         Remove references to old types
8766
8767         * dbus/dbus-message.[ch]:
8768         New non-refcounted iter API that supports recursive iters.
8769         Use iters for appending, including support for recursive
8770         iters.
8771         Add byte and named type support.
8772         Update everything to new marshalling formats.
8773         Add tests for new API.
8774
8775         * dbus/dbus-protocol.h:
8776         Remove old array types.
8777         Add types: BYTE, ARRAY, DICT, NAMED
8778
8779         * dbus/dbus-string.c:
8780         * dbus/dbus-sysdeps.c:
8781         Make parse_double locale safe.
8782
8783         * dbus/dbus-test-main.c:
8784         Call setlocale.
8785
8786         * dbus/dbus-test.c:
8787         Kill dict test
8788
8789         * doc/dbus-specification.sgml:
8790         Update spec
8791
8792         * test/data/incomplete-messages/missing-body.message:
8793         * test/data/invalid-messages/bad-boolean.message:
8794         * test/data/invalid-messages/bad-boolean-array.message:
8795         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
8796         * test/data/invalid-messages/boolean-has-no-value.message-raw:
8797         * test/data/invalid-messages/too-short-dict.message:
8798         * test/data/valid-messages/dict-simple.message:
8799         * test/data/valid-messages/dict.message:
8800         * test/data/valid-messages/emptiness.message:
8801         * test/data/valid-messages/lots-of-arguments.message:
8802         * test/data/valid-messages/no-padding.message:
8803         * test/data/valid-messages/recursive-types.message:
8804         Add missing NAME fields
8805         Fix up dicts & arrays
8806
8807         * test/data/invalid-messages/dict-with-nil-value.message:
8808         Removed, this is not invalid anymore.
8809
8810         * test/data/valid-messages/recursive-types.message:
8811         Add new test for deeply recursive types.
8812
8813 2003-04-07  Havoc Pennington  <hp@pobox.com>
8814
8815         * bus/driver.c (bus_driver_handle_acquire_service): return an
8816         error if you try to acquire a service that starts with ':'
8817
8818 2003-04-07  Havoc Pennington  <hp@redhat.com>
8819
8820         * doc/dbus-specification.sgml: require that base service names
8821         start with ':' and that the base service is created/deleted
8822         as first and last things a connection does on the bus
8823
8824         * bus/dispatch.c (check_existent_service_activation): lots more
8825         work on the activation test; it doesn't fully pass yet...
8826
8827         * test/test-service.c (main): fix so we don't memleak the
8828         connection to the message bus
8829         (filter_func): accept a message asking us to exit
8830
8831 2003-04-06  Havoc Pennington  <hp@pobox.com>
8832
8833         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
8834         from Colin Walters
8835
8836         * configure.in: fixes to Qt detection from Colin Walters
8837
8838         * doc/Makefile.am: Only remove generated docbook dirs if they
8839         exist, from Colin Walters
8840
8841         * dbus/dbus-bus.c: change how we set well-known connections to
8842         NULL, so that it works if a single connection is stored in
8843         two well-known array slots.
8844
8845         * test/Makefile.am: remove a lot of stuff that isn't immediately
8846         useful, it's in CVS history if we want it.
8847
8848         * test/test-service.c: use dbus-mainloop instead of that
8849         watch.[hc] crack
8850
8851 2003-04-06  Havoc Pennington  <hp@pobox.com>
8852
8853         * dbus/Makefile.am: split lists of sources into stuff that goes in
8854         the library, util functions that go in the lib and are also used
8855         elsewhere, and util functions that are used in tests/daemon but
8856         don't go in the lib.
8857
8858         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
8859         here so it can be used in test binaries also
8860
8861 2003-04-06  Havoc Pennington  <hp@pobox.com>
8862
8863         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
8864         here in the parent process, so we can return an error if it
8865         fails. Also, move some of the code into the child so the parent
8866         is less hosed if we fail midway through.
8867
8868         * bus/bus.c (bus_context_new): move pidfile detection further up
8869         in the function, before we start overwriting sockets and such.
8870
8871         * bus/messagebus.in: adjust this a bit, not sure if it will work.
8872
8873         * configure.in: add --with-system-pid-file and --with-system-socket
8874
8875 2003-04-06  Colin Walters  <walters@verbum.org>
8876
8877         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
8878
8879         * bus/system.conf.in: Declare a pidfile.
8880
8881         * bus/bus.c (bus_context_new): Test for an existing pid file, and
8882         create one (if appropriate).
8883
8884         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
8885         (struct BusConfigParser) [pidfile]: New.
8886         (element_type_to_name, merge_included, start_busconfig_child)
8887         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
8888         (bus_config_parser_unref): Free it.
8889         (bus_config_parser_get_pidfile): New function.
8890
8891         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
8892
8893         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
8894
8895         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
8896
8897         * dbus/dbus-sysdeps.h: Prototype it.
8898
8899 2003-04-06  Havoc Pennington  <hp@pobox.com>
8900
8901         * bus/bus.c (bus_context_new): print the address in here, rather
8902         than in main(), because we need to do it before forking the daemon
8903
8904         * bus/dispatch.c (send_service_nonexistent_error): set the sender
8905         on the service nonexistent error
8906
8907         * bus/driver.c (bus_driver_handle_acquire_service): set the
8908         sender on the AcquireService reply
8909
8910         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
8911         server also listen on a UNIX socket so services can connect to it.
8912
8913 2003-04-06  Havoc Pennington  <hp@pobox.com>
8914
8915         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
8916         so it detects deadlocks and also we actually init threads when
8917         debugging.
8918
8919 2003-04-06  Havoc Pennington  <hp@pobox.com>
8920
8921         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8922         save the domain socket name, and unlink it when we disconnect the
8923         server. Means that at least when we exit normally, we won't leave
8924         a bunch of junk in /tmp
8925
8926         * dbus/dbus-transport-unix.c
8927         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
8928         memory management). (I was making a real change here but then
8929         didn't)
8930
8931 2003-04-06  Havoc Pennington  <hp@pobox.com>
8932
8933         * bus/bus.c (bus_context_new): fix wrong handling of
8934         server_data_slot_unref() in the error case.
8935
8936         * dbus/dbus-internals.h (_dbus_assert): change so it passes
8937         "(condition) != 0" to _dbus_real_assert so that
8938         "_dbus_assert (pointer)" doesn't cause a warning
8939
8940         * bus/main.c (main): accept --print-address option to print out
8941         the message bus address
8942
8943         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
8944
8945         * dbus/dbus-transport.c (_dbus_transport_open): special error for
8946         "tmpdir" option to unix: address on client side
8947
8948         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
8949         to unix: address
8950
8951         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
8952         we can use to create sockets in the test suite.
8953
8954         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
8955         cleanly. To be used for testing.
8956
8957         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
8958
8959         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
8960
8961         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8962         handle trying to call this when there's no servers active
8963
8964 2003-04-05  Havoc Pennington  <hp@pobox.com>
8965
8966         * NEWS: update
8967
8968         * configure.in: 0.8
8969
8970 2003-04-05  Havoc Pennington  <hp@pobox.com>
8971
8972         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
8973         crash on startup. Need to get "try starting the daemon"
8974         in the test suite I guess. ;-)
8975
8976         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
8977         tracked the number of open connections; it's better done in
8978         application-specific code as you want it to span all servers etc.
8979
8980 2003-04-05  Havoc Pennington  <hp@pobox.com>
8981
8982         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
8983         patch from Colin Walters
8984
8985 2003-04-05  Havoc Pennington  <hp@pobox.com>
8986
8987         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
8988         reality; in fact multiple mechanisms are allowed.
8989
8990         * dbus/dbus-internals.c (_dbus_real_assert)
8991         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
8992         _dbus_assert_not_reached() into functions, so that they don't show
8993         up in basic block counts for test coverage, and don't use up as
8994         much disk space. Does mean slower execution speed though, so
8995         assumes --disable-asserts is the normal production case.
8996
8997 2003-04-05  Havoc Pennington  <hp@pobox.com>
8998
8999         * test/Makefile.am (dist-hook): also dist *.in files
9000
9001         * NEWS: update
9002
9003         * configure.in: 0.7
9004
9005 2003-04-05  Havoc Pennington  <hp@pobox.com>
9006
9007         * dbus/dbus-string.c: docs warning
9008
9009         * dbus/dbus-spawn.c: missing docs
9010
9011         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9012
9013 2003-04-05  Havoc Pennington  <hp@pobox.com>
9014
9015         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9016         magic from GLib
9017
9018         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9019         to -1 once we've reaped the babysitter
9020         (_dbus_babysitter_handle_watch): do as much work as we can, not
9021         just one go of it
9022
9023         * bus/activation.c: add code using DBusBabysitter so that we
9024         handle it when a service fails to start up properly.
9025         (bus_activation_service_created): don't remove the activation
9026         entries as we go, just let them get removed when we free the pending
9027         activation. Unref reply messages after sending them.
9028
9029 2003-04-05  Havoc Pennington  <hp@pobox.com>
9030
9031         * test/decode-gcov.c (main): print per-directory stats in the report
9032
9033         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9034
9035 2003-04-05  Havoc Pennington  <hp@pobox.com>
9036
9037         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9038
9039         * test/decode-gcov.c: hack up a little program to suck data
9040         out of gcov files. Yes this is sort of silly.
9041
9042         * configure.in: define something in config.h and do an
9043         AM_CONDITIONAL when gcov is enabled
9044
9045 2003-04-04  Havoc Pennington  <hp@redhat.com>
9046
9047         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9048         return a "babysitter" object that is used to monitor the status of
9049         the spawned process and reap it when required.
9050
9051         * test/test-segfault.c, test/test-exit.c,
9052         test/test-sleep-forever.c: binaries that do various lame things,
9053         used in the test suite.
9054
9055         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9056
9057 2003-04-03  Havoc Pennington  <hp@pobox.com>
9058
9059         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9060         in preparation for modifying it, dbus-sysdeps is getting
9061         a bit unmanageable.
9062
9063 2003-04-03  Havoc Pennington  <hp@redhat.com>
9064
9065         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9066         have multiple ones
9067
9068         * bus/*.[hc]: adapt to mainloop change
9069
9070 2003-04-03  Havoc Pennington  <hp@redhat.com>
9071
9072         * bus/activation.c (load_directory): fix up memleaks
9073         (bus_activation_entry_free): free the entry
9074
9075         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9076         we get one from the message bus; fix memleaks.
9077
9078         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9079
9080 2003-04-03  Havoc Pennington  <hp@pobox.com>
9081
9082         * bus/config-parser.c (bus_config_parser_unref): free
9083         list of mechanisms, bug discovered by test suite enhancements
9084         (putting system.conf and session.conf into suite)
9085
9086         * test/Makefile.am, test/test-service.c: add placeholder for a
9087         test service that we'll activate as part of test suite. Doesn't
9088         do anything yet.
9089
9090         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9091         setting NULL value, and use system malloc not dbus_malloc()
9092         when we have unavoidable memleakage.
9093
9094         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9095         didn't work, and support DBUS_BUS_ACTIVATION.
9096
9097         * bus/activation.c (child_setup): pass our well-known bus type to
9098         the child
9099
9100         * bus/config-parser.c: support <type> to specify well-known type
9101
9102         * doc/dbus-specification.sgml: document the env variables to
9103         locate well-known buses and find service activator
9104
9105 2003-04-02  Havoc Pennington  <hp@redhat.com>
9106
9107         * test/Makefile.am (all-local): add a rule to copy tests to
9108         builddir, so we can have generated tests. Use this to remove the
9109         silly hack for testing system.conf and session.conf. Will use this
9110         shortly to generate .service files pointing to test binaries.
9111
9112 2003-04-02  Havoc Pennington  <hp@redhat.com>
9113
9114         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9115         current alloc and needed new length, not max of the doubled
9116         allocation and needed new length. Also, when building tests,
9117         don't do the double-allocation stuff, just realloc every time.
9118
9119 2003-04-02  Havoc Pennington  <hp@redhat.com>
9120
9121         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9122         in error messages
9123         (_dbus_string_get_dirname): new
9124         (_dbus_sysdeps_test): new
9125         (_dbus_directory_open): include dirnames in error messages
9126
9127         * bus/config-parser.c: interpret <include> and <includedir> and
9128         <servicedir> relative to config file location if the given
9129         filename is not absolute.
9130
9131         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9132
9133 2003-04-02  Havoc Pennington  <hp@redhat.com>
9134
9135         * bus/connection.c (bus_transaction_send_error_reply): set sender
9136         service for the error, and unref the reply on success
9137
9138         * bus/activation.c: convert to use BusTransaction so OOM can be
9139         handled correctly
9140         (bus_activation_service_created): set sender of the message
9141
9142 2003-04-01  Havoc Pennington  <hp@redhat.com>
9143
9144         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9145         <includedir> (at least mostly)
9146
9147         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9148         first, then the user ID
9149
9150 2003-04-01  Havoc Pennington  <hp@pobox.com>
9151
9152         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9153         function
9154
9155         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9156
9157         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9158
9159         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9160         socket 0777, and unlink any existing socket.
9161
9162         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9163         the configuration file so specifies; set up auth mechanism
9164         restrictions
9165
9166         * bus/config-parser.c (bus_config_parser_content): add support
9167         for <fork> option and fill in code for <auth>
9168
9169         * bus/system.conf.in: add <fork/> to default configuration,
9170         and limit auth mechanisms to EXTERNAL
9171
9172         * doc/config-file.txt (Elements): add <fork>
9173
9174         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9175         (_dbus_change_identity): new function
9176
9177 2003-03-31  Havoc Pennington  <hp@redhat.com>
9178
9179         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9180         (_dbus_listen_unix_socket): fix off-by-one error in null
9181         termination spotted by Nalin
9182
9183 2003-03-31  Havoc Pennington  <hp@redhat.com>
9184
9185         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9186         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9187         having a real home directory available.
9188
9189 2003-03-31  Havoc Pennington  <hp@redhat.com>
9190
9191         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9192
9193         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9194
9195         * configure.in: add support for specifying a style of init script
9196         to install
9197
9198 2003-03-31  Havoc Pennington  <hp@redhat.com>
9199
9200         Fix some annoying DBusString API and fix all affected code.
9201
9202         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9203         max_length argument
9204         (_dbus_string_get_data): change to return string instead of using
9205         an out param
9206         (_dbus_string_get_const_data): ditto
9207         (_dbus_string_get_data_len): ditto
9208         (_dbus_string_get_const_data_len): ditto
9209
9210 2003-03-31  Havoc Pennington  <hp@redhat.com>
9211
9212         * bus/main.c (main): fix up the command line arguments to be nicer
9213
9214 2003-03-31  Havoc Pennington  <hp@redhat.com>
9215
9216         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9217         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9218         final location that lands in the config file
9219
9220         * bus/config-loader-expat.c (bus_config_load): fix type of
9221         XML_Parser variable
9222
9223         * doc/TODO: remove TODO item for dbus_bus_get()
9224
9225         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9226
9227 2003-03-31  Havoc Pennington  <hp@pobox.com>
9228
9229         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9230         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9231         argument since they are always client side
9232
9233         * dbus/dbus-server.c (dbus_server_get_address): new function
9234
9235         * bus/main.c (main): take the configuration file as an argument.
9236
9237         * test/data/valid-config-files/debug-allow-all.conf: new file to
9238         use with dispatch.c tests for example
9239
9240         * bus/test-main.c (main): require test data dir
9241
9242         * bus/bus.c (bus_context_new): change this to take a
9243         configuration file name as argument
9244
9245         * doc/config-file.txt (Elements): add <servicedir>
9246
9247         * bus/system.conf, bus/session.conf: new files
9248
9249         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9250         well-known socket if none set
9251
9252         * configure.in: create system.conf and session.conf
9253
9254 2003-03-30  Havoc Pennington  <hp@pobox.com>
9255
9256         * bus/config-parser.c: hacking
9257
9258         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9259         to shut down, since it could cause weirdness with the DBusList
9260         lock
9261
9262         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9263         link-oriented stack routines
9264         (alloc_link): free the mempool if the first alloc from it fails
9265
9266         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9267
9268         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9269         from GLib
9270         (_dbus_string_skip_white): new
9271
9272         * doc/config-file.txt (Elements): add <includedir>
9273
9274 2003-03-28  Havoc Pennington  <hp@pobox.com>
9275
9276         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9277         (_dbus_string_copy_data): new functions
9278
9279 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9280
9281         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9282         * dbus/dbus-bus.h:
9283         Add dbus_bus_get.
9284
9285         * dbus/dbus-memory.c:
9286         Fix a doc comment.
9287
9288 2003-03-28  Havoc Pennington  <hp@pobox.com>
9289
9290         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9291         I think it may have just been superstition. Not sure.
9292
9293         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9294         failures that were not being handled.
9295
9296         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9297
9298         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9299         row that will fail on out-of-memory.
9300
9301         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9302         function for testing out-of-memory handling.
9303
9304         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9305         allocation functions, they do map exactly to the expat ones.
9306
9307 2003-03-27  Havoc Pennington  <hp@redhat.com>
9308
9309         * bus/config-loader-libxml.c (bus_config_load): add another error
9310         check
9311
9312 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9313
9314         * doc/TODO:
9315         Add note about automatic service activation.
9316
9317         * doc/dbus-specification.sgml:
9318         Rename the specification and clarify a few things.
9319
9320 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9321
9322         * Doxyfile.in:
9323         * dbus/dbus-address.c:
9324         * dbus/dbus-dict.c:
9325         * dbus/dbus-marshal.c:
9326         * dbus/dbus-server-debug-pipe.c:
9327         * dbus/dbus-transport-unix.c:
9328         Fix documentation warnings.
9329
9330 2003-03-26  Havoc Pennington  <hp@pobox.com>
9331
9332         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9333         after every test so it's quick and easy to see which leaked, and
9334         so we test multiple dbus_shutdown() calls
9335
9336         * configure.in: change configure.in XML stuff to also support
9337         expat
9338
9339         * config-loader-libxml.c: some hacking
9340
9341         * config-loader-expat.c: some hacking
9342
9343         * config-parser.c: some hacking, plus tests
9344
9345 2003-03-25  Havoc Pennington  <hp@redhat.com>
9346
9347         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9348
9349         * configure.in: add --with-xml option to specify XML library,
9350         right now only libxml is supported.
9351
9352         * bus/config-loader-libxml.c, config-parser.c: sync some minor
9353         nonworking code between home and work, still just stubs
9354
9355 2003-03-24  Havoc Pennington  <hp@redhat.com>
9356
9357         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9358         file
9359
9360         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9361         NULL argument for "message" if the error is a well-known one,
9362         fill in a generic message in this case.
9363
9364         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9365         favor of DBusError
9366
9367         * bus/test.c (bus_test_flush_bus): add
9368
9369         * bus/policy.c (bus_policy_test): test code stub
9370
9371 2003-03-24  Havoc Pennington  <hp@pobox.com>
9372
9373         * bus/connection.c (bus_connections_setup_connection): set up
9374         the "can this user connect" function, but it always returns
9375         TRUE until we have a config file parser so we can have a config
9376         file that allows connections.
9377
9378 2003-03-23  Havoc Pennington  <hp@pobox.com>
9379
9380         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9381         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9382         the mutex, so we can check for proper memory management
9383         and OOM handling.
9384
9385         * dbus/dbus-dataslot.c: remove the mutex from
9386         DBusDataSlotAllocator and lock it manually when using it,
9387         to simplify fitting it into the global slots framework.
9388
9389         * dbus/dbus-threads.c (init_static_locks): rework how we're
9390         handling global locks so they are easily shut down.
9391
9392         * bus/policy.c (bus_policy_append_rule): fix
9393
9394         * bus/test-main.c (main): check for memleaks
9395
9396         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9397         test suite check for memleaks
9398
9399         * dbus/dbus-memory.c: add support in test mode for tracking
9400         number of outstanding blocks
9401
9402 2003-03-23  Havoc Pennington  <hp@pobox.com>
9403
9404         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9405         policies code
9406
9407         * dbus/dbus-hash.h: add ULONG hash keys
9408
9409         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9410         (_dbus_get_group_id): new function
9411
9412 2003-03-20  Havoc Pennington  <hp@redhat.com>
9413
9414         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9415         new function
9416         (dbus_connection_get_unix_user): new function
9417
9418 2003-03-20  Havoc Pennington  <hp@pobox.com>
9419
9420         * bus/connection.c (bus_connection_send_oom_error): assert that
9421         message has a sender
9422         (connection_execute_transaction): ditto
9423         (bus_connection_preallocate_oom_error): fix to set the sender, and
9424         set recipient to the destination service, not the bus driver
9425
9426         * bus/policy.c: hacking
9427
9428         * dbus/dbus-message.c (dbus_message_service_is): new function
9429         (dbus_message_sender_is): new
9430
9431 2003-03-19  Havoc Pennington  <hp@redhat.com>
9432
9433         * bus/policy.c: start sketching code for policy restrictions on
9434         what connections can do.
9435
9436 2003-03-18  Havoc Pennington  <hp@redhat.com>
9437
9438         * doc/TODO: some notes on high-level todo items. Little nitpick
9439         stuff is all in @todo, so no need to add it here.
9440
9441         * doc/config-file.txt: some notes on how config file might look
9442
9443 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
9444
9445         * configure.in: 0.6
9446
9447         * NEWS: Update.
9448
9449 2003-03-17  Havoc Pennington  <hp@redhat.com>
9450
9451         * dbus/dbus-internals.h: add gcc attributes so that
9452         our printf-style functions warn on bad arguments to
9453         format
9454
9455         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9456         format bug
9457
9458         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9459         printf format bug
9460
9461 2003-03-17  Havoc Pennington  <hp@redhat.com>
9462
9463         * bus/test-main.c (main): make it print something as it runs
9464         so make check doesn't look stuck
9465
9466         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9467         from CVS, now obsolete
9468
9469 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9470
9471         * bus/dispatch.c: (bus_dispatch):
9472         Refetch the service name since it may have been reallocated
9473         when dbus_message_set_sender was called.
9474
9475         * dbus/dbus-sysdeps.c: (_dbus_accept):
9476         Add address and address length variables and use them to stop
9477         valgrind from complaining.
9478
9479 2003-03-17  Havoc Pennington  <hp@pobox.com>
9480
9481         All tests pass, no memleaks, no valgrind complaints.
9482
9483         * bus/test.c: refcount handler_slot
9484
9485         * bus/connection.c (bus_connections_new): refcount
9486         connection_data_slot
9487
9488         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9489         bytes so that auth scripts pass.
9490
9491         * bus/dispatch.c: init message_handler_slot so it gets allocated
9492         properly
9493
9494         * bus/dispatch.c (message_handler_slot_ref): fix memleak
9495
9496         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9497         dealloc server_pipe_hash when no longer used for benefit of
9498         leak checking
9499
9500         * dbus/dbus-auth.c (process_command): memleak fix
9501
9502         * bus/dispatch.c (check_hello_message): memleak fix
9503
9504 2003-03-16  Havoc Pennington  <hp@pobox.com>
9505
9506         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9507
9508 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9509
9510         * bus/activation.c (bus_activation_activate_service): Append
9511         the pending activation entry to the list of pending activations.
9512
9513 2003-03-16  Havoc Pennington  <hp@pobox.com>
9514
9515         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9516         connections
9517
9518         * dbus/dbus-address.c (create_entry): fix OOM handling when
9519         failing to alloc entry->method
9520
9521 2003-03-16  Havoc Pennington  <hp@pobox.com>
9522
9523         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9524         the watch
9525
9526         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9527         add some missing dbus_set_result
9528
9529         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9530         alloc the DBusMessageHandler
9531
9532         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9533         the transport here, since we call this from the finalizer; it
9534         resulted in a double-finalize.
9535
9536         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9537         where we tried to use transport->connection that was NULL,
9538         happened when transport was disconnected early on due to OOM
9539
9540         * bus/*.c: adapt to handle OOM for watches/timeouts
9541
9542         * dbus/dbus-transport-unix.c: port to handle OOM during
9543         watch handling
9544
9545         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9546         reference to unused bytes instead of a copy
9547
9548         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9549         out of memory
9550
9551         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9552         FALSE on OOM
9553
9554         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9555         of memory
9556
9557 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9558
9559         * doc/dbus-specification.sgml:
9560         Document reply message for ActivateService.
9561
9562 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9563
9564         * bus/activation.c: (bus_pending_activation_entry_free),
9565         (bus_pending_activation_free), (bus_activation_new),
9566         (bus_activation_unref), (bus_activation_service_created),
9567         (bus_activation_activate_service):
9568         * bus/activation.h:
9569         * bus/bus.c: (bus_context_new):
9570         * bus/desktop-file.c: (new_section):
9571         * bus/driver.c: (bus_driver_send_service_deleted),
9572         (bus_driver_handle_activate_service):
9573         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9574         * bus/services.h:
9575         * dbus/dbus-connection.c:
9576         (dbus_connection_send_with_reply_and_block):
9577         * dbus/dbus-message.c: (dbus_message_append_args_valist):
9578         * dbus/dbus-protocol.h:
9579         Make activation work better. Now pending activations will be queued
9580         and the daemon won't try to activate services that are already registered.
9581
9582 2003-03-16  Havoc Pennington  <hp@pobox.com>
9583
9584         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
9585         connection data
9586
9587         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
9588         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
9589
9590 2003-03-16  Havoc Pennington  <hp@pobox.com>
9591
9592         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
9593         this. always run the test suite before commit...
9594
9595         * bus/*: adapt to DBusConnection API changes
9596
9597         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
9598         requires renaming stuff to avoid dbus_connection_dispatch name
9599         conflict.
9600
9601         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
9602         function
9603
9604         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9605         separate from _dbus_message_loader_return_buffer()
9606
9607         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
9608         this, because it's now always broken to use; the number of
9609         messages in queue vs. the number still buffered by the message
9610         loader is undefined/meaningless. Should use
9611         dbus_connection_get_dispatch_state().
9612         (dbus_connection_dispatch): rename from
9613         dbus_connection_dispatch_message
9614
9615 2003-03-16  Havoc Pennington  <hp@pobox.com>
9616
9617         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
9618         implementation
9619
9620 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9621
9622         * dbus/dbus-connection.c:
9623         (dbus_connection_send_with_reply_and_block):
9624         Decrease connection->n_incoming when removing an entry
9625         from the list.
9626         * dbus/dbus-dict.c: (dbus_dict_entry_free),
9627         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9628         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9629         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
9630         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
9631         (dbus_dict_get_byte_array):
9632         Handle NULL arrays and strings. Also add support for byte arrays.
9633
9634         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
9635         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
9636         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
9637         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
9638         (_dbus_demarshal_dict), (demarshal_and_validate_len),
9639         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
9640         * dbus/dbus-marshal.h:
9641         Add support for marshalling and demarshalling empty arrays and strings.
9642
9643         * dbus/dbus-message.c: (dbus_message_append_args_valist),
9644         (dbus_message_append_string_array),
9645         (dbus_message_iter_get_boolean),
9646         (dbus_message_iter_get_boolean_array),
9647         (dbus_message_iter_get_int32_array),
9648         (dbus_message_iter_get_uint32_array),
9649         (dbus_message_iter_get_double_array),
9650         (dbus_message_iter_get_byte_array),
9651         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
9652         (check_message_handling):
9653         Add support for getting empty arrays and dicts.
9654
9655         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
9656         Don't do any validation at all for now, that's better than just checking
9657         for ASCII.
9658
9659         * test/data/valid-messages/emptiness.message:
9660         New test message with lots of empty arrays.
9661
9662 2003-03-16  Havoc Pennington  <hp@pobox.com>
9663
9664         * dbus/dbus-connection.c
9665         (_dbus_connection_queue_received_message_link): new function that
9666         can't fail due to OOM
9667
9668         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
9669         new function pops a message together with a list link
9670         containing it.
9671
9672         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
9673         message queuing functions to avoid needing to alloc memory
9674
9675 2003-03-16  Havoc Pennington  <hp@pobox.com>
9676
9677         Oops - test code was only testing failure of around 30 of the
9678         mallocs in the test path, but it turns out there are 500+
9679         mallocs. I believe this was due to misguided linking setup such
9680         that there was one copy of dbus_malloc etc. in the daemon and one
9681         in the shared lib, and only daemon mallocs were tested. In any
9682         case, the test case now tests all 500+ mallocs, and doesn't pass
9683         yet, though there are lots of fixes in this patch.
9684
9685         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9686         this so that it doesn't need to allocate memory, since it
9687         has no way of indicating failure due to OOM (and would be
9688         annoying if it did).
9689
9690         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
9691
9692         * bus/Makefile.am: rearrange to create two self-contained
9693         libraries, to avoid having libraries with overlapping symbols.
9694         that was resulting in weirdness, e.g. I'm pretty sure there
9695         were two copies of global static variables.
9696
9697         * dbus/dbus-internals.c: move the malloc debug stuff to
9698         dbus-memory.c
9699
9700         * dbus/dbus-list.c (free_link): free list mempool if it becomes
9701         empty.
9702
9703         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
9704
9705         * dbus/dbus-address.c (dbus_parse_address): free list nodes
9706         on failure.
9707
9708         * bus/dispatch.c (bus_dispatch_add_connection): free
9709         message_handler_slot when no longer using it, so
9710         memory leak checkers are happy for the test suite.
9711
9712         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
9713
9714         * bus/bus.c (new_connection_callback): disconnect in here if
9715         bus_connections_setup_connection fails.
9716
9717         * bus/connection.c (bus_connections_unref): fix to free the
9718         connections
9719         (bus_connections_setup_connection): if this fails, don't
9720         disconnect the connection, just be sure there are no side
9721         effects.
9722
9723         * dbus/dbus-string.c (undo_alignment): unbreak this
9724
9725         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
9726         leaking
9727         (_dbus_auth_new): fix the order in which we free strings
9728         on OOM failure
9729
9730         * bus/connection.c (bus_connection_disconnected): fix to
9731         not send ServiceDeleted multiple times in case of memory
9732         allocation failure
9733
9734         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
9735         get the base service name
9736         (dbus_bus_register_client): don't return base service name,
9737         instead store it on the DBusConnection and have an accessor
9738         function for it.
9739         (dbus_bus_register_client): rename dbus_bus_register()
9740
9741         * bus/dispatch.c (check_hello_message): verify that other
9742         connections on the bus also got the correct results, not
9743         just the one sending hello
9744
9745 2003-03-15  Havoc Pennington  <hp@pobox.com>
9746
9747         Make it pass the Hello handling test including all OOM codepaths.
9748         Now to do other messages...
9749
9750         * bus/services.c (bus_service_remove_owner): fix crash when
9751         removing owner from an empty list of owners
9752         (bus_registry_ensure): don't leave service in the list of
9753         a connection's owned services if we fail to put the service
9754         in the hash table.
9755
9756         * bus/connection.c (bus_connection_preallocate_oom_error): set
9757         error flag on the OOM error.
9758
9759         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9760         handle _dbus_transport_set_connection failure
9761
9762         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
9763         to create watches up front and simply enable/disable them as
9764         needed.
9765         (unix_connection_set): this can now fail on OOM
9766
9767         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
9768         of enabling/disabling a watch or timeout.
9769
9770         * bus/loop.c (bus_loop_iterate): don't touch disabled
9771         watches/timeouts
9772
9773         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
9774
9775 2003-03-15  Havoc Pennington  <hp@pobox.com>
9776
9777         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
9778         write useful test code, after all that futzing around ;-)
9779
9780         Test does not yet pass because we can't handle OOM in
9781         _dbus_transport_messages_pending (basically,
9782         dbus_connection_preallocate_send() does not prealloc the write
9783         watch). To fix this, I think we need to add new stuff to
9784         set_watch_functions, namely a SetEnabled function so we can alloc
9785         the watch earlier, then enable it later.
9786
9787         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
9788         dbus-memory.c to the convenience lib
9789
9790         * bus/test.c: rename some static functions to keep them clearly
9791         distinct from stuff in connection.c. Handle client disconnection.
9792
9793 2003-03-14  Havoc Pennington  <hp@pobox.com>
9794
9795         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
9796         transport, tests more of the real codepath. Set up clients
9797         with bus_setup_debug_client.
9798
9799         * bus/test.c (bus_setup_debug_client): function to set up debug
9800         "clients" on the main loop
9801
9802         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
9803         support
9804
9805         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
9806         server type
9807
9808         * dbus/dbus-server-debug.c: support a debug server based on pipes
9809
9810         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
9811         (_dbus_close): new function
9812
9813         * configure.in: check for socketpair
9814
9815 2003-03-14  Havoc Pennington  <hp@redhat.com>
9816
9817         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
9818         cheesy hack
9819
9820         * dbus/dbus-transport-debug.c: rework this a good bit to be
9821         less complicated. hopefully still works.
9822
9823         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
9824         manually
9825
9826         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
9827         after running it
9828
9829         * dbus/dbus-message.c (dbus_message_copy): rename from
9830         dbus_message_new_from_message, fix it up to copy
9831         all the message fields, add test case
9832
9833         * bus/dispatch.c (bus_dispatch_test): add some more test code,
9834         not quite passing yet
9835
9836 2003-03-14  Havoc Pennington  <hp@pobox.com>
9837
9838         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
9839         until no work remains" in test code. (the large diff here
9840         is just code movement, no actual changes)
9841
9842         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
9843         1, no point waiting around for test code.
9844         (_dbus_server_debug_accept_transport): unref the timeout
9845         after adding it (right?)
9846
9847         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
9848
9849 2003-03-13  Havoc Pennington  <hp@redhat.com>
9850
9851         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
9852         out of memory
9853
9854         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
9855         of memory
9856
9857         * dbus/dbus-connection.h: Make AddWatchFunction and
9858         AddTimeoutFunction return a bool so they can fail on out-of-memory
9859
9860         * bus/bus.c (bus_context_new): set up timeout handlers
9861
9862         * bus/connection.c (bus_connections_setup_connection): set up
9863         timeout handlers
9864
9865         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
9866         can fail
9867
9868         * bus/bus.c (bus_context_new): adapt to changes
9869
9870         * bus/connection.c: adapt to changes
9871
9872         * test/watch.c: adapt to DBusWatch changes
9873
9874         * bus/dispatch.c (bus_dispatch_test): started adding this but
9875         didn't finish
9876
9877 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
9878
9879         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
9880
9881 2003-03-13  Havoc Pennington  <hp@pobox.com>
9882
9883         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
9884         set up a test framework as for the library
9885
9886 2003-03-12  Havoc Pennington  <hp@pobox.com>
9887
9888         Throughout: purge global variables, introduce BusActivation,
9889         BusConnections, BusRegistry, etc. objects instead.
9890
9891         * bus/bus.h, bus/bus.c: introduce BusContext as a global
9892         message bus object
9893
9894         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
9895         going to redo this a bit differently I think
9896
9897 2003-03-12  Havoc Pennington  <hp@redhat.com>
9898
9899         Mega-patch that gets the message bus daemon initially handling
9900         out-of-memory. Work still needed. Also lots of random
9901         moving stuff to DBusError instead of ResultCode.
9902
9903         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
9904
9905         * dbus/dbus-connection.c
9906         (dbus_connection_send_with_reply_and_block): use DBusError
9907
9908         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
9909         DBusResultCode
9910
9911         * dbus/dbus-connection.c (dbus_connection_send): drop the result
9912         code here, as the only failure possible is OOM.
9913
9914         * bus/connection.c (bus_connection_disconnect):
9915         rename bus_connection_disconnected as it's a notification only
9916
9917         * bus/driver.c (bus_driver_handle_acquire_service): don't free
9918         "name" on get_args failure, should be done by get_args;
9919         don't disconnect client for bad args, just return an error.
9920         (bus_driver_handle_service_exists): ditto
9921
9922         * bus/services.c (bus_services_list): NULL-terminate returned array
9923
9924         * bus/driver.c (bus_driver_send_service_lost)
9925         (bus_driver_send_service_acquired): send messages from driver to a
9926         specific client to the client's unique name, not to the broadcast
9927         service.
9928
9929         * dbus/dbus-message.c (decode_header_data): reject messages that
9930         contain no name field
9931         (_dbus_message_get_client_serial): rename to
9932         dbus_message_get_serial and make public
9933         (_dbus_message_set_serial): rename from set_client_serial
9934         (_dbus_message_set_reply_serial): make public
9935         (_dbus_message_get_reply_serial): make public
9936
9937         * bus/connection.c (bus_connection_foreach): allow stopping
9938         iteration by returning FALSE from foreach function.
9939
9940         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
9941         (dbus_connection_free_preallocated_send)
9942         (dbus_connection_preallocate_send): new API for sending a message
9943         without possibility of malloc failure.
9944         (dbus_connection_send_message): rename to just
9945         dbus_connection_send (and same for whole function family)
9946
9947         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
9948
9949         * dbus/dbus-sysdeps.c (_dbus_exit): new function
9950
9951         * bus/activation.c: handle/return errors
9952
9953         * dbus/dbus-errors.h: add more DBUS_ERROR #define
9954
9955         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
9956         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
9957         (_dbus_result_from_errno): move to this file
9958
9959 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
9960
9961         * dbus/dbus-marshal.c:
9962         (_dbus_marshal_set_string):
9963         Take a length argument so we can marshal the correct string
9964         length.
9965
9966         (_dbus_marshal_dict), (_dbus_demarshal_dict),
9967         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
9968         (_dbus_marshal_test):
9969         * dbus/dbus-marshal.h:
9970         Add support for marshalling and demarshalling dicts.
9971
9972         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9973         Add support for TYPE DICT.
9974
9975         * dbus/dbus-message.c: (set_string_field):
9976         Adjust header padding.
9977
9978         (dbus_message_append_args_valist), (dbus_message_append_dict),
9979         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
9980         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
9981         (check_message_handling), (check_have_valid_message):
9982         * dbus/dbus-message.h:
9983         Add functions for setting and getting dicts.
9984
9985         * dbus/dbus-protocol.h:
9986         Add DBUS_TYPE_DICT.
9987
9988         * dbus/dbus.h:
9989         Add dbus-dict.h
9990
9991         * doc/dbus-specification.sgml:
9992         Add information about how dicts are marshalled.
9993
9994         * test/data/invalid-messages/dict-with-nil-value.message:
9995         * test/data/invalid-messages/too-short-dict.message:
9996         * test/data/valid-messages/dict-simple.message:
9997         * test/data/valid-messages/dict.message:
9998         Add sample messages containing dicts.
9999
10000 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10001
10002         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10003
10004 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10005
10006         * dbus/Makefile.am:
10007         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10008         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10009         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10010         (dbus_dict_set_double), (dbus_dict_set_string),
10011         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10012         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10013         (dbus_dict_set_string_array), (_dbus_dict_test):
10014         * dbus/dbus-dict.h:
10015         Fix according to comments from Havoc.
10016
10017 2003-03-06  Michael Meeks  <michael@server.home>
10018
10019         * configure.in: if we don't have kde-config, disable have_qt.
10020
10021 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10022
10023         * dbus/Makefile.am:
10024         Add dbus-dict.[ch]
10025
10026         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10027         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10028         (dbus_dict_remove), (dbus_dict_get_value_type),
10029         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10030         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10031         (dbus_dict_put_double), (dbus_dict_put_string),
10032         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10033         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10034         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10035         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10036         (dbus_dict_get_double), (dbus_dict_get_string),
10037         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10038         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10039         (dbus_dict_get_string_array), (_dbus_dict_test):
10040         * dbus/dbus-dict.h:
10041         Add DBusDict implementation
10042
10043         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10044         * dbus/dbus-test.h:
10045         Add _dbus_dict_test
10046
10047 2003-03-04  Havoc Pennington  <hp@pobox.com>
10048
10049         * test/data/auth/*: adapt to changes
10050
10051         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10052         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10053         userid
10054
10055         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10056         more stuff from being in a context name, to make the protocol
10057         simpler to deal with
10058
10059         * dbus/dbus-errors.c (dbus_error_has_name): new function
10060         (dbus_error_is_set): new function
10061
10062         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10063         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10064
10065         * dbus/dbus-connection.c (dbus_connection_flush): also read
10066         messages during a flush operation
10067
10068         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10069
10070 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10071
10072         * configure.in: Check for gethostbyname on Solaris.
10073
10074         * dbus/dbus-transport.c: (_dbus_transport_open):
10075         Remove duplicate "tcp" entry.
10076
10077         * doc/dbus-specification.sgml:
10078         Clarify some things.
10079
10080 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10081
10082         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10083         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10084         (_dbus_keyring_test):
10085         * dbus/dbus-md5.c: (_dbus_md5_compute):
10086         * dbus/dbus-sha.c: (_dbus_sha_compute):
10087         Plug memory leaks.
10088
10089 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10090
10091         * README: Add some things.
10092
10093 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10094
10095         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10096         after case DBUS_TYPE_BOOELAN.
10097
10098 2003-03-02  Havoc Pennington  <hp@pobox.com>
10099
10100         * test/break-loader.c (randomly_set_extreme_ints): add test that
10101         sets really huge and small integers
10102
10103         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10104         that length of boolean array fits in the string, and that
10105         string has room for boolean value in single-bool case.
10106
10107         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10108         optional value to "ALIGN" command which is what to fill the
10109         alignment with.
10110
10111         * test/data/valid-messages/no-padding.message: add regression
10112         test for the message padding problem
10113
10114 2003-03-02  Havoc Pennington  <hp@pobox.com>
10115
10116         * dbus/dbus-message.c (decode_header_data): fix to always init
10117         message_padding, from Benjamin Dauvergne
10118
10119 2003-03-02  Havoc Pennington  <hp@pobox.com>
10120
10121         * configure.in: 0.5
10122
10123         * NEWS: Update.
10124
10125 2003-03-01  Joe Shaw  <joe@assbarn.com>
10126
10127         * configure.in: Check for "struct cmsgcred" and try to access its
10128         members for BSD-like unices.
10129
10130         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10131         _dbus_read_credentials_unix_socket().
10132         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10133         read() for reading the credential byte off the unix socket.  Use
10134         struct cmsgcred on systems that support it.
10135
10136 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10137
10138         * glib/Makefile.am:
10139         * configure.in:
10140         Make gthreads-2.0 dependency optional. Don't build thread test if
10141         its not found.
10142
10143 2003-02-27  Havoc Pennington  <hp@pobox.com>
10144
10145         * dbus/dbus-connection.c
10146         (dbus_connection_send_message_with_reply_and_block): fix doh!
10147         doh! doh! bug that resulted in never removing a reply from the
10148         queue, no wonder we called get_reply_serial so much ;-)
10149
10150         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10151         and client serial instead of demarshaling them every time
10152
10153 2003-02-27  Havoc Pennington  <hp@pobox.com>
10154
10155         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10156         more inlined, using dbus-string-private.h, speeds things up
10157         substantially
10158
10159         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10160         when freeing the string
10161         (_dbus_string_steal_data): fix for align offset
10162         (undo_alignment): new function
10163
10164 2003-02-26  Havoc Pennington  <hp@redhat.com>
10165
10166         All kinds of audit fixes from Owen, plus initial attempt to
10167         handle unaligned memory returned from malloc.
10168
10169         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10170         leave room for align_offset and nul byte
10171         (fixup_alignment): function to track an align_offset and
10172         ensure real->str is aligned
10173         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10174         to allow a nul byte plus align offset
10175         (_dbus_string_lock): fix overflow issue
10176         (_dbus_string_init_const_len): add assertions on sanity of len,
10177         assign allocated to be ALLOCATION_PADDING larger than len
10178         (set_length): fixup the overflow handling
10179         (_dbus_string_get_data_len): fix overflow in assertion
10180         (open_gap): detect overflow in size of gap to be opened
10181         (_dbus_string_lengthen): add overflow check
10182         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10183         (_dbus_string_append): add overflow check
10184         (_dbus_string_append_unichar): overflow
10185         (_dbus_string_delete): fix overflow in assertion
10186         (_dbus_string_copy_len): overflow in assertion
10187         (_dbus_string_replace_len): overflows in assertions
10188         (_dbus_string_find): change to implement in terms of
10189         _dbus_string_find_to
10190         (_dbus_string_find_to): assorted fixage
10191         (_dbus_string_equal_c_str): assert c_str != NULL,
10192         fix logic so the function works
10193         (_dbus_string_ends_with_c_str): fix overflow thingy
10194         (_dbus_string_base64_encode): overflow fix
10195         (_dbus_string_validate_ascii): overflow
10196         (_dbus_string_validate_nul): overflow
10197
10198 2003-02-26  Havoc Pennington  <hp@redhat.com>
10199
10200         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10201
10202 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10203
10204         * configure.in:
10205         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10206
10207         * dbus/dbus-connection.c:
10208         * dbus/dbus-connection.h:
10209         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10210         Add dbus_connection_set_wakeup_main_function and use it when queueing
10211         incoming and outgoing messages.
10212
10213
10214         * dbus/dbus-dataslot.c:
10215         Threadsafe usage of DBusDataSlotAllocator
10216
10217         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10218         dbus_new can fail.
10219
10220         * dbus/dbus-server-unix.c:
10221         Add todo comment
10222
10223         * glib/dbus-gmain.c:
10224         Implement the new wakeup functions for glib.
10225
10226         * glib/Makefile.am:
10227         * glib/test-thread-client.c:
10228         * glib/test-thread-server.c:
10229         * glib/test-thread.h:
10230         Initial cut at some thread test code. Not really done yet.
10231
10232 2003-02-26  Havoc Pennington  <hp@pobox.com>
10233
10234         * dbus/dbus-connection.c
10235         (dbus_connection_send_message_with_reply_and_block): fix crash
10236         where we ref'd the outgoing message instead of the returned reply
10237
10238         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10239         at the end of this function, so if we didn't need to read for
10240         authentication, we reinstall it for receiving messages
10241
10242         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10243         a NULL sender for peer-to-peer case
10244
10245         * dbus/dbus-transport-unix.c (check_read_watch): handle
10246         !authenticated case correctly
10247
10248         * glib/dbus-gmain.c: add support for DBusServer
10249
10250         * dbus/dbus-server.c: add data slot support
10251
10252         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10253         return values and handle errors
10254
10255         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10256         DBusConnection
10257
10258         * Doxyfile.in (INPUT): add glib subdir
10259
10260         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10261         setup_with_g_main instead of hookup_with_g_main; write docs
10262
10263 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10264
10265         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10266         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10267         * dbus/dbus-message.c: (dbus_message_append_boolean),
10268         (dbus_message_append_boolean_array),
10269         (dbus_message_get_args_valist), (_dbus_message_test):
10270         * dbus/dbus-message.h:
10271         * doc/dbus-specification.sgml:
10272         Various fixes as pointed out by Havoc.
10273
10274         * test/data/invalid-messages/bad-boolean-array.message:
10275         * test/data/invalid-messages/bad-boolean.message:
10276         Add invalid boolean value test cases.
10277
10278 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10279
10280         * dbus/dbus-internals.c: (_dbus_type_to_string):
10281         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10282         (_dbus_marshal_validate_arg):
10283         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10284         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10285         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10286         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10287         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10288         (dbus_message_iter_get_double),
10289         (dbus_message_iter_get_boolean_array), (message_iter_test):
10290         * dbus/dbus-message.h:
10291         * dbus/dbus-protocol.h:
10292         * doc/dbus-specification.sgml:
10293         * test/data/valid-messages/lots-of-arguments.message:
10294         Add support for boolean and boolean array types.
10295
10296 2003-02-23  Havoc Pennington  <hp@pobox.com>
10297
10298         * dbus/dbus-keyring.c: finish most of this implementation and
10299         simple unit test
10300
10301         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10302         these barf if the error isn't cleared to NULL
10303
10304         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10305         (_dbus_create_directory): new function
10306
10307         * dbus/dbus-errors.c (dbus_set_error): fix warning
10308
10309         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10310         (_dbus_string_hex_decode): new function
10311         (test_hex_roundtrip): test code
10312
10313         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10314
10315         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10316
10317         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10318         the save-to-temp/rename trick to atomically write the new file
10319         (_dbus_string_parse_uint): new function
10320
10321 2003-02-22  Havoc Pennington  <hp@pobox.com>
10322
10323         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10324
10325 2003-02-22  Havoc Pennington  <hp@pobox.com>
10326
10327         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10328         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10329
10330         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10331
10332         * dbus/test/data/sha-1: add US government test suite for SHA-1
10333
10334 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10335
10336         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10337         Make string arrays NULL-terminated.
10338
10339         * dbus/dbus-memory.c: (dbus_free_string_array):
10340         * dbus/dbus-memory.h:
10341         New function for freeing NULL-terminated string arrays.
10342
10343         * dbus/dbus-message-builder.c: (append_quoted_string),
10344         (_dbus_message_data_load):
10345         Add support for array types.
10346
10347         * dbus/dbus-message.c: (check_message_handling):
10348         Add more types as test cases.
10349
10350         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10351         (_dbus_string_parse_double):
10352         Add the start offset to the end offset.
10353
10354         * test/data/valid-messages/lots-of-arguments.message:
10355         New test message with lots of arguments.
10356
10357 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10358
10359         * dbus/dbus-message.c: (dbus_message_append_nil),
10360         (dbus_message_append_int32), (dbus_message_append_uint32),
10361         (dbus_message_append_double), (dbus_message_append_string),
10362         (dbus_message_append_int32_array),
10363         (dbus_message_append_uint32_array),
10364         (dbus_message_append_double_array),
10365         (dbus_message_append_byte_array),
10366         (dbus_message_append_string_array):
10367         Fix all out-of-memory handling in these functions.
10368
10369 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10370
10371         * dbus/dbus-message.c: (dbus_message_append_nil):
10372         Fix a silly.
10373
10374 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10375
10376         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10377         (dbus_message_append_nil), (dbus_message_append_int32_array),
10378         (dbus_message_append_uint32_array),
10379         (dbus_message_append_double_array),
10380         (dbus_message_append_byte_array),
10381         (dbus_message_append_string_array), (dbus_message_get_args_valist),
10382         (dbus_message_iter_get_int32_array),
10383         (dbus_message_iter_get_uint32_array),
10384         (dbus_message_iter_get_double_array),
10385         (dbus_message_iter_get_byte_array),
10386         (dbus_message_iter_get_string_array):
10387
10388         * dbus/dbus-message.h:
10389         Add functions for appending and getting arrays.
10390
10391 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10392
10393         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10394         element size at least 8 bytes, fixes mempool tests on
10395         64-bit machines.
10396
10397 2003-02-20  Alexander Larsson  <alexl@redhat.com>
10398
10399         * dbus/dbus-transport-unix.c (unix_do_iteration):
10400         Unlock the connection mutex during a blocking select call.
10401         Add todo about how we need a way to wake up the select.
10402
10403         * dbus/dbus-connection-internal.h:
10404         * dbus/dbus-connection.c:
10405         Add _dbus_connection_lock and _dbus_connection_unlock.
10406
10407 2003-02-19  Havoc Pennington  <hp@pobox.com>
10408
10409         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10410         Doxyfile.in, not Doxyfile
10411
10412         * dbus/dbus-keyring.c: do some hacking on this
10413
10414         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10415
10416         * dbus/dbus-errors.c (dbus_set_error_const): do not call
10417         dbus_error_init
10418         (dbus_set_error): remove dbus_error_init, check for message ==
10419         NULL *before* we sprintf into it, and add @todo about including
10420         system headers in this file
10421
10422         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10423
10424         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10425
10426         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10427         get various bits of user information based on either username
10428         or user ID
10429         (_dbus_homedir_from_username): new function
10430
10431 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
10432
10433         * configure.in:
10434         Add check for nonposix getpwnam_r
10435
10436         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10437         Align the pool element size to a sizeof (void *) boundary.
10438
10439         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10440         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10441         General Solaris fixes.
10442
10443         * test/data/valid-messages/simplest-manual.message:
10444         Explicitly state that we want little-endian packing.
10445
10446 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
10447
10448         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10449
10450         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10451         Added to create a transport connecting using a tcp/ip socket.
10452
10453         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10454         to a tcp socket at given host and port.
10455         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10456         hostname and port.
10457
10458         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10459
10460         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10461         Added to create a server listening on a TCP/IP socket.
10462
10463 2003-02-19  Havoc Pennington  <hp@pobox.com>
10464
10465         Throughout: mop up all the Doxygen warnings and undocumented
10466         stuff.
10467
10468         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10469         to search any paths.
10470
10471         * dbus/dbus-threads.c: move global mutex initializers to
10472         dbus-internals.h, multiple prototypes was confusing doxygen
10473         besides being kind of ugly
10474
10475         * Doxyfile (PREDEFINED): have Doxygen define
10476         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10477         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10478         (do not abuse the feature! it's for stuff like the autogenerated
10479         macros in dbus-md5.c, not just for things you don't feel like
10480         documenting...)
10481
10482 2003-02-18  Havoc Pennington  <hp@pobox.com>
10483
10484         * dbus/dbus-string.c (_dbus_string_zero): new function
10485
10486         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10487         wrap it in some dbus-friendly API
10488
10489         * dbus/dbus-types.h: add 16-bit types
10490
10491 2003-02-18  Joe Shaw  <joe@assbarn.com>
10492
10493         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10494         credentials from our currently running process.
10495         (get_word): Fix a buglet where we were copying the entire length
10496         instead of relative to our position.
10497
10498         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10499         keys on the stack... it's 640k of data.
10500
10501         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10502         read the credentials byte off the socket, even if we don't have
10503         SO_PEERCRED.
10504         (_dbus_poll): Implement poll() using select() for systems which
10505         don't have it.
10506
10507         * glib/test-dbus-glib.c (main): Print out an error if no
10508         parameters are given.
10509
10510         * test/data/auth/fallback.auth-script: Added.  Tests that a client
10511         can fallback to a secondary auth mechanism if the first fails.
10512
10513 2003-02-18  Havoc Pennington  <hp@pobox.com>
10514
10515         * AUTHORS: add Alex
10516
10517 2003-02-17  Havoc Pennington  <hp@pobox.com>
10518
10519         * doc/dbus-specification.sgml: lots of cosmetic
10520         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10521         env variable to DBUS_BUS_ADDRESS, s/client/application/,
10522         s/server/bus/ (except in authentication section). Add a section
10523         "Message Bus Message Routing"
10524
10525 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
10526
10527         Release 0.4
10528
10529         * NEWS: Update
10530
10531 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10532
10533         * doc/dbus-specification.sgml:
10534         Specification updates.
10535
10536 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10537
10538         * bus/activation.c: (bus_activation_init), (child_setup),
10539         (bus_activation_activate_service):
10540         * bus/activation.h:
10541         * bus/main.c: (main):
10542         Set DBUS_ADDRESS environment variable.
10543
10544         * dbus/dbus-errors.c: (dbus_set_error):
10545         Don't use va_copy since that's a C99 feature.
10546
10547         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10548         (_dbus_spawn_async):
10549         * dbus/dbus-sysdeps.h:
10550         Add child_setup_func to _dbus_spawn_async.
10551
10552         * doc/dbus-specification.sgml:
10553         Update specification.
10554
10555         * test/spawn-test.c: (setup_func), (main):
10556         Fix test.
10557
10558 2003-02-17  Alexander Larsson  <alexl@redhat.com>
10559
10560         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10561         Added todo.
10562
10563 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10564
10565         * doc/.cvsignore:
10566         * doc/Makefile.am:
10567         * doc/dbus-test-plan.sgml:
10568         Add test plan document.
10569
10570         * test/Makefile.am:
10571         Fix distcheck.
10572
10573 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10574
10575         * dbus/dbus-message.c: (decode_header_data),
10576         (_dbus_message_loader_return_buffer):
10577         Set the header padding amount when loading a message.
10578
10579 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10580
10581         * bus/dispatch.c: (send_one_message):
10582         Only send broadcast messages to registered connections.
10583
10584         * dbus/dbus-message.c: (dbus_message_name_is):
10585         * dbus/dbus-message.h:
10586         New convenience function.
10587
10588         * dbus/dbus-transport-debug.c: (do_reading):
10589         Only dispatch one message per run.
10590
10591         * test/Makefile.am:
10592         * test/bus-test.c: (new_connection_callback), (die),
10593         (test_hello_client1_handler), (test_hello_client2_handler),
10594         (test_hello_replies), (main):
10595
10596         * test/bus-test-loop.[ch]:
10597         Add these.
10598
10599 2003-02-16  Havoc Pennington  <hp@pobox.com>
10600
10601         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10602         backward conditional
10603
10604 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10605
10606         * dbus/dbus-connection.c:
10607         Implement sent_message_with_reply. (with_reply_and block is still
10608         busted).
10609         Made dispatch_message not lose message if OOM.
10610
10611         * dbus/dbus-errors.h:
10612         Add NoReply error (for reply timeouts).
10613
10614 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10615
10616         * dbus/dbus-hash.c (_dbus_hash_table_unref):
10617         Actually free keys and values when destroying hashtable.
10618
10619 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10620
10621         * dbus/dbus-auth.c: (client_try_next_mechanism):
10622         Plug a leak.
10623
10624         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
10625         Return TRUE if there's no thread implementation around.
10626
10627         * glib/dbus-gmain.c: (free_source),
10628         (dbus_connection_hookup_with_g_main):
10629         Make sure to remove the GSource when the connection is finalized.
10630
10631 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10632
10633         * bus/dispatch.c: (bus_dispatch_message_handler):
10634         * dbus/dbus-errors.h:
10635         Return an error if someone tries to send a message to a service
10636         that doesn't exist.
10637
10638 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10639
10640         * bus/activation.c: (load_directory), (bus_activation_init),
10641         (bus_activation_activate_service):
10642         * bus/activation.h:
10643         * bus/driver.c:
10644         (bus_driver_handle_activate_service), (bus_driver_handle_message):
10645         More work on the activation handling.
10646
10647         * dbus/dbus-errors.h:
10648         Add some error messages
10649
10650         * dbus/dbus-message.c: (dbus_message_new_error_reply):
10651         * dbus/dbus-message.h:
10652         New function that creates an error message.
10653
10654         * dbus/dbus-protocol.h:
10655         Add ACTIVATE_SERVER message.
10656
10657         * dbus/dbus-server-unix.c: (unix_handle_watch),
10658         (_dbus_server_new_for_domain_socket):
10659         Call _dbus_fd_set_close_on_exec.
10660
10661         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
10662         (_dbus_spawn_async), (_dbus_disable_sigpipe),
10663         (_dbus_fd_set_close_on_exec):
10664         * dbus/dbus-sysdeps.h:
10665         Add _dbus_fd_set_close_on exec function. Also add function that checks
10666         that all open fds are set to close-on-exec and warns otherwise.
10667
10668         * dbus/dbus-transport-unix.c:
10669         (_dbus_transport_new_for_domain_socket):
10670         Call _dbus_fd_set_close_on_exec.
10671
10672 2003-02-16  Havoc Pennington  <hp@pobox.com>
10673
10674         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
10675         allow people to avoid setting SIGPIPE to SIG_IGN
10676         (_dbus_connection_new_for_transport): disable SIGPIPE unless
10677         we've been asked not to
10678
10679 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10680
10681         * dbus/dbus-list.c: (_dbus_list_append_link),
10682         (_dbus_list_prepend_link):
10683         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
10684         (dbus_realloc):
10685         Warning fixes.
10686
10687 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10688
10689         * bus/Makefile.am:
10690         * bus/activation.c: (bus_activation_entry_free),
10691         (add_desktop_file_entry), (load_directory), (bus_activation_init):
10692         * bus/activation.h:
10693         * bus/main.c: (main):
10694         Add simple activation support, doesn't work yet though.
10695
10696 2003-02-15   Zack Rusin  <zack@kde.org>
10697
10698         * qt/dbus-qthread.cpp:  small casting fix
10699
10700 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10701
10702         * dbus/dbus-errors.c: (dbus_set_error):
10703         * dbus/dbus-errors.h:
10704         Add a few errors and make dbus_set_error void.
10705
10706         * dbus/dbus-sysdeps.c:
10707         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
10708         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
10709         * dbus/dbus-sysdeps.h:
10710         Add _dbus_spawn_async.
10711
10712         * test/spawn-test.c: (main):
10713         Test for _dbus_spawn_async.
10714
10715 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10716
10717         * dbus/dbus-internals.h:
10718         Fix build without tests.
10719
10720         * dbus/dbus-list.c: (alloc_link):
10721         Fix a segfault when a malloc fails.
10722
10723         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
10724         (dbus_malloc0), (dbus_realloc):
10725         Add support for malloc debugging.
10726
10727 2003-02-15  Alexander Larsson  <alexl@redhat.com>
10728
10729         * dbus/dbus-threads.c:
10730         * dbus/dbus-threads.h:
10731         Add condvars. Remove static mutext from API.
10732         Implement static mutexes by initializing them from threads_init.
10733
10734         * glib/dbus-gthread.c:
10735         * qt/dbus-qthread.cpp:
10736         Update with the thread api changes.
10737
10738
10739         * dbus/dbus-list.c:
10740         * dbus/dbus-list.h:
10741         Turn StaticMutex into normal mutex + init function.
10742         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
10743         _dbus_list_append_link, _dbus_list_prepend_link
10744
10745
10746         * dbus/dbus-sysdeps.c:
10747         * dbus/dbus-sysdeps.h:
10748         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
10749         _dbus_atomic_dec. Only slow fallback implementation at the moment.
10750
10751         * dbus/dbus-protocol.h:
10752         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
10753
10754         * dbus/dbus-message.c:
10755         Make ref/unref atomic.
10756         Fix some docs.
10757
10758         * dbus/dbus-connection-internal.h:
10759         * dbus/dbus-connection.c:
10760         * dbus/dbus-connection.h:
10761         Make threadsafe.
10762         Change _peek to _borrow,_return & _steal_borrowed.
10763         Change disconnect callback to event.
10764         Make dbus_connection_dispatch_messages reentrant.
10765
10766         * dbus/dbus-transport.c:
10767         Don't ref the connection on calls to the transport
10768         implementation.
10769
10770         * dbus/dbus-message-handler.c:
10771         Make threadsafe.
10772
10773         * glib/dbus-gmain.c:
10774         Don't use peek_message anymore
10775
10776         * test/Makefile.am:
10777         * test/debug-thread.c:
10778         * test/debug-thread.h:
10779         Simple thread implementation that asserts() on deadlocks in
10780         single-threaded code.
10781
10782         * test/bus-test.c:
10783         (main) Call debug_threads_init.
10784
10785         * test/watch.c:
10786         Use disconnect message instead of disconnect callback.
10787
10788         * bus/connection.c:
10789         * bus/connection.h:
10790         Don't call dbus_connection_set_disconnect_function. Instead export
10791         bus_connection_disconnect.
10792
10793         * bus/dispatch.c:
10794         Call bus_connection_disconnect when we get a disconnected message.
10795
10796 2003-02-15  Havoc Pennington  <hp@pobox.com>
10797
10798         * dbus/dbus-message.c (dbus_message_new): fool around with the
10799         docs
10800
10801 2003-02-14  Havoc Pennington  <hp@pobox.com>
10802
10803         * dbus/dbus-mempool.c: fail if the debug functions so indicate
10804
10805         * dbus/dbus-memory.c: fail if the debug functions indicate we
10806         should
10807
10808         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
10809         (_dbus_decrement_fail_alloc_counter): debug functions to
10810         simulate memory allocation failures
10811
10812 2003-02-14  Havoc Pennington  <hp@pobox.com>
10813
10814         * dbus/dbus-errors.h (struct DBusError): add a word of padding
10815         to DBusError
10816
10817 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10818
10819         * bus/driver.c: (bus_driver_handle_hello):
10820         * bus/driver.h:
10821         * bus/services.c: (bus_service_lookup):
10822         Reorder message sending so we get a more sane order.
10823
10824         * test/bus-test.c: (message_handler):
10825         Fix tyop.
10826
10827 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10828
10829         * bus/driver.c: (bus_driver_send_service_deleted),
10830         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10831         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10832         (bus_driver_send_welcome_message),
10833         (bus_driver_handle_list_services),
10834         (bus_driver_handle_acquire_service),
10835         (bus_driver_handle_service_exists):
10836         * dbus/dbus-bus.c: (dbus_bus_register_client),
10837         (dbus_bus_acquire_service), (dbus_bus_service_exists):
10838         * dbus/dbus-errors.c: (dbus_result_to_string):
10839         * dbus/dbus-errors.h:
10840         * dbus/dbus-message.c: (dbus_message_append_args),
10841         (dbus_message_append_args_valist), (dbus_message_get_args),
10842         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
10843         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
10844         (dbus_message_iter_get_byte_array),
10845         (dbus_message_iter_get_string_array), (message_iter_test),
10846         (check_message_handling), (_dbus_message_test):
10847         * dbus/dbus-message.h:
10848         * test/bus-test.c: (main):
10849         Change fields to arguments in messages, so that they won't be
10850         confused with header fields.
10851
10852         * glib/test-dbus-glib.c: (main):
10853         Remove append_fields from hello message.
10854
10855 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10856
10857         * dbus/dbus-errors.c:
10858         * dbus/dbus-message.c:
10859         * dbus/dbus-string.c:
10860         Documentation fixes.
10861
10862 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10863
10864         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
10865         (remove_timeout):
10866         Implement support for timeouts in dbus-glib.
10867
10868 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10869
10870         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10871         * dbus/dbus-message.c: (process_test_subdir):
10872         * test/break-loader.c: (find_breaks_based_on):
10873         Plug some memory leaks.
10874
10875 2003-02-13  Richard Hult  <rhult@codefactory.se>
10876
10877         * bus/main.c: Fix build.
10878
10879         * dbus/dbus-errors.h:
10880         * dbus/dbus-errors.c: Fix copyright for Anders.
10881
10882 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10883
10884         * bus/Makefile.am:
10885         Add utils.[ch]
10886
10887         * bus/connection.c: (bus_connection_foreach):
10888         Fix a warning.
10889
10890         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
10891         (unescape_string), (new_section), (parse_section_start),
10892         (parse_key_value), (report_error), (bus_desktop_file_load),
10893         (bus_desktop_file_get_string):
10894         * bus/desktop-file.h:
10895         Use DBusError for error reporting.
10896
10897         * bus/dispatch.c: (send_one_message),
10898         (bus_dispatch_message_handler):
10899         * bus/driver.c: (bus_driver_send_service_deleted),
10900         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10901         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10902         (bus_driver_send_welcome_message),
10903         (bus_driver_handle_list_services),
10904         (bus_driver_handle_acquire_service),
10905         (bus_driver_handle_service_exists):
10906         * bus/loop.c: (bus_loop_run):
10907         * bus/main.c:
10908         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
10909
10910         * bus/utils.c: (bus_wait_for_memory):
10911         * bus/utils.h:
10912         New files with general utility functions.
10913
10914         * dbus/dbus-internals.h:
10915         Remove _DBUS_HANDLE_OOM.
10916
10917 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10918
10919         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
10920         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
10921         * dbus/dbus-errors.h:
10922         Add DBusError structure.
10923
10924 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10925
10926         * test/data/valid-messages/standard-acquire-service.message:
10927         * test/data/valid-messages/standard-hello.message:
10928         * test/data/valid-messages/standard-list-services.message:
10929         * test/data/valid-messages/standard-service-exists.message:
10930         Add some standard messages.
10931
10932 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10933
10934         * bus/driver.c: (bus_driver_send_welcome_message),
10935         (bus_driver_handle_list_services),
10936         (bus_driver_handle_acquire_service),
10937         (bus_driver_handle_service_exists), (bus_driver_handle_message):
10938         Update for API changes in libdbus.
10939
10940         * dbus/dbus-message.c: (dbus_message_new_reply):
10941         * dbus/dbus-message.h:
10942         Remove the name argument. The spec states that replies shouldn't
10943         have a name.
10944
10945 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10946
10947         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
10948         (report_error), (bus_desktop_file_load), (lookup_section),
10949         (lookup_line), (bus_desktop_file_get_raw),
10950         (bus_desktop_file_get_string):
10951         * bus/desktop-file.h:
10952         Some fixes, and new functions for getting a key value from a section.
10953
10954 2003-02-13  Havoc Pennington  <hp@pobox.com>
10955
10956         * test/data/auth/fail-after-n-attempts.auth-script: new test
10957
10958         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
10959         reject the client.
10960
10961 2003-02-13  Havoc Pennington  <hp@pobox.com>
10962
10963         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
10964         dbus_credentials_match were backward
10965
10966         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
10967         NO_CREDENTIALS and ROOT_CREDENTIALS
10968
10969         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
10970         into here. Never process more commands after we've reached an
10971         end state; store further data as unused bytes.
10972
10973         * test/data/auth/*: add more auth tests
10974
10975         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
10976         command to match exact string and EXPECT_UNUSED to match unused
10977         bytes
10978
10979         * test/Makefile.am (dist-hook): fix to dist all the test stuff
10980
10981 2003-02-12  Havoc Pennington  <hp@pobox.com>
10982
10983         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
10984         \r off of popped lines
10985
10986         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
10987         scripts
10988
10989         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
10990         SEND, append \r\n
10991
10992 2003-02-12  Havoc Pennington  <hp@pobox.com>
10993
10994         * dbus/Makefile.am: remove break-loader from the build, since it
10995         moved.
10996
10997         * configure.in: add --enable-gcov to turn on coverage profiling
10998         flags and disable optimization
10999
11000 2003-02-10  Havoc Pennington  <hp@pobox.com>
11001
11002         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11003         initial cut at test framework for DBusAuth from laptop.
11004         Doesn't quite work yet but it compiles and I need to get
11005         it off the 266mhz laptop. ;-)
11006
11007         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11008         fix a memleak in error case
11009
11010 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11011
11012         * bus/Makefile.am:
11013         * bus/desktop-file.c:
11014         * bus/desktop-file.h:
11015         Add a desktop file parser.
11016
11017 2003-02-11  Zack Rusin  <zack@kde.org>
11018
11019         * qt/message.[h|cpp]: sample implementation
11020         of the KDE wrapper for DBusMessage
11021
11022 2003-02-09  Zack Rusin  <zack@kde.org>
11023
11024         * test/bus-test.c: make_it_compile
11025         * doc/dbus-specification.sgml: minimal semantic fix
11026
11027 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11028
11029         Release 0.3
11030
11031         * NEWS: Update
11032
11033 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11034
11035         * dbus/Makefile.am:
11036         * dbus/dbus-break-loader.c:
11037         * test/Makefile.am:
11038         * test/break-loader.c:
11039         Move dbus-break-loader to test/ and rename it to break-loader.
11040
11041 2003-02-02  Havoc Pennington  <hp@pobox.com>
11042
11043         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11044         for code to manage cookies in your home directory
11045
11046         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11047
11048         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11049         to authenticate, then disconnect the client.
11050
11051 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11052
11053         * dbus/dbus-message.c (dbus_message_append_fields):
11054         Correct docs.
11055
11056 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11057
11058         * doc/dbus-specification.sgml:
11059         Update address format section.
11060
11061 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11062
11063         * test/Makefile.am:
11064         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11065         (message_handler), (new_connection_callback), (loop_quit),
11066         (loop_run), (main):
11067         Add bus test.
11068
11069 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11070
11071         * bus/driver.c: (bus_driver_handle_service_exists):
11072         Simplify the code a bit.
11073
11074         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11075         Fix a silly.
11076
11077 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11078
11079         * bus/Makefile.am:
11080         Add libdbus-daemon.la and link to it.
11081
11082 2003-02-01  James Willcox  <jwillcox@gnome.org>
11083
11084         * bus/driver.c: (bus_driver_handle_own_service):
11085         Actually include the service reply code in the message.
11086
11087 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11088
11089         * bus/driver.c: (bus_driver_handle_service_exists):
11090         Don't unref the incoming message.
11091
11092 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11093
11094         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11095
11096 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11097
11098         * dbus/dbus-server.c: (dbus_server_listen):
11099         * dbus/dbus-transport.c: (_dbus_transport_open):
11100         ifdef out the calls to the debug transport and server.
11101
11102 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11103
11104         * dbus/dbus-watch.c (dbus_watch_get_flags):
11105         Add note in the docs that ERROR or HANGUP won't be returned
11106         and are assumed always on.
11107
11108         * glib/dbus-gmain.c (add_watch):
11109         Always add IO_ERR | IO_HUP
11110
11111         * dbus/dbus-message.h:
11112         Add semicolon after dbus_message_iter_get_string_array().
11113         Makes qt code build again
11114
11115 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11116
11117         * bus/driver.c: (create_unique_client_name),
11118         (bus_driver_handle_hello):
11119         Don't take a name, just use a numeric id to identify
11120         each client.
11121
11122         * dbus/Makefile.am:
11123         * dbus/dbus-bus.c: (dbus_bus_register_client),
11124         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11125         * dbus/dbus-bus.h:
11126         Add new convenience functions for communicating with the bus.
11127
11128         * dbus/dbus-message.h:
11129
11130         * dbus/dbus-protocol.h:
11131         Fix a typo.
11132
11133 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11134
11135         * dbus/dbus-message.c (dbus_message_append_fields):
11136         Add some more doc comments.
11137
11138 2003-02-01  Havoc Pennington  <hp@pobox.com>
11139
11140         * dbus/dbus-break-loader.c (randomly_modify_length): change
11141         a 4-byte value in the message as if it were a length
11142
11143         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11144         execute bit on saved files
11145
11146 2003-02-01  Havoc Pennington  <hp@pobox.com>
11147
11148         * dbus/dbus-break-loader.c (main): new program to find messages
11149         that break the loader.
11150
11151         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11152         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11153
11154         * dbus/dbus-string.c (_dbus_string_set_byte): new
11155
11156 2003-01-31  Havoc Pennington  <hp@pobox.com>
11157
11158         * dbus/dbus-message.c: refactor the test code to be more general,
11159         in preparation for writing a "randomly permute test cases to
11160         try to break the loader" program.
11161
11162 2003-01-31  Havoc Pennington  <hp@pobox.com>
11163
11164         * doc/dbus-specification.sgml: work on the specification
11165
11166         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11167         the protocol version of the message.
11168
11169         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11170         no longer specifies that.
11171         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11172         1/2/3/4)
11173
11174         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11175         "break" for DBUS_TYPE_NIL, remove @todo
11176
11177 2003-01-31  Havoc Pennington  <hp@pobox.com>
11178
11179         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11180         just set_is_error/get_is_error as this is a commonly-used
11181         function, and write docs.
11182
11183 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11184
11185         * dbus/dbus-address.c: (dbus_address_entry_free):
11186         Free key and value lists.
11187
11188         * dbus/dbus-internals.c: (_dbus_type_to_string):
11189         Add the types we didn't have.
11190
11191         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11192         (_dbus_marshal_validate_arg):
11193         Add NIL types.
11194
11195         * dbus/dbus-message.c: (dbus_message_set_sender):
11196         Remove todo about being able to set sender to NULL.
11197
11198         (dbus_message_set_is_error_reply),
11199         (dbus_message_get_is_error_reply):
11200         * dbus/dbus-message.h:
11201         New functions.
11202
11203         * dbus/dbus-protocol.h:
11204         Add error reply flag.
11205
11206         * test/data/valid-messages/opposite-endian.message:
11207         Add NIL type to test.
11208
11209 2003-01-31  Havoc Pennington  <hp@pobox.com>
11210
11211         * doc/dbus-specification.sgml: fully specify the header.  Add
11212         flags and major protocol version, and change header/body len to
11213         unsigned.
11214
11215         * dbus/dbus-message-builder.c (append_saved_length): append length
11216         as uint32
11217
11218         * dbus/dbus-message.c (dbus_message_create_header): change header
11219         length and body length to unsigned. Add the new fields from the
11220         spec
11221         (_dbus_message_loader_return_buffer): unsigned header/body len
11222
11223 2003-01-30  Havoc Pennington  <hp@pobox.com>
11224
11225         * dbus/dbus-auth.c: rework to use only REJECTED, no
11226         MECHANISMS
11227
11228         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11229         use REJECTED, suggested by Mark McLoughlin
11230
11231 2003-01-30  Havoc Pennington  <hp@pobox.com>
11232
11233         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11234         a better way to report errors here. e.g.  "unix address lacks
11235         path" or something. also "no such file" when the path doesn't
11236         exist, etc.
11237
11238         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11239         leaking list nodes
11240         (dbus_parse_address): add @todo about documenting address format,
11241         and allowing , and ; to be escaped
11242
11243 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11244
11245         * dbus/Makefile.am:
11246         Add dbus-address.[ch]
11247
11248         * dbus/dbus-address.c: (dbus_address_entry_free),
11249         (dbus_address_entries_free), (create_entry),
11250         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11251         (dbus_parse_address), (_dbus_address_test):
11252         * dbus/dbus-address.h:
11253         New files for dealing with address parsing.
11254
11255         * dbus/dbus-connection.c:
11256         Document timeout functions.
11257
11258         * dbus/dbus-message.c:
11259         Document dbus_message_new_from_message.
11260
11261         * dbus/dbus-server-debug.c:
11262         Document.
11263
11264         * dbus/dbus-server.c: (dbus_server_listen):
11265         Parse address and use correct server implementation.
11266
11267         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11268         * dbus/dbus-string.h:
11269         New function with test.
11270
11271         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11272         * dbus/dbus-test.h:
11273         Add address tests.
11274
11275         * dbus/dbus-transport-debug.c:
11276         Document.
11277
11278         * dbus/dbus-transport.c: (_dbus_transport_open):
11279         Parse address and use correct transport implementation.
11280
11281 2003-01-30  Havoc Pennington  <hp@pobox.com>
11282
11283         * dbus/dbus-message.c: use message->byte_order instead of
11284         DBUS_COMPILER_BYTE_ORDER throughout.
11285         (dbus_message_create_header): pad header to align the
11286         start of the body of the message to 8-byte boundary
11287
11288         * dbus/dbus-marshal.h: make all the demarshalers take const
11289         DBusString arguments.
11290
11291         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11292         validate message args here, so we don't have to do slow validation
11293         later, and so we catch bad messages as they are incoming. Also add
11294         better checks on header_len and body_len. Also fill in
11295         message->byte_order
11296
11297         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11298         implemented properly)
11299         (_dbus_string_validate_nul): new function to check all-nul
11300
11301         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11302         get_arg_end_pos and remove all validation
11303         (_dbus_marshal_validate_arg): actually do validation here.
11304
11305 2003-01-29  Havoc Pennington  <hp@pobox.com>
11306
11307         * dbus/dbus-message.c (check_message_handling): fix assertion
11308         failure on set_client_serial
11309
11310 2003-01-28  Havoc Pennington  <hp@pobox.com>
11311
11312         * dbus/dbus-server-debug.c: Add doc section comments
11313
11314         * dbus/dbus-transport-debug.c: add doc section comments
11315
11316 2003-01-28  Havoc Pennington  <hp@redhat.com>
11317
11318         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11319         the reverse order from how I had it
11320         (_dbus_string_base64_encode): reverse encoding order. I was
11321         basically byteswapping everything during encoding.
11322
11323 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11324
11325         * dbus/dbus-connection-internal.h:
11326         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11327         (_dbus_connection_remove_timeout):
11328         Add functions for adding and removing timeouts.
11329
11330         * dbus/dbus-message.c: (dbus_message_new_from_message):
11331         Add new function that takes a message and creates an exact
11332         copy of it, but with the refcount set to 1.
11333         (check_message_handling):
11334         Fix build error.
11335
11336         * dbus/dbus-server-protected.h:
11337         * dbus/dbus-server.c: (_dbus_server_init_base),
11338         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11339         (dbus_server_set_timeout_functions):
11340         (_dbus_server_remove_timeout):
11341         New functions so that a server can add and remove timeouts.
11342
11343         (dbus_server_listen):
11344         Add commented out call to dbus_server_debug_new.
11345
11346         * dbus/dbus-timeout.c: (_dbus_timeout_new):
11347         Actually set the handler, doh.
11348
11349         * dbus/dbus-transport.c: (_dbus_transport_open):
11350         Add commented out call to dbus_transport_debug_client_new.
11351
11352         * dbus/Makefile.am:
11353         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11354
11355 2003-01-28  Havoc Pennington  <hp@pobox.com>
11356
11357         * dbus/dbus-message.c (check_message_handling): function to check
11358         on the loaded message, iterates over it etc.
11359
11360 2003-01-28  Havoc Pennington  <hp@pobox.com>
11361
11362         * test/Makefile.am (dist-hook): fix make distdir
11363
11364         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11365
11366 2003-01-27  Havoc Pennington  <hp@pobox.com>
11367
11368         * dbus/dbus-mempool.c (time_for_size): replace printf with
11369         _dbus_verbose
11370
11371         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11372         empty lines; fix the SAVE_LENGTH stuff to be
11373         START_LENGTH/END_LENGTH so it actually works; couple other
11374         bugfixes
11375
11376         * test/Makefile.am (dist-hook): add dist-hook for .message files
11377
11378         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11379         can be constant or locked.
11380         (_dbus_string_free): allow freeing a const string as
11381         documented/intended
11382
11383         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11384
11385         * dbus/dbus-test-main.c (main): take an argument which is the
11386         directory containing test data
11387
11388         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11389         argument to this and load all the messages in test/data/
11390         checking that they can be loaded or not loaded as appropriate.
11391
11392 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
11393
11394         * bus/dispatch.c: (bus_dispatch_message_handler):
11395         Dispatch messages sent to services.
11396
11397         * bus/driver.c: (bus_driver_send_service_deleted),
11398         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11399         (bus_driver_send_service_acquired):
11400         Add helper functions for sending service related messages.
11401
11402         (bus_driver_send_welcome_message):
11403         Send HELLO_REPLY instead of WELCOME.
11404
11405         (bus_driver_handle_list_services):
11406         Send LIST_SERVICES_REPLY instead of SERVICES.
11407
11408         (bus_driver_handle_own_service),
11409         (bus_driver_handle_service_exists):
11410         New message handlers.
11411
11412         (bus_driver_handle_message):
11413         Invoke new message handlers.
11414
11415         (bus_driver_remove_connection):
11416         Don't remove any services here since that's done automatically
11417         by bus_service_remove_owner now.
11418
11419         * bus/driver.h:
11420         New function signatures.
11421
11422         * bus/services.c: (bus_service_add_owner):
11423         Send ServiceAcquired message if we're the only primary owner.
11424
11425         (bus_service_remove_owner):
11426         Send ServiceAcquired/ServiceLost messages.
11427
11428         (bus_service_set_prohibit_replacement),
11429         (bus_service_get_prohibit_replacement):
11430         Functions for setting prohibit replacement.
11431
11432         (bus_service_has_owner):
11433         New function that checks if a connection is in the owner queue of
11434         a certain service.
11435
11436         * bus/services.h:
11437         Add new function signatures.
11438
11439         * dbus/dbus-list.c: (_dbus_list_test):
11440         Add tests for _dbus_list_remove_last and traversing the list backwards.
11441
11442         * dbus/dbus-list.h:
11443         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11444         go any further, so return NULL then.
11445
11446         * dbus/dbus-protocol.h:
11447         Add new messages, service flags and service replies.
11448
11449 2003-01-26  Havoc Pennington  <hp@pobox.com>
11450
11451         * dbus/dbus-message-builder.c: implement, completely untested.
11452
11453         * test/data/*: add data to be used in testing.
11454         ".message" files are our simple loadable text format.
11455         ".message-raw" will be binary dumps of messages.
11456
11457         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11458
11459 2003-01-26  Havoc Pennington  <hp@pobox.com>
11460
11461         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11462
11463         * dbus/dbus-errors.c (dbus_result_to_string): add
11464         file errors
11465
11466         * dbus/dbus-message-builder.c: new file, will contain code to load
11467         up messages from files. Not implemented yet.
11468
11469 2003-01-26  Havoc Pennington  <hp@pobox.com>
11470
11471         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11472         the sender by setting to NULL
11473
11474 2003-01-26  Havoc Pennington  <hp@pobox.com>
11475
11476         The unit tests pass, but otherwise untested.  If it breaks, the
11477         tests should have been better. ;-)
11478
11479         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11480         the connection.
11481
11482         * dbus/dbus-message.c: redo everything so we maintain
11483         message->header as the only copy of the various fields.
11484         This avoids the possibility of out-of-memory in some cases,
11485         for example dbus_message_lock() can't run out of memory anymore,
11486         and avoids extra copying. Figured I may as well go ahead and do
11487         this since it was busted for dbus_message_lock to not return
11488         failure on OOM, and dbus_message_write_header was totally
11489         unchecked for OOM. Also fixed some random other bugs.
11490
11491         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11492         that strings are nul-terminated. Also, end_pos can be equal
11493         to string length just not greater than, I think.
11494         (_dbus_marshal_set_int32): new function
11495         (_dbus_marshal_set_uint32): new function
11496         (_dbus_marshal_set_string): new function
11497
11498         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11499         a warning, init timeout_list to NULL
11500         (dbus_connection_send_message): don't use uninitialized variable
11501         "serial"
11502
11503         * dbus/dbus-string.c (_dbus_string_replace_len): new function
11504
11505 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11506
11507         * bus/driver.c: (bus_driver_handle_hello),
11508         (bus_driver_send_welcome_message):
11509         Plug leaks
11510
11511 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11512
11513         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11514         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11515         (dbus_connection_unref):
11516         * dbus/dbus-marshal.c: (_dbus_marshal_test):
11517         * dbus/dbus-message.c: (dbus_message_unref),
11518         Plug memory leaks.
11519
11520         (dbus_message_get_fields):
11521         Remove debugging printout.
11522
11523         (_dbus_message_loader_return_buffer):
11524         Don't store the header string.
11525
11526         (_dbus_message_test):
11527         Plug leaks.
11528
11529 2003-01-26  Richard Hult  <rhult@codefactory.se>
11530
11531         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11532         the file descriptor list, since it can change under us.
11533
11534 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11535
11536         * glib/dbus-gmain.c: (dbus_connection_prepare),
11537         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11538         (remove_watch), (dbus_connection_hookup_with_g_main):
11539         Rewrite the glib handling to use its own GSource instead of a
11540         GIOChannel so we can catch messages put in the queue while waiting
11541         for a reply.
11542
11543 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11544
11545         * bus/Makefile.am:
11546         * bus/connection.c: (connection_disconnect_handler),
11547         (connection_watch_callback), (bus_connection_setup):
11548         * bus/dispatch.c: (send_one_message),
11549         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11550         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11551         * bus/dispatch.h:
11552         * bus/driver.c: (bus_driver_send_service_deleted),
11553         (bus_driver_send_service_created), (bus_driver_handle_hello),
11554         (bus_driver_send_welcome_message),
11555         (bus_driver_handle_list_services), (bus_driver_remove_connection),
11556         (bus_driver_handle_message):
11557         * bus/driver.h:
11558         Refactor code, put the message dispatching in its own file. Use
11559         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11560         is disconnected.
11561
11562 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11563
11564         * dbus/dbus-internals.h:
11565         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11566
11567         * dbus/dbus-message.c: (dbus_message_get_sender):
11568         * dbus/dbus-message.h:
11569         Implement dbus_message_get_sender.
11570
11571         * dbus/dbus-protocol.h:
11572         Add message and service defines.
11573
11574 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11575
11576         * dbus/dbus-connection.c: (dbus_connection_send_message):
11577         * dbus/dbus-message-internal.h:
11578         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11579         (dbus_message_write_header):
11580         Remove _dbus_messag_unlock and don't set the client serial on a
11581         message if one already exists.
11582
11583 2003-01-24  Havoc Pennington  <hp@pobox.com>
11584
11585         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
11586         list_pool
11587
11588         * bus/driver.c (bus_driver_handle_list_services): fix a leak
11589         on OOM
11590
11591 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11592
11593         * dbus/dbus-list.c: (alloc_link), (free_link):
11594         Use a memory pool for the links.
11595
11596 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11597
11598         * bus/connection.c: (bus_connection_foreach):
11599         * bus/connection.h:
11600         Add new bus_connection_foreach function.
11601
11602         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
11603         Add function that broadcasts a message to all clients.
11604
11605         (bus_driver_send_service_created), (bus_driver_handle_hello),
11606         (bus_driver_send_welcome_message),
11607         (bus_driver_handle_list_services), (bus_driver_message_handler):
11608         Implement functions that take care of listing services, and notifying
11609         clients when new services are created.
11610
11611         * bus/services.c: (bus_services_list):
11612         * bus/services.h:
11613         Add new function that returns an array of strings with the currently
11614         registered services.
11615
11616         * glib/dbus-glib.h:
11617         * glib/dbus-gmain.c:
11618         Update copyright year.
11619
11620 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11621
11622         * dbus/dbus-connection.c: (dbus_connection_send_message):
11623         Unlock the message in case it was sent earlier.
11624
11625         (dbus_connection_send_message_with_reply_and_block):
11626         Remove the reply message from the list.
11627
11628         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11629         Set array_len and new_pos correctly.
11630
11631         (_dbus_marshal_test):
11632         Remove debug output.
11633
11634         * dbus/dbus-message-internal.h:
11635         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
11636         New function that returns the reply serial.
11637
11638         (_dbus_message_unlock):
11639         New function that unlocks a message and resets its header.
11640
11641         (dbus_message_append_string_array),
11642         (dbus_message_get_fields_valist),
11643         (dbus_message_iter_get_field_type),
11644         (dbus_message_iter_get_string_array),
11645         (dbus_message_get_fields),
11646         (dbus_message_append_fields_valist):
11647         Handle string arrays.
11648
11649         (dbus_message_set_sender):
11650         Make this function public since the bus daemon needs it.
11651
11652         (decode_header_data):
11653         Set the reply serial to -1 initially.
11654
11655         * dbus/dbus-message.h:
11656         Add dbus_message_set_sender.
11657
11658 2003-01-24  Havoc Pennington  <hp@pobox.com>
11659
11660         * doc/dbus-specification.sgml: add some stuff
11661
11662 2003-01-22  Havoc Pennington  <hp@pobox.com>
11663
11664         * doc/dbus-specification.sgml: Start to document the protocol.
11665
11666 2003-01-22  Havoc Pennington  <hp@pobox.com>
11667
11668         * dbus/dbus-connection.c
11669         (dbus_connection_send_message_with_reply_and_block): add some @todo
11670
11671         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
11672
11673 2003-01-21  Havoc Pennington  <hp@pobox.com>
11674
11675         (patch untested because can't compile)
11676
11677         * bus/driver.c (create_unique_client_name): make this function
11678         never recycle client names. Also, caller should initialize
11679         the DBusString.
11680
11681         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
11682
11683 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
11684
11685         * dbus/dbus-marshal.c: (_dbus_marshal_double),
11686         (_dbus_marshal_int32), (_dbus_marshal_uint32),
11687         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
11688         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
11689         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11690         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11691         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
11692         * dbus/dbus-marshal.h:
11693         * dbus/dbus-protocol.h:
11694         Add support for marshalling and demarshalling integer, double
11695         and string arrays.
11696
11697 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
11698
11699         * bus/Makefile.am:
11700         Add driver.[ch]
11701
11702         * bus/connection.c: (connection_disconnect_handler):
11703         Remove the connection from the bus driver's list.
11704
11705         (connection_watch_callback): Dispatch messages.
11706
11707         (free_connection_data): Free connection name.
11708
11709         (bus_connection_setup): Add connection to the bus driver's list.
11710         (bus_connection_remove_owned_service):
11711         (bus_connection_set_name), (bus_connection_get_name):
11712         Add functions for setting and getting the connection's name.
11713
11714         * bus/connection.h:
11715         Add function headers.
11716
11717         * bus/driver.c: (create_unique_client_name),
11718         (bus_driver_handle_hello_message),
11719         (bus_driver_send_welcome_message), (bus_driver_message_handler),
11720         (bus_driver_add_connection), (bus_driver_remove_connection):
11721         * bus/driver.h:
11722         * bus/main.c:
11723         * bus/services.c: (bus_service_free):
11724         * bus/services.h:
11725         New file that handles communication and registreation with the bus
11726         itself.
11727
11728 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
11729
11730         * dbus/dbus-connection.c: (dbus_connection_send_message):
11731         Add a new client_serial parameter.
11732
11733         (dbus_connection_send_message_with_reply):
11734         Remove a @todo since we've implemented the blocking function.
11735
11736         (dbus_connection_send_message_with_reply_and_block):
11737         New function that sends a message and waits for a reply and
11738         then returns the reply.
11739
11740         * dbus/dbus-connection.h:
11741         Add new functions.
11742
11743         * dbus/dbus-errors.c: (dbus_result_to_string):
11744         * dbus/dbus-errors.h:
11745         Add new DBUS_RESULT.
11746
11747         * dbus/dbus-message-internal.h:
11748         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
11749         (_dbus_message_set_sender), (dbus_message_write_header),
11750         (dbus_message_new_reply), (decode_header_data),
11751         (_dbus_message_loader_return_buffer), (_dbus_message_test):
11752         * dbus/dbus-message.h:
11753         Add new functions that set the reply serial and sender.
11754         Also marshal and demarshal them correctly and add test.
11755
11756         * dbus/dbus-protocol.h:
11757         Add new DBUS_MESSAGE_TYPE_SENDER.
11758
11759         * glib/dbus-glib.h:
11760         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
11761         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
11762         (dbus_connection_hookup_with_g_main):
11763         * glib/test-dbus-glib.c: (main):
11764         Rewrite to use GIOChannel and remove the GSource crack.
11765
11766         * test/echo-client.c: (main):
11767         * test/watch.c: (check_messages):
11768         Update for changed APIs
11769
11770 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
11771
11772         * dbus/Makefile.am: Add dbus-timeout.[cħ]
11773
11774         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
11775         Create a DBusTimeoutList.
11776         (dbus_connection_set_timeout_functions): Add new function to
11777         set timeout callbacks
11778
11779         * dbus/dbus-connection.h: Add public DBusTimeout API.
11780
11781         * dbus/dbus-message.c: (dbus_message_get_service):
11782         * dbus/dbus-message.h:  New function.
11783
11784         * dbus/dbus-server.c: Fix small doc typo.
11785
11786         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
11787
11788 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
11789
11790         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
11791         of the string, just as long as specified.
11792
11793 2003-01-19  Havoc Pennington  <hp@pobox.com>
11794
11795         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
11796         new function
11797
11798         * dbus/dbus-server.c (dbus_server_set_max_connections)
11799         (dbus_server_get_max_connections, dbus_server_get_n_connections):
11800         keep track of current number of connections, and add API for
11801         setting a max (but haven't implemented enforcing the max yet)
11802
11803 2003-01-18  Havoc Pennington  <hp@pobox.com>
11804
11805         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
11806         reading/writing if read_watch != NULL or write_watch != NULL.
11807
11808         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
11809         the message loader code to actually load message->header and
11810         message->body into the newly-created message.
11811
11812         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
11813         in OOM case
11814
11815         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
11816         (dbus_connection_get_max_message_size)
11817         (dbus_connection_set_max_live_messages_size)
11818         (dbus_connection_get_max_live_messages_size): implement some
11819         resource limitation functions
11820
11821         * dbus/dbus-resources.c: new file implementing some of the
11822         resource limits stuff
11823
11824         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
11825         missing docs, add @todo to handle OOM etc.
11826
11827         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
11828         docs
11829
11830 2003-01-18  Havoc Pennington  <hp@pobox.com>
11831
11832         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
11833         connection if it hasn't been already.
11834
11835         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
11836         replace with DisconnectFunction.
11837
11838 2003-01-18  Havoc Pennington  <hp@pobox.com>
11839
11840         Building --disable-verbose-mode --disable-asserts --disable-tests
11841         cuts the library from 112K to 45K or so
11842
11843         * configure.in: check for varargs macro support,
11844         add --enable-verbose-mode, --enable-asserts.
11845
11846         * dbus/dbus-internals.h (_dbus_assert): support
11847         DBUS_DISABLE_ASSERT
11848         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
11849
11850 2003-01-18  Havoc Pennington  <hp@pobox.com>
11851
11852         * dbus/dbus-test.c: include config.h so that tests actually run
11853
11854         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
11855         so the failure mode when that assumption fails will be plenty
11856         obvious.
11857
11858 2003-01-18  Havoc Pennington  <hp@pobox.com>
11859
11860         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
11861
11862         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
11863         the distribution
11864
11865         * test/Makefile.am: don't use special variable "TESTS" for echo-*
11866         since we don't want to use those in make check
11867
11868 2003-01-15  Havoc Pennington  <hp@redhat.com>
11869
11870         Release 0.2
11871
11872         * NEWS: update
11873
11874 2003-01-15  Havoc Pennington  <hp@redhat.com>
11875
11876         * test/Makefile.am: fix so that test source code ends up in the
11877         distribution on make distcheck
11878
11879 2003-01-15  Havoc Pennington  <hp@redhat.com>
11880
11881         Release 0.1.
11882
11883         * NEWS: update
11884
11885 2003-01-15  Havoc Pennington  <hp@redhat.com>
11886
11887         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
11888         fix build when --disable-tests
11889
11890         * Makefile.am (EXTRA_DIST): put HACKING in here
11891
11892         * HACKING: document procedure for making a tarball release.
11893
11894 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
11895
11896         * bus/connection.c: (connection_error_handler),
11897         (bus_connection_setup):
11898         * bus/main.c: (main):
11899         Make sure that the DBusConnectionData struct is NULLed
11900         out to prevent a segfault.
11901
11902         * dbus/dbus-errors.c: (dbus_result_to_string):
11903         * dbus/dbus-errors.h:
11904         * dbus/dbus-message.c: (dbus_message_get_fields),
11905         (dbus_message_get_fields_valist), (_dbus_message_test):
11906         * dbus/dbus-message.h:
11907         Make dbus_message_get_fields return a result code so we can
11908         track invalid fields as well as oom.
11909
11910 2003-01-11  Havoc Pennington  <hp@pobox.com>
11911
11912         * configure.in: change --enable-test/--enable-ansi action-if-given
11913         to enable_foo=$enableval instead of enable_foo=yes
11914
11915 2003-01-08  Havoc Pennington  <hp@pobox.com>
11916
11917         * dbus/dbus-string.c (_dbus_string_align_length): new function
11918
11919         * dbus/dbus-test-main.c: move main() for test app here
11920         * dbus/dbus-test.c
11921         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
11922         symbol to run tests, because dbus-test isn't in the main
11923         library
11924
11925         Code review nitpicks.
11926
11927         * dbus/dbus-message.c (dbus_message_write_header): add newlines
11928         for people with narrow emacs ;-). Assert client_serial was filled
11929         in. Assert message->name != NULL.
11930         (dbus_message_append_fields): have "first_field_type" arg separate
11931         from va list, needed for C++ binding that also uses varargs IIRC
11932         and helps with type safety
11933         (dbus_message_new): add @todo about using DBusString to store
11934         service/name internally
11935         (dbus_message_new): don't leak ->service and ->name on OOM later
11936         in the function
11937         (dbus_message_unref): free the service name
11938         (dbus_message_get_fields): same change to varargs
11939         i.e. first_field_type
11940         (_dbus_message_loader_return_buffer): assert that the message data
11941         is aligned (if not it's a bug in our code). Put in verbose griping
11942         about why we set corrupted = TRUE.
11943         (decode_header_data): add FIXME that char* is evil.  Was going to
11944         add FIXME about evil locale-specific string.h strncmp, but just
11945         switched to wacky string-as-uint32 optimization. Move check for
11946         "no room for field name" above get_const_data_len() to avoid
11947         assertion failure in get_const_data_len if we have trailing 2
11948         bytes or the like. Check for service and name fields being
11949         provided twice. Don't leak service/name on error. Require field
11950         names to be aligned to 4 bytes.
11951
11952         * dbus/dbus-marshal.c: move byte swap stuff to header
11953         (_dbus_pack_int32): uscore-prefix
11954         (_dbus_unpack_int32): uscore-prefix
11955         (_dbus_unpack_uint32): export
11956         (_dbus_demarshal_string): add @todo complaining about use of
11957         memcpy()
11958         (_dbus_marshal_get_field_end_pos): add @todo about bad error
11959         handling allowing corrupt data to go unchecked
11960
11961 2003-01-08  Havoc Pennington  <hp@redhat.com>
11962
11963         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
11964         to the select() as needed for authentication. (should be using
11965         _dbus_poll() not select, but for another day)
11966
11967         * dbus/dbus.h: include dbus/dbus-protocol.h
11968
11969 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
11970
11971         * dbus/Makefile.am (dbusinclude_HEADERS): Install
11972         dbus-connection.h
11973
11974 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
11975
11976         * dbus/dbus-internals.c: (_dbus_type_to_string):
11977         New function that returns a string describing a type.
11978
11979         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
11980         * dbus/dbus-marshal.h:
11981         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
11982         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
11983         (dbus_message_iter_get_byte_array):
11984         * dbus/dbus-message.h:
11985         Add new convenience functions for appending and getting message fields.
11986         Also add demarshalling routines for byte arrays.
11987
11988 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
11989
11990         * dbus/dbus-connection-internal.h:
11991         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11992         (_dbus_connection_get_next_client_serial),
11993         (dbus_connection_send_message):
11994         * dbus/dbus-internals.h:
11995         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
11996         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
11997         (_dbus_marshal_uint32), (_dbus_demarshal_double),
11998         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
11999         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12000         (_dbus_verbose_bytes), (_dbus_marshal_test):
12001         * dbus/dbus-marshal.h:
12002         * dbus/dbus-message-internal.h:
12003         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12004         (dbus_message_write_header), (_dbus_message_lock),
12005         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12006         (dbus_message_get_name), (dbus_message_append_int32),
12007         (dbus_message_append_uint32), (dbus_message_append_double),
12008         (dbus_message_append_string), (dbus_message_append_byte_array),
12009         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12010         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12011         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12012         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12013         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12014         (decode_header_data), (_dbus_message_loader_return_buffer),
12015         (message_iter_test), (_dbus_message_test):
12016         * dbus/dbus-message.h:
12017         * dbus/dbus-protocol.h:
12018         * dbus/dbus-test.c: (main):
12019         * dbus/dbus-test.h:
12020         * glib/test-dbus-glib.c: (message_handler), (main):
12021         * test/echo-client.c: (main):
12022         * test/watch.c: (check_messages):
12023         Make messages sendable and receivable for real.
12024
12025 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12026
12027         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12028         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12029         * dbus/dbus-message.c: (dbus_message_append_int32),
12030         (dbus_message_append_uint32), (dbus_message_append_double),
12031         (dbus_message_append_string), (dbus_message_append_byte_array):
12032         Handle OOM restoration.
12033
12034 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12035
12036         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12037         (_dbus_demarshal_string), (_dbus_marshal_test):
12038         * dbus/dbus-marshal.h:
12039         * dbus/dbus-message.c: (dbus_message_get_name),
12040         Document these functions.
12041
12042         (dbus_message_append_int32), (dbus_message_append_uint32),
12043         (dbus_message_append_double), (dbus_message_append_string),
12044         (dbus_message_append_byte_array):
12045         * dbus/dbus-message.h:
12046         Add functions for adding message fields of different types.
12047
12048         * dbus/dbus-protocol.h:
12049         Add the different types.
12050
12051 2003-01-05  Havoc Pennington  <hp@pobox.com>
12052
12053         * bus/connection.c: implement routines for handling connections,
12054         first thing is keeping a list of owned services on each connection
12055         and setting up watches etc.
12056
12057         * bus/services.c: implement a mapping from service names to lists
12058         of connections
12059
12060         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12061
12062         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12063         to use static mutexes for global data
12064
12065         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12066         collection of functions to set/get application-specific data
12067         on the DBusConnection.
12068
12069 2003-01-04  Havoc Pennington  <hp@pobox.com>
12070
12071         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12072         (_dbus_poll): new function
12073
12074         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12075         copied from GLib
12076
12077         * bus/loop.c: initial code for the daemon main loop
12078
12079 2003-01-04  Havoc Pennington  <hp@pobox.com>
12080
12081         * test/watch.c (error_handler): make it safe if the error handler
12082         is called multiple times (if we s/error handler/disconnect
12083         handler/ we should just guarantee it's called only once)
12084
12085         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12086         error handler on disconnect (it's quite possible we should
12087         just change the error handler to a "disconnect handler," I'm
12088         not sure we have any other meaningful errors)
12089
12090         * configure.in: check for getpwnam_r
12091
12092         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12093         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12094         mechanism as in SASL spec, using socket credentials
12095
12096         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12097         (_dbus_send_credentials_unix_socket): new function
12098
12099         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12100         dbus_accept()
12101         (_dbus_write): only check errno if <0 returned
12102         (_dbus_write_two): ditto
12103
12104 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12105
12106         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12107         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12108         (_dbus_marshal_test):
12109         * dbus/dbus-marshal.h:
12110         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12111         to _dbus_marshal_utf8_string. Also fix some tests.
12112
12113 2002-12-28  Harri Porten  <porten@kde.org>
12114
12115         * configure.in: added check for C++ compiler and a very cheesy
12116         check for the Qt integration
12117
12118         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12119
12120         * qt/Makefile.am: added
12121
12122         * qt/.cvsignore: added
12123
12124         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12125         latter, added #ifdef QT_THREAD_SUPPORT guard.
12126
12127         * dbus/Makefile.am: added missing headers for make dist
12128
12129 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12130
12131         * dbus/Makefile.am: fixup export-symbols-regex.
12132
12133 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12134
12135         * acinclude.m4: Add this file and put the
12136         PKG_CHECK_MODULE macro in it.
12137
12138 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12139
12140         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12141         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12142         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12143         (_dbus_marshal_test):
12144         Make the demarshalling routines align the pos argument.
12145         Add string marshalling tests and fix the obvious bugs
12146         discovered.
12147
12148 2002-12-26  Havoc Pennington  <hp@pobox.com>
12149
12150         * dbus/dbus-auth.c: fixes fixes fixes
12151
12152         * dbus/dbus-transport-unix.c: wire up support for
12153         encoding/decoding data on the wire
12154
12155         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12156         (_dbus_auth_decode_data): append to target string
12157         instead of nuking it.
12158
12159 2002-12-26  Havoc Pennington  <hp@pobox.com>
12160
12161         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12162         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12163         doh
12164
12165         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12166         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12167         now). Main point is because I wanted unpack_uint32 to implement
12168         _dbus_verbose_bytes
12169         (_dbus_verbose_bytes): new function
12170
12171         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12172
12173         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12174         mechanism to handle a corrupt message stream
12175         (_dbus_message_loader_new): fix preallocation to only prealloc,
12176         not prelengthen
12177
12178         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12179         (_dbus_string_test): enhance tests for copy/move and fix the
12180         functions
12181
12182         * dbus/dbus-transport-unix.c: Hold references in more places to
12183         avoid reentrancy problems
12184
12185         * dbus/dbus-transport.c: ditto
12186
12187         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12188         leak reference count in no-message case
12189
12190         * test/watch.c (do_mainloop): handle adding/removing watches
12191         during iteration over the watches. Also, ref the connection/server
12192         stored on a watch, so we don't try to mangle a destroyed one.
12193
12194         * dbus/dbus-transport-unix.c (do_authentication): perform
12195         authentication
12196
12197         * dbus/dbus-auth.c (get_state): add a state
12198         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12199         (_dbus_auth_get_unused_bytes): append the unused bytes
12200         to the passed in string, rather than prepend
12201
12202         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12203         the auth conversation DBusAuth
12204
12205         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12206         (_dbus_transport_new_for_domain_socket): when creating a
12207         transport, pass in whether it's a client-side or server-side
12208         transport so we know which DBusAuth to create
12209
12210 2002-12-03  Havoc Pennington  <hp@pobox.com>
12211
12212         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12213         _after_ finalizing the derived members
12214         (unix_connection_set): unref watch if we fail to add it
12215
12216         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12217         transport first, so that the connection owned by the
12218         transport will be valid as the transport finalizes.
12219
12220         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12221         if necessary, and remove watches from the connection.
12222
12223         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12224
12225 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12226
12227         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12228         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12229         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12230         (_dbus_marshal_test):
12231         * dbus/dbus-marshal.h:
12232         Add string marshal functions and have the demarshal functions
12233         return the new position.
12234
12235 2002-12-25  Havoc Pennington  <hp@pobox.com>
12236
12237         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12238         it is a simple protocol that just maps directly to SASL.
12239
12240         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12241         initial implementation, not actually used yet.
12242
12243         * dbus/dbus-string.c (_dbus_string_find): new function
12244         (_dbus_string_equal): new function
12245         (_dbus_string_base64_encode): new function
12246         (_dbus_string_base64_decode): new function
12247
12248 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12249
12250         * dbus/Makefile.am:
12251         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12252         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12253         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12254         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12255         * dbus/dbus-marshal.h:
12256         * dbus/dbus-protocol.h:
12257         * dbus/dbus-test.c: (main):
12258         * dbus/dbus-test.h:
12259         Add un-optimized marshalling/demarshalling routines.
12260
12261 2002-12-25  Harri Porten  <porten@kde.org>
12262
12263         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12264
12265 2002-12-24  Zack Rusin  <zack@kde.org>
12266
12267         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12268         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12269         main loop stuff
12270
12271 2002-12-24  Havoc Pennington  <hp@pobox.com>
12272
12273         * glib/dbus-gthread.c: fix include
12274
12275         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12276         I think glib API needs to change, though, as you don't
12277         want to use DBusMessageFunction, you want to use the
12278         DBusMessageHandler object. Probably
12279         dbus_connection_open_with_g_main_loop()
12280         and dbus_connection_setup_g_main_loop() or something like that
12281         (but think of better names...) that just create a connection
12282         that has watch/timeout functions etc. already set up.
12283
12284         * dbus/dbus-connection.c
12285         (dbus_connection_send_message_with_reply): new function just to
12286         show how the message handler helps us deal with replies.
12287
12288         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12289
12290         * dbus/dbus-string.c (_dbus_string_test): free a string that
12291         wasn't
12292
12293         * dbus/dbus-hash.c: use memory pools for the hash entries
12294         (rebuild_table): be more paranoid about overflow, and
12295         shrink table when we can
12296         (_dbus_hash_test): reduce number of sprintfs and write
12297         valid C89. Add tests for case where we grow and then
12298         shrink the hash table.
12299
12300         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12301
12302         * dbus/dbus-connection.c (dbus_connection_register_handler)
12303         (dbus_connection_unregister_handler): new functions
12304
12305         * dbus/dbus-message.c (dbus_message_get_name): new
12306
12307         * dbus/dbus-list.c: fix docs typo
12308
12309         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12310         an object representing a handler for messages.
12311
12312 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12313
12314         * glib/dbus-glib.h:
12315         * glib/dbus-gthread.c: (dbus_gthread_init):
12316         Don't use the gdbus prefix for public functions.
12317
12318 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12319
12320         * Makefile.am:
12321         * configure.in:
12322         Add GLib checks and fixup .pc files
12323
12324         * glib/Makefile.am:
12325         * glib/dbus-glib.h:
12326         * glib/dbus-gmain.c: (gdbus_connection_prepare),
12327         (gdbus_connection_check), (gdbus_connection_dispatch),
12328         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12329         (dbus_connection_gsource_new):
12330         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12331         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12332         * glib/test-dbus-glib.c: (message_handler), (main):
12333         Add GLib support.
12334
12335 2002-12-15  Harri Porten  <porten@kde.org>
12336
12337         * autogen.sh: check for libtoolize before attempting to use it
12338
12339         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12340         struct.
12341
12342         * .cvsignore: ignore more stamp files
12343
12344         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12345
12346         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12347         without make install.
12348
12349 2002-12-15  Havoc Pennington  <hp@pobox.com>
12350
12351         * dbus/dbus-threads.c: add thread stubs that a higher library
12352         layer can fill in. e.g. the GLib wrapper might fill them in with
12353         GThread stuff. We still need to use this thread API to
12354         thread-safe-ize the library.
12355
12356 2002-12-12  Havoc Pennington  <hp@pobox.com>
12357
12358         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12359         below new interfaces and include fewer system headers.
12360
12361         * dbus/dbus-sysdeps.c (_dbus_read): new function
12362         (_dbus_write): new function
12363         (_dbus_write_two): new function
12364         (_dbus_connect_unix_socket): new function
12365         (_dbus_listen_unix_socket): new function
12366
12367         * dbus/dbus-message-internal.h: change interfaces to use
12368         DBusString
12369
12370 2002-12-11  Havoc Pennington  <hp@pobox.com>
12371
12372         * dbus/dbus-types.h: add dbus_unichar
12373
12374         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12375
12376         * dbus/dbus-connection.c (dbus_connection_send_message): return
12377         TRUE on success
12378
12379         * dbus/dbus-transport.c: include dbus-watch.h
12380
12381         * dbus/dbus-connection.c: include dbus-message-internal.h
12382
12383         * HACKING: add file with coding guidelines stuff.
12384
12385         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12386         handling here, for security purposes (as in vsftpd). Not actually
12387         using this class yet.
12388
12389         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12390         system/libc usage here, as in vsftpd, for ease of auditing (and
12391         should also simplify portability). Haven't actually moved all the
12392         system/libc usage into here yet.
12393
12394 2002-11-25  Havoc Pennington  <hp@pobox.com>
12395
12396         * dbus/dbus-internals.c (_dbus_verbose): fix to not
12397         always print the first verbose message.
12398
12399 2002-11-24  Havoc Pennington  <hp@pobox.com>
12400
12401         * test/echo-client.c, test/echo-server.c: cheesy test
12402         clients.
12403
12404         * configure.in (AC_CHECK_FUNCS): check for writev
12405
12406         * dbus/dbus-message.c (_dbus_message_get_network_data): new
12407         function
12408
12409         * dbus/dbus-list.c (_dbus_list_foreach): new function
12410
12411         * dbus/dbus-internals.c (_dbus_verbose): new function
12412
12413         * dbus/dbus-server.c, dbus/dbus-server.h: public object
12414         representing a server that listens for connections.
12415
12416         * dbus/.cvsignore: create
12417
12418         * dbus/dbus-errors.h, dbus/dbus-errors.c:
12419         public API for reporting errors
12420
12421         * dbus/dbus-connection.h, dbus/dbus-connection.c:
12422         public object representing a connection that
12423         sends/receives messages. (Same object used for
12424         both client and server.)
12425
12426         * dbus/dbus-transport.h, dbus/dbus-transport.c:
12427         Basic abstraction for different kinds of stream
12428         that we might read/write messages from.
12429
12430 2002-11-23  Havoc Pennington  <hp@pobox.com>
12431
12432         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12433         _DBUS_INT_MAX
12434
12435         * dbus/dbus-test.c (main): add list test, and include
12436         dbus-test.h as intended
12437
12438         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12439         (_dbus_hash_table_remove_int): return value indicates
12440         whether the entry existed to remove
12441
12442         * dbus/dbus-list.c: add linked list utility class,
12443         with docs and tests
12444
12445         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12446         array sometimes.
12447
12448 2002-11-23  Havoc Pennington  <hp@pobox.com>
12449
12450         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12451         DBUS_END_DECLS to nothing, that should fix this once and for all
12452
12453         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12454
12455         * dbus/dbus-message.c, dbus/dbus-hash.c:
12456         add some missing @brief
12457
12458 2002-11-23  Havoc Pennington  <hp@pobox.com>
12459
12460         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12461         to avoid confusing Doxygen
12462
12463         * dbus/dbus-hash.c: @} not }@
12464
12465         * dbus/dbus-message.c (struct DBusMessage): split out
12466         internals docs
12467
12468 2002-11-23  Havoc Pennington  <hp@pobox.com>
12469
12470         * configure.in: pile on more warning flags if using gcc
12471
12472         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12473         to document static functions
12474
12475         * configure.in: add summary to end of configure so it
12476         looks nice and attractive
12477
12478         * dbus/dbus-hash.c: finish implementation and write unit
12479         tests and docs
12480
12481         * configure.in: add --enable-tests to enable unit tests
12482
12483         * dbus/dbus-test.c: test program to run unit tests
12484         for all files in dbus/*, initially runs a test for
12485         dbus-hash.c
12486
12487         * dbus/dbus-internals.h: file to hold some internal utility stuff
12488
12489 2002-11-22  Havoc Pennington  <hp@redhat.com>
12490
12491         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12492         "ported" away from Tcl
12493
12494         * dbus/dbus-types.h: header for types such as dbus_bool_t
12495
12496 2002-11-22  Havoc Pennington  <hp@redhat.com>
12497
12498         * dbus/dbus.h: fixups for doc warnings
12499
12500         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12501         macros
12502         (QUIET): make it quiet so we can see warnings
12503
12504         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12505
12506 2002-11-22  Havoc Pennington  <hp@redhat.com>
12507
12508         * Makefile.am: include "Doxyfile" target in all-local
12509
12510         * configure.in: generate the Doxyfile
12511
12512         * Doxyfile.in: move Doxyfile here, so we can use
12513         configure to generate a Doxyfile with the right
12514         version number etc.
12515
12516 2002-11-22  Havoc Pennington  <hp@redhat.com>
12517
12518         * dbus/dbus-message.c: move inline docs into .c file
12519
12520         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12521         so all docs are under doc/
12522         (MAN_EXTENSION): generate man pages. Use extension
12523         ".3dbus" which matches ".3qt" on my system,
12524         I guess this is OK, I don't know really.
12525         (FILE_PATTERNS): look for .c files not .h, makes sense
12526         for plain C I think
12527
12528 2002-11-22  Havoc Pennington  <hp@pobox.com>
12529
12530         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12531         because any app can be a server, and any app can be a client,
12532         the bus is a special kind of server.
12533
12534 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
12535
12536         * Doxyfile : adding. Still needs Makefile rules to be generated
12537         automatically (just run "doxygen" in the toplevel dir for now to
12538         generate docs)
12539
12540         * dbus/dbus-message.h : Adding sample docs (javadoc since
12541         resembles gtk-doc a little more)
12542
12543         * dbus/dbus.h : Adding sample docs
12544
12545 2002-11-21  Havoc Pennington  <hp@redhat.com>
12546
12547         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12548         so we can allow ourselves to include files directly,
12549         instead of having to use dbus.h
12550
12551         * dbus/dbus.h: fill in
12552
12553         * dbus/dbus-message.h: sketch out a sample header file.
12554         Include griping if you include it directly instead of
12555         via dbus.h
12556
12557         * dbus/dbus-macros.h: new file with macros for extern "C",
12558         TRUE/FALSE, NULL, etc.
12559
12560         * doc/file-boilerplate.c: put include guards in here
12561
12562 2002-11-21  Havoc Pennington  <hp@redhat.com>
12563
12564         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12565
12566         * COPYING: include the GPL as well, and license code
12567         under both AFL and GPL.
12568
12569 2002-11-21  Havoc Pennington  <hp@redhat.com>
12570
12571         * acconfig.h: get rid of this
12572
12573         * autogen.sh (run_configure): add --no-configure option
12574
12575         * configure.in: remove AC_ARG_PROGRAM to make
12576         autoconf complain less. add AC_PREREQ.
12577         add AC_DEFINE third arg.
12578
12579 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
12580
12581         * doc/Makefile.am:
12582         Fix references so we can distcheck.
12583
12584 2002-11-21  Havoc Pennington  <hp@redhat.com>
12585
12586         * Initial module creation
12587