patches from Michael Krivoruchko <misha at sun.com>:
[platform/upstream/dbus.git] / ChangeLog
1 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2
3         patches from Michael Krivoruchko <misha at sun.com>: 
4         
5         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
6         _dbus_connection_message_sent, 
7         _dbus_connection_send_preallocated_unlocked_no_update, 
8         _dbus_connection_pop_message_link_unlocked): handle the case when path 
9         is NULL when calling _dbus_verbose
10
11         * configure.in: check for functions getpeerucred and getpeereid
12
13         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
14         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
15         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
16         Patch was only tested on Solaris 10 x86 so it might be issues
17         with other platforms (i.e. BSDs and MacOSX)
18         
19
20 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
21
22         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
23         instead of marshal basic so we can handle recursive types in a variant
24
25         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
26         in variants
27
28         * test/glib/test-service-glib.c, test-service-glib.xml
29         (my_object_echo_variant [EchoVariant], 
30         my_object_process_variant_of_array_of_ints123
31         [ProcessVariantOfArrayOfInts123]): 
32         Add two test methods
33
34         * python/introspect_parser.py: New module for parsing introspect
35         data.
36
37         * python/dbus_bindings.pyx:
38         (various places): when throwing errors fix to use errormsg instead 
39         of message local variable because Pyrex can get confused with other 
40         message variables (initial patch by Robert McQueen 
41         <robert.mcqueen at collabora.co.uk>)
42         (MessageIter::parse_signature_block): new method for getting the next
43         block in a signiture.
44         (MessageIter::append_strict): new method for appending values strictly
45         using the passed in signature instead of guessing at the type
46         (MessageItter:: append_dict, append_struct, append_array): use 
47         signatures to marshal children if the signature is available
48         
49         * python/exceptions.py (IntrospectionParserException): new exception
50
51         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
52         introspected signatures if available, else we fall back to the
53         old way of doing things.
54         (ProxyObject::_introspect_reply_handler ): parse introspection data
55         
56         * python/service.py (ObjectType::_reflect_on_method): Properly
57         terminate <method> if there are no args in the reflection data
58
59         * test/python/test-client.py: add tests for talking with the GLib
60         test server.  This gives us better coverage for introspection since
61         python to python will always generate arguments as variants.  It also
62         allows us to test the robustness of the GLib bindings and interlanguage
63         communications.
64
65         
66 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
67
68         * bus/driver.c (bus_driver_handle_introspect): Add signals
69         to the introspect data. (patch from Daniel P. Berrange 
70         <dan at berrange.com>)
71
72         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
73         
74         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
75         _dbus_connection_run_builtin_filters): Changed these to
76         be unlock_no_update functions and call 
77         _dbus_connection_send_unlocked_no_update instead of
78         dbus_connection_send to avoid locking errors.
79         
80         * doc/TODO: Removed the make Ping test TODO
81         
82 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
83
84         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
85         We now copy the message from a DBusError and then free 
86         the error object befor throwing the error
87
88         * glib/dbus-glib-tool.c: removed extra comma at the end of the
89         DBusBindingOutputMode enum which was causing a warning.
90         #include <time.h> so using time_t is explicitly defined
91
92 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
93
94         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
95         - dbus/dbus-bus.c
96         (internal_bus_get): new method that take over the heavy lifting
97         of dbus_bus_get and adds the ability to get a private connection
98         to the bus
99         (dbus_bus_get): wrapper to internal_bus_get that provides the same
100         interface as in previous versions
101         (dbus_bus_get_private): new method that is a wrapper to 
102         internal_bus_get to get a private connection to the bus
103
104         - dbus/dbus-bus.h
105         (dbus_bus_get_private): add as a public libdbus interface
106
107         - dbus-1.pc.in: output system_bus_default_address and 
108         sysconfdir variables so apps can use them when compiling
109
110 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
111         * dbus/qt: New Qt bindings
112
113 2005-09-12  Waldo Bastian  <bastian@kde.org>
114
115         * dbus/dbus-marshal-validate.c,
116         doc/dbus-specification.xml, test/Makefile.am,
117         test/test-names.c: allow hyphens in bus names.
118
119 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
120
121         * test/data/auth/fallback.auth-script: we don't
122         retry the EXTERNAL method when we know its going
123         to fail anymore.
124
125 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
126
127         * dbus/dbus-connection-internal.h: rename
128         (add|remove|toggle)_(watch|timeout) to unlocked()
129         
130         * dbus/dbus-connection.c: ditto.
131         
132         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
133         Update some callers for the renaming.
134
135 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
136
137         * dbus/dbus-auth.c: (record_mechanisms): don't
138         retry the first auth mechanism because we know
139         we're just going to get rejected again.
140         
141         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
142         Fix thinko ... and what a nasty little bugger to
143         track down you were ...
144
145         * dbus/dbus-connection.c:
146         (_dbus_connection_add_watch),
147         (_dbus_connection_remove_watch): add note about
148         these needing the connection to be locked.
149         (_dbus_connection_get_dispatch_status_unlocked):
150         set status to DATA_REMAINS when we queue the
151         disconnected message.
152         
153         * bus/dispatch.c:
154         (bus_dispatch): fix warning.
155         (check_existent_service_no_auto_start):
156         Expect ChildSignaled error too.
157         (check_existent_hello_from_self): fix another
158         couple of warnings.
159         
160 2005-09-08  Joe Shaw  <joeshaw@novell.com>
161
162         Patches from James Willcox <snorp@snorp.net>
163
164         * mono/Makefile.am: Add Int16.cs and UInt16.cs
165
166         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
167         support array "out" parameters.
168
169         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
170         for 16-bit int support.
171
172 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
173
174         * Released 0.50
175
176         * Patch from Steve Grubb:
177         - bus/activation.c (bus_activation_service_reload_test): clean up
178         some indentation
179         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
180         - dbus/dbus-message-factory.c (generate_special): fix a couple of
181         buffer overflows in the test suite.  This is non critical because
182         it can not be exploited and this code is only run when doing a 
183         make check.
184
185         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
186         - configure.in: Don't check and link against kdecore, only qt headers
187         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
188         - gcj/org/freedesktop/dbus/Makefile.am:
189         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
190         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
191         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
192         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
193         - tools/Makefile.am: Add platform extentions to binaries 
194         (i.e. .exe on windows)
195
196         * configure.in: 
197         - Make it so if no suitable version of python is found we only 
198         disable building python instead of exiting the configure script
199         - Require version 2.4 of glib for glib bindings
200         - Up version to 0.50
201
202         * python/__init__.py: Sync version with libdbus to (0,50,0)
203         
204 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
205
206         * dbus/dbus-object-tree.c (find_subtree_recurse):
207         a couple of optimizations (bug #710):
208         - do a binary search in the tree
209         - insert a new child at the right place directly, no need for
210           qsort anymore
211         - do the "double alloc" thing when allocating children
212
213 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
214
215         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
216
217         * python/dbus_bindings.pyx: Memory management foo
218         (global): remove hacky _user_data_references global list
219         (GIL_safe_cunregister_function_handler): userdata now stuffed into
220         tuples. Unref user_data
221         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
222         (Connection::__del__): Remove and replace with __dealloc__ method
223         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
224         to keep tuple from being deallocated instead of the global var hack
225         (Connection::register_object_path): Stuff user_data into a tuple.
226         Use Py_INCREF to keep tuple from being deallocated instead of the 
227         global var hack
228         (Connection::register_fallback): Stuff user_data into a tuple.
229         Use Py_INCREF to keep tuple from being deallocated instead of the 
230         global var hack
231         (GIL_safe_pending_call_notification): Don't unref the message
232         because it gets unreffed when going out of scope.  Py_XDECREF
233         the user_data
234         (PendingCall::__del__): Remove and replace with __dealloc__ method
235         (PendingCall::set_notify): ref the pending call because we will
236         need it to stick around for when the notify callback gets called
237         (Message::__del__): Remove and replace with __dealloc__ method
238
239         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
240         gthreads_init to match up with the dbus call
241
242         * python/glib.py (init_threads): Changed to threads_init to match
243         up with gobject.threads_init().  init_threads is kept for backwards
244         compat but will most likely be deprecated in the future
245
246         * test/python/test-client.py: 
247         - revamp to use Python's unittest functionality
248         - add async call tests
249         - setup threads in glib and dbus so we make sure locks are working
250         
251 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
252
253         * python/dbus_bindings.pyx 
254         (_pending_call_notification, cunregister_function_handler, 
255         cmessage_function_handler): All callback functions have been rearranged 
256         to workaround a bug in Pyrex when working with the GIL which is Python's 
257         global lock when dealing with threads.  They have been split into
258         a wrapper function (which assumes the name of the old function) and
259         a _GIL_safe_<function name> function which contains the functionality
260         of the old function.  This ensures that Pyrex does not write code
261         the lock is released.
262         
263
264 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
265
266         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
267         GIL global lock when calling back into Python
268
269 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
270
271         * Release 0.36.2
272
273         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
274
275         * bus/policy.c (bus_policy_allow_user): change default "user is
276         allowed" to be "user has same uid as the bus itself"; any
277         allow/deny rules will override.
278
279         * bus/session.conf.in: don't allow all users, since now by default
280         the user that ran the bus can connect.
281
282 2005-08-26  Colin Walters  <walters@verbum.org>
283
284         * tools/dbus-print-message.c (print_message): Flush stdout
285         after printing a message, so that redirecting to a file, then
286         hitting Ctrl-C works.
287
288 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
289
290         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
291         (EmptyMessage): new class that subclasses Message.  This is a workaround
292         to a Pyrex bug that fails to call __del__ when the Message object goes out
293         of scope.  For some reason subclassing Message fixes this bug
294         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
295         - s/Message(_create=0)/EmptyMessage everywhere else
296         
297         * test/python/test-{server|client}.py: add the python/.libs directory
298         to the lookup path so dbus_bindings and dbus_glib_bindings don't
299         get picked up from the system
300
301 2005-08-25  Colin Walters  <walters@verbum.org>
302
303         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
304         to Ryan Lortie for the suggestion.
305
306 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
307
308         * test/python: Add python regression test
309
310         * configure.in: Add test/python/Makefile
311
312         * test/Makefile.am: Add the python directory to SUBDIRS
313
314 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
315
316         * Release 0.36.1
317
318         * python/_dbus.py: 
319         (Interface::connect_to_signal): propigate keywords for match on args
320         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
321
322         * python/proxies.py (ProxyObject::connect_to_signal):
323         propigate keywords for match on args
324
325         * Makefile.am: point everything to pyexecdir since python borks
326         on multilib
327
328 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
329
330         * Release 0.36
331
332 2005-08-23  Colin Walters  <walters@verbum.org>
333
334         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
335
336 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
337
338         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
339         to fix some wranings. We now use dbus_bindings.DBusConnection instead
340         of defining DBusConnection ourselves.
341
342 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
343
344         * python/dbus.pth: New path file to fix up problems when installing
345         c libraries to lib64 and python files to lib.
346
347         * python/Makefile.am: install dbus.pth in the correct spot
348
349 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
350         * ChangeLog: clean up my last entry a bit
351
352         * doc/introspect.xsl: New stylesheet for converting introspection data
353         into browser renderable xhtml. Contributed by Lennart Poettering.
354
355         * doc/introspect.dtd: Fixups in the introspect format from Lennart
356         Poettering.
357
358         * doc/dbus-tutorial.xml: 
359         - Add Colin Walter to the Authors section for authoring the GLib
360         section
361         - Add descriptions of the new signature and type functionality
362         in the Python complex type mapping section
363         - Add a sidenote on the new args matching functionality in 
364         the Python bindings
365         - Fixed up some of the examples to use the gobject.MainLoop
366         instead of gtk.main
367         
368         * python/_dbus.py:
369         (Bus::_create_args_dict): New. Converts a hash of arg matches
370         to a more useable format
371         (Bus::add_signal_receiver): add a **keywords parameter for catching
372         arg match parameters
373         (Bus::remove_signal_receiver): add a **keywords parameter for catching
374         arg match parameters
375         
376         * python/matchrules.py:
377         (MatchTree::exec_matches): Check for arg matches
378         (SignalMatchRule::add_args_match): New method
379         (SignalMatchRule::execute): Added args_list parameter as an optimization
380         so we don't have to marshal the args more than once
381         (SignalMatchRule::match_args_from_list): New method that checks to see
382         if the rule's arg matches match an argument list.  Only arguments
383         set in the rule are checked.
384         (SignalMatchRule::match_args_from_rule): New method that checks to see
385         if the rule's arg matches match another rule's.  All args have to match
386         in order for this method to return true.  If either rule has more args
387         then it is not a match.
388         (SignalMatchRule::is_match): Add args match
389         (SignalMatchRule::repr): Add args to the final output if they exist
390
391 2005-08-17  Ross Burton  <ross@burtonini.com>
392
393         * glib/dbus-gproxy.c:
394         (dbus_g_proxy_call_no_reply): unref the message once sent.
395         (dbus_g_proxy_call): protect against NULL proxy.
396
397 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
398
399         * python/__init__.py: Version updated (0, 43, 0)
400         
401         * python/dbus_bindings.pyx: 
402         - Fixed type objects to have self passed into __init__
403         - Added the Variant type
404         - Add the ability to specify types or signatures for Array, Variant 
405         and Dictionary
406         (Connection::send_with_reply_handlers): return a PendingCall object
407         (_pending_call_notification): handle the case when an error is returned 
408         without an error message in the body
409         (MessageIter::get_boolean): return True or False instead of an integer
410         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
411         and add checks for objects with embeded signatures or types (Array, 
412         Variant and Dictionary)
413         (MessageIter::append_byte): handle case when the value is a dbus.Byte
414         (MessageIter::append_dict): handle embeded types or signatures
415         (MessageIter::append_array): handle embeded types or signatures
416         (MessageIter::append_variant): new method
417         
418         * python/proxies.py:
419         (DeferedMethod): New. Dummy executable object used when queuing calls 
420         blocking on introspection data
421         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
422         or shorter timeouts for method calls
423         (ProxyObject): Add first pass at an introspection state machine
424         (ProxyObject::__init__): Add introspect keyword for turing off an on 
425         introspection. 
426         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
427         the usual mechanisms for sending messages.  This is to avoid a deadlock
428         where the Intospect call would be queued waiting for the Introspect 
429         call to finish ;-)
430         (ProxyObject::_introspect_reply_handler): New.  This method is called 
431         when introspection returns with no error
432         (ProxyObject::_introspect_error_handler): New.  This method is called 
433         when introspection encounters an error
434         (ProxyObject::__getattr__): Code to handle different introspection 
435         states.  Queue async calls or block blocking calls if we are 
436         introspecting.  Pass through as normal if we are not or are done with 
437         introspecting.
438         
439         * python/service.py: Import signal and method from decorators.py
440
441         * python/types.py: Add Variant type
442
443 2005-08-16  Colin Walters  <walters@verbum.org>
444
445         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
446         DBusError message is NULL.
447
448 2005-08-09  Havoc Pennington  <hp@redhat.com>
449
450         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
451         malloc'd copy of the name parameter
452
453 2005-08-09  Havoc Pennington  <hp@redhat.com>
454
455         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
456         warning if the reply serial is set to 0
457
458 2005-08-04  Colin Walters  <walters@verbum.org>
459
460         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
461         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
462         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
463         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
464         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
465         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
466         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
467         * glib/dbus-gvalue.h (dbus_g_value_types_init)
468         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
469         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
470         
471         Prefix name with _ to ensure they're not exported.  All callers
472         updated.
473
474         * glib/dbus-gvalue.c (typecode_to_gtype)
475         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
476         (signature_iter_to_g_type_dict)
477         (signature_iter_to_g_type_array)
478         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
479         (dbus_gtypes_from_arg_signature):
480         Move to dbus-gsignature.c.
481
482         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
483         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
484         (dbus_binding_tool_output_glib_client): Ditto.
485
486         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
487         and dbus-gsignature.h
488
489         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
490         unused variable.
491
492 2005-08-03  Colin Walters  <walters@verbum.org>
493
494         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
495         catch any incompatible changes accidentally made.
496
497 2005-08-03  Havoc Pennington  <hp@redhat.com>
498
499         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
500         typo, from Julien Puydt
501
502         * bus/connection.c (bus_connection_disconnected): we were always
503         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
504
505 2005-08-01  Colin Walters  <walters@verbum.org>
506
507         Patch from Joe Markus Clarke:   
508         
509         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
510         use-after-free.
511
512 2005-08-01  Colin Walters  <walters@verbum.org>
513         
514         Patch from Joe Markus Clarke:   
515         
516         * tools/dbus-send.c (main): 
517         
518         Don't use C99 style initializers (bug #3933).
519         
520 2005-08-01  Colin Walters  <walters@verbum.org>
521
522         Patch from Joe Markus Clarke:   
523
524         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
525         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
526         * glib/dbus-gobject.c (write_interface):
527
528         Don't use C99 style initializers (bug #3933).
529
530 2005-07-31  Havoc Pennington  <hp@redhat.com>
531
532         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
533         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
534
535 2005-07-30  Havoc Pennington  <hp@redhat.com>
536
537         * fix a bunch of Doxygen warnings and mistakes
538
539 2005-07-30  Havoc Pennington  <hp@redhat.com>
540
541         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
542         DBUS_BUILD_TESTS since it's now used in production code
543
544 2005-07-29  Havoc Pennington  <hp@redhat.com>
545
546         * test/glib/test-profile.c (write_junk): initialize the junk
547         buffer so valgrind doesn't have a breakdown
548
549 2005-07-29  Havoc Pennington  <hp@redhat.com>
550
551         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
552         (match_rule_matches): remove unused arg
553         (test_matching): add tests for match_rule_matches()
554
555         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
556         do arg0='foo' arg5='bar' in the match rules
557         (match_rule_matches): don't match if the arg0='foo' doesn't match.
558
559         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
560
561 2005-07-29  Ross Burton  <ross@openedhand.com>
562
563         * dbus/dbus-connection.c:
564         Don't create a DBusCondVar which is never used.
565
566 2005-07-27  Ross Burton  <ross@openedhand.com>
567
568         * dbus/dbus-message.c:
569         Reduce the size of the maximum cached message to 10K.
570
571 2005-07-25  Ross Burton  <ross@openedhand.com>
572
573         * glib/dbus-gproxy.c:
574         Remove matches when all proxies are unregistered.
575
576 2005-07-24  Colin Walters  <walters@verbum.org>
577
578         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
579         typedata; recursive arrays won't have it.
580
581         * test/glib/test-dbus-glib.c:
582         * test/glib/test-service-glib.c:
583         * test/glib/test-service-glib.xml: Add recursive arrays tests.
584         
585 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
586
587         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
588         proxies.py, service.py: Cleanup of code after running it through the
589         pyflakes code checker mostly dealing with undefined names.  
590         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
591
592 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
593
594         * NEWS: Update to 0.35.2
595
596 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
597
598         * python/_dbus.py: Remove import of the dbus.services
599         module as it no longer exists (patch from Dimitur Kirov)
600
601         * python/service.py (Object::__init__): Fixed typo
602         s/name/bus_name (patch from Dimitur Kirov)
603
604         * python/examples/example-signal-emitter.py: import dbus.glib
605         to get the main loop and use glib mainloop instead of gtk so
606         X doesn't have to be running.
607
608         * python/examples/example-signal-recipient.py: import dbus.glib
609         to get the main loop and use glib mainloop instead of gtk so
610         X doesn't have to be running. Import the decorators module
611         directly.
612
613         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
614         didn't pick up on but are needed to build
615
616         * configure.in: upped version to 0.35.2
617
618         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
619         added Colin Walters' SELinux API rename patch from head 
620         s/unix sercurity context/selinux security context/
621
622 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
623
624         * python/Makefile.am: dbus_binding.pxd.in should be included 
625         in EXTRA_DIST not dbus_binding.pxd
626         fix up $(srcdir) hopefully for the last time
627
628         * NEWS: Update to 0.35.1
629
630 2005-07-16  Colin Walters  <walters@verbum.org>
631
632         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
633         from bus_driver_handle_get_connection_unix_security_context.  Update for
634         error usage.
635         (message_handlers): Update for renames.
636
637         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
638         _dbus_string_init failure correctly.
639         (bus_selinux_append_context): Convert SID to context.  Append it
640         as a byte array.
641         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
642         hasn't been called.
643
644         * bus/selinux.h: Update prototype.
645
646         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
647         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
648
649 2005-07-15  Colin Walters  <walters@verbum.org>
650
651         * doc/TODO: Add note about convenience wrappers.
652
653 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
654
655         * NEWS: Update to 0.35
656
657 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
658
659         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
660         so distcheck doesn't fail
661
662         * glib/examples/Makefile.am: Add example-service.xml and 
663         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
664
665         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
666         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
667
668         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
669         compiler looks in the right places during distcheck
670
671 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
672
673         * glib/example/Makefile.am: Fix a typo which cause make distcheck
674         to fail
675
676 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
677
678         * python/examples/example-service.py,
679         python/examples/example-signal-emitter.py: Fixed up examples
680         for API changes
681
682 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
683
684         * python/__init__.py: Upped to version (0,42,0) because of
685         the API change
686
687 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
688
689         * ChangeLog: fix date in last entry
690
691         * configure.in, bus/system.conf.in: add the ability to configure 
692         the system bus user at compiletime with the --with-dbus-user flag
693         (patch from Kristof Vansant)
694
695 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
696
697         * bus/dispatch.c, test/test-service.c: Add testcase
698         for sending messages to oneself (TODO item).
699
700         * python/service.py (class Object): Swap ordering of bus_name 
701         and object_path parameters to better support inheritance.
702
703         * doc/dbus-tutorial.xml: change Python docs to reflect change
704         in parameter ordering and fix the inheritance section.
705
706         * doc/TODO: remove sending message to oneself TODO item
707
708 2005-07-15  Ross Burton  <ross@openedhand.com>
709
710         * glib/dbus-gproxy.c:
711         Fix a leak when calling methods via the proxy.
712
713 2005-07-15  Colin Walters  <walters@verbum.org>
714
715         * bus/selinux.c (bus_selinux_append_context): Wrap in
716         HAVE_SELINUX.
717
718 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
719
720         * python/_dbus.py (Bus::remove_signal_receiver):
721         don't add a callback to the match if none has been passed in
722         
723         * python/matchrules.py (SignalMatchTree::remove): if the rule
724         being matched does not have a callback treat it as a wildcard
725         fix matching logic
726
727         * doc/dbus-tutorial.xml: Add Python tutorial
728
729 2005-07-14  Colin Walters  <walters@verbum.org>
730
731         * bus/driver.c
732         (bus_driver_handle_get_connection_unix_security_context): New function.
733         (message_handlers): Add.
734
735         * bus/selinux.c (bus_selinux_append_context): New function; appends
736         security context to message.
737
738         * bus/selinux.h: Prototype.
739
740         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
741
742 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
743
744         * bus/activation.c: clean up all tabs to be 8 spaces 
745         (bus_activation_activate_service): make sure we clean up
746         if activation fails
747
748         * bus/dispatch.c: clean up all tabs to be 8 spaces 
749         (check_shell_fail_service_auto_start): New function
750         tests to make sure we get fail properly when trying to auto start a service
751         with a faulty command line
752         (check_shell_service_success_auto_start): New function tests to make sure
753         auto started services get the arguments on the command line
754
755         * test/test-shell-service.c: Added service for testing auto-starting with 
756         command line arguments
757
758         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
759         test/data/valid-service-files/debug-shell-echo-success.service.in:
760         Added service files for testing auto-starting with command line arguments
761
762         * */.cvsignore: added a bunch of generated files to various .cvsignore files
763
764 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
765
766         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
767         
768         * dbus/Makefile.am: added new files to build.
769
770         * bus/activation.c (bus_activation_activate_service): support
771         activation commands with parameters.
772
773         * test/shell-test.c: added test program for the shell parsing
774         code.
775
776 2005-07-13  David Zeuthen  <davidz@redhat.com>
777
778         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
779         64 bit signed and unsigned parameters
780
781 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
782
783         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
784
785         * python/service.py (class Name): renamed BusName to make it clearer
786         what the object is for (a name on the bus)
787
788         * python/examples/example-service.py,
789         python/examples/example-signal-emitter.py: change the Name object to
790         BusName
791
792 2005-07-12  Colin Walters  <walters@verbum.org>
793
794         Patch from Jim Gettys <Jim.Gettys@hp.com>.
795
796         * tools/dbus-launch.c: Include sys/select.h.
797
798 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
799         * python/dbus_bindings.pyx.in: removed
800
801         * python/dbus_bindings.pyx: Added.
802         - Fixed some memleaks (patch from 
803         Sean Meiners <sean.meiners@linspireinc.com>)
804         - Broke out the #include "dbus_h_wrapper.h" and put it in its
805         own pxd file (Pyrex definition)
806         - Broke out glib dependancies into its own pyx module
807         
808         * python/dbus_bindings.pdx: Added.
809         - Defines C class Connection for exporting to other modules
810
811         * python/dbus_glib_bindings.pyx: Added.
812         - New module to handle lowlevel dbus-glib mainloop integration
813
814         * python/glib.py: Added.
815         - Registers the glib mainloop when you import this module
816
817         * python/services.py: Removed (renamed to service.py)
818         
819         * python/service.py: Added.
820         - (class Server): renamed Name
821
822         * python/__init__.py: Bump ro version (0,41,0)
823         -don't import the decorators or service module
824         by default.  These now reside in the dbus.service namespace
825
826         * python/_dbus.py (Bus::__init__): Add code run the main loop 
827         setup function on creation 
828
829         * python/examples/example-service.py,
830         python/examples/example-signal-emitter.py: update examples
831
832         * python/examples/gconf-proxy-service.py,
833         python/examples/gconf-proxy-service2.py: TODO fix these up
834
835         * doc/TODO: Addition
836         - Added a Python Bindings 1.0 section
837         - added "Add match on args or match on details to match rules"
838
839
840 2005-07-12  Colin Walters  <walters@verbum.org>
841
842         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
843         (statemachine-glue.h): 
844         * glib/examples/Makefile.am (example-service-glue.h) 
845         (example-signal-emitter-glue.h): 
846         * glib/Makefile.am (dbus-glib-error-switch.h): 
847         Add libtool --mode=execute so we use the built library instead
848         of any installed one.
849
850 2005-07-11  Colin Walters  <walters@verbum.org>
851
852         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
853         (dbus_g_value_types_init): Remove assertion.
854         (dbus_g_value_get_g_type, dbus_g_value_open)
855         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
856         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
857         functions related to DBusGValue.  Now we marshal/demarshal
858         structures as GValueArray.
859         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
860         structures.
861         (signature_iter_to_g_type_array): Don't call
862         signature_iter_to_g_type_struct.
863         (signature_iter_to_g_type_struct): Delete.
864         (dbus_gvalue_to_signature): Delete.
865         (dbus_gvalue_to_signature): New function with same name as other
866         one; we can convert structures to signatures.
867         (demarshal_valuearray): New function.
868         (get_type_demarshaller): Use it.
869         (demarshal_recurse): Delete.
870         (marshal_proxy): New function.
871         (marshal_map): Warn if we can't determine signature from type.
872         (marshal_collection_ptrarray): Ditto.
873         (marshal_collection_array): Ditto.
874         (get_type_marshaller): Use marshal_valuearray.
875         (marshal_recurse): Delete.
876         (_dbus_gvalue_test): Add some tests.
877
878         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
879         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
880         (dbus_g_value_open, dbus_g_value_iterator_get_value)
881         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
882         (dbus_g_value_free): Remove prototypes.
883
884         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
885         G_TYPE_VALUE_ARRAY.
886
887         * glib/examples/example-service.c:
888         * glib/examples/example-client.c: Implement GetTuple.
889
890         * test/glib/test-dbus-glib.c:
891         * test/glib/test-service-glib.c:
892         * test/glib/test-service-glib.xml: Add structure tests.
893
894 2005-07-10  Colin Walters  <walters@verbum.org>
895
896         * doc/TODO: Knock off some GLib items with this patch.
897
898         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
899         (_dbus_gvalue_signals_error): New functions.
900
901         * glib/dbus-gvalue-utils.h: Prototype them.
902
903         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
904         and change to not output const/retval flags for input args.  All
905         callers updated.
906         (invoke_object_method): Refactor to handle return values.  Add
907         some more comments in various places.  Remove debug g_print.
908
909         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
910
911         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
912         Handle G_TYPE_NONE.
913         (compute_gsignature): New function; refactored from code from
914         compute_marshaller and compute_marshaller_name.  Enhance to
915         handle return values and async ops more cleanly.  Update for
916         async ops returning NONE instead of BOOLEAN.
917         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
918         and output appropriate string.
919         (generate_glue): Handle return value annotation.  Also don't dump
920         constness flag for input arguments.
921
922         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
923         files shared between installed library and utilities.
924         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
925         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
926         binding tool can access gtype utility functions.
927
928         * test/glib/test-service-glib.c: 
929         * test/glib/test-service-glib.xml: 
930         * test/glib/test-dbus-glib.c: Add some tests for return values.
931
932 2005-07-09  Colin Walters  <walters@verbum.org>
933
934         * glib/dbus-gparser.c (parse_annotation): Add annotations to
935         argument if available, not method.
936
937         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
938         (invoke_object_method): First, remove some redundant
939         GValues (object_value, error_value) in favor of working on
940         array directly.  Second, rework constness to be less buggy.
941         Now we iterate directly over the argument metadata instead
942         of parallel iterating over output signature and metadata.
943
944         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
945
946         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
947         annotation on input args.
948         
949 2005-07-09  Colin Walters  <walters@verbum.org>
950
951         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
952         Define.
953
954         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
955         annotation.
956
957         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
958         (method_dir_signature_from_object_info): Handle arg_iterate change.
959         (write_interface): Ditto.
960         (lookup_object_info): Don't barf if format_version is > 0.
961         (invoke_object_method): Handle arg constness.
962
963         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
964         (arg_info_new): Create.
965         (arg_info_unref): Destroy.
966         (arg_info_get_annotations, arg_info_get_annotation) 
967         (arg_info_add_annotation): New functions.
968
969         * glib/dbus-gidl.h: Prototype them.
970
971         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
972         args, disallow them in properties.
973         (parse_annotation): Handle arg annotations.
974
975         * test/glib/test-service-glib.xml: 
976         * test/glib/test-service-glib.c: Update to make some methods
977         const.
978
979 2005-07-08  Colin Walters  <walters@verbum.org>
980
981         * test/glib/test-service-glib.xml: 
982         * test/glib/test-service-glib.c:
983         * test/glib/test-dbus-glib.c: Test a{sv}.
984
985         * glib/examples/statemachine/statemachine.c:
986         * glib/examples/statemachine/statemachine-server.c:
987         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
988         add progress bar, etc.
989
990         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
991         needed anymore due to generic array/map marshalling.
992         (dbus_g_value_types_init): Don't register basic arrays or the
993         string/string hash.
994         (dbus_gtype_from_signature_iter): Don't try to recurse into
995         variants.
996         (dbus_gtype_to_signature): Check collection/map before type
997         metadata.
998         (demarshal_garray_basic): Renamed to demarshal_collection_array.
999         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1000         generic map creation/append functions instead of hash table
1001         specifically.
1002         (get_type_demarshaller): Handle maps.
1003         (demarshal_collection): Dispatch on collection type to either
1004         demarshal_collection_ptrarray or demarshal_collection_array.
1005         (get_type_marshaller): Handle maps.
1006         (marshal_collection): Dispatch collection type to either
1007         marshal_collection_ptrarray or marshal_collection_array.
1008         (_dbus_gvalue_test): New test.
1009
1010         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1011         (hash_free_from_gtype): Use it to free GValues.
1012         (hashtable_append): New function.
1013         (ptrarray_append): Fix prototype.
1014         (slist_append): Ditto.
1015         (_dbus_gvalue_utils_test): Extend tests.
1016
1017         * glib/dbus-gtype-specialized.c
1018         (dbus_g_type_specialized_init_append): Renamed from
1019         dbus_g_type_specialized_collection_init_append.  Remove const from
1020         value, since we steal it.
1021         (dbus_g_type_specialized_map_append): New function.
1022
1023         * glib/dbus-gtype-specialized.h: Update prototypes.
1024         Add DBusGTypeSpecializedMapAppendFunc.
1025
1026         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1027         _dbus_gvalue_test.
1028         
1029         * glib/dbus-gtest.h: Prototype it.
1030
1031 2005-07-08  Ross Burton  <ross@openedhand.com>
1032
1033         * dbus/dbus-glib.h:
1034         Add DBysGAsyncData for the async bindings.
1035
1036         * glib/dbus-binding-tool-glib.c:
1037         Re-enable the async bindings.
1038
1039         * test/glib/test-dbus-glib.c:
1040         Add a test for the generated async bindings.
1041
1042 2005-07-08  Colin Walters  <walters@verbum.org>
1043
1044         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1045         connection concept.
1046         
1047 2005-07-08  Colin Walters  <walters@verbum.org>
1048         
1049         * tools/Makefile.am: Kill of print-introspect in favor of using
1050         dbus-send --print-reply=literal.
1051
1052         * test/glib/test-service-glib.xml: 
1053         * test/glib/test-service-glib.c (my_object_get_objs): New test
1054         for "ao".
1055
1056         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1057         (main): Test GetObjs.
1058
1059         * glib/examples/statemachine/Makefile.am:
1060         * glib/examples/statemachine/sm-marshal.list:
1061         * glib/examples/statemachine/statemachine-client.c:
1062         * glib/examples/statemachine/statemachine-server.c:
1063         * glib/examples/statemachine/statemachine-server.xml:
1064         * glib/examples/statemachine/statemachine.c:
1065         * glib/examples/statemachine/statemachine.h:
1066         * glib/examples/statemachine/statemachine.xml:
1067
1068         New example.
1069
1070         * glib/examples/example-service.c (main): Move invocation
1071         of dbus_g_object_type_install_info earlier, to emphasize it
1072         should only be done once.
1073
1074         * glib/examples/example-signal-emitter.c (main): Ditto.
1075
1076         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1077
1078         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1079         (dbus_gvalue_marshal): Update prototypes.
1080
1081         * glib/dbus-gvalue.c: Update all marshalling functions to take
1082         const GValue instead of GValue.
1083         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1084         types.
1085         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1086         change.
1087         (dbus_gtype_to_signature): Handle generic collecitons and maps.
1088         Return a newly-allocated string.
1089         (demarshal_proxy, demarshal_object_path, demarshal_object)
1090         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1091         we get the wrong types from message.
1092         (get_type_demarshaller): New function, extracted from
1093         dbus_gvalue_demarshal.
1094         (demarshal_collection): New function, demarshals generic
1095         collection.
1096         (dbus_gvalue_demarshal): Just invoke result of
1097         get_type_demarshaller.  Throw error if we don't have one.
1098         (marshal_garray_basic): Abort on OOM.
1099         (get_type_marshaller): New function, extracted from
1100         dbus_gvalue_marshal.
1101         (collection_marshal_iterator, marshal_collection): New functions;
1102         implements generic marshalling for an iteratable specialized
1103         collection.
1104         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1105
1106         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1107         G_TYPE_STRING.
1108         (ptrarray_value_from_gvalue): Ditto.
1109         (ptrarray_append, ptrarray_free): New functions.
1110         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
1111         (slist_append, slist_end_append, slist_free): New functions.
1112         (dbus_g_type_specialized_builtins_init): Add append fuctions
1113         for GPtrArray and GSList.  Register GSList.
1114         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1115
1116         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1117         New.
1118         (dbus_g_type_specialized_collection_init_append)
1119         (dbus_g_type_specialized_collection_append)
1120         (dbus_g_type_specialized_collection_end_append): Prototype.
1121         (DBusGTypeSpecializedCollectionVtable): Add append_func and
1122         end_append_func.
1123
1124         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
1125         (dbus_g_type_specialized_collection_append) 
1126         (dbus_g_type_specialized_collection_end_append): New functions.
1127         (dbus_g_type_map_value_iterate): Take const GValue.
1128         (dbus_g_type_collection_value_iterate): Ditto.
1129
1130         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1131         _dbus_gvalue_utils_test.
1132         
1133         * glib/dbus-gtest.h: Prototype it.
1134
1135         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1136         using uninitialized owner_list.
1137         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1138         public API.
1139         (dbus_g_proxy_end_call_internal): Update to use error set
1140         from dbus_gvalue_demarshal instead of setting it here.
1141         (dbus_g_proxy_begin_call): Move return_if_fail here.
1142
1143         * glib/dbus-gobject.c (write_interface): Update for
1144         dbus_gtype_to_signature returning new string.
1145
1146         * configure.in: Add glib/examples/statemachine.
1147
1148 2005-07-08  Joe Shaw  <joeshaw@novell.com>
1149
1150         * configure.in: Add a configure option, --with-console-auth-dir
1151         
1152         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1153         new setting.  Patch from Kay Sievers.
1154
1155 2005-07-06  Colin Walters  <walters@verbum.org>
1156
1157         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1158         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1159         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1160         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1161         Delete in favor of dbus_g_proxy_begin_call and
1162         dbus_g_proxy_cancel_call.
1163         (DBusGProxyCall, DBusGProxyCallNotify): New.
1164         (dbus_g_proxy_begin_call): Change prototype to take callback, user
1165         data, and destroy function.  This replaces
1166         dbus_g_pending_call_set_notify.
1167         (dbus_g_proxy_cancel_call): Prototype.
1168         (DBusGAsyncData): Delete, shouldn't be needed anymore.
1169
1170         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1171         pending_calls map.
1172         (struct _DBusGProxyManager): Add bus_proxy member, which is an
1173         internal proxy for calls to the bus. Remove
1174         pending_nameowner_calls, now the internal proxy keeps track.
1175         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1176         pending_nameowner_calls.
1177         (got_name_owner_cb): Update prototype, and use
1178         dbus_g_proxy_end_call.
1179         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1180         (dbus_g_proxy_manager_register): Delete directly libdbus code in
1181         favor of using internal proxy.
1182         (dbus_g_proxy_manager_unregister): Update to use
1183         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1184         (dbus_g_proxy_init): Initialize pending calls map.
1185         (dbus_g_proxy_constructor): New.
1186         (dbus_g_proxy_class_init): Add get/set property functions,
1187         constructor, and add NAME, PATH, and INTERFACE properties.
1188         (cancel_pending_call): New function.
1189         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1190         cancel them.
1191         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1192         (GPendingNotifyClosure): New structure.
1193         (d_pending_call_notify, d_pending_call_free): Moved here from
1194         dbus-glib.c.
1195         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1196         ordering.
1197         (manager_begin_bus_call): New internal function for talking to
1198         internal bus proxy.
1199         (dbus_g_proxy_new): Construct object using GObjet properties.
1200         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1201         Create closure of same, and insert call into map of pending calls.
1202         (dbus_g_proxy_end_call_internal): Take call id instead of pending
1203         call.  Look up pending call in current set.  Remove it when we've
1204         completed.
1205         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1206         (dbus_g_proxy_begin_call): Change API to take callback, user data,
1207         and destroy function directly.
1208         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1209         (dbus_g_proxy_call): Invoke with NULL callback.
1210         (dbus_g_proxy_cancel_call): New function, replaces
1211         dbus_g_pending_call_cancel.
1212
1213         * glib/dbus-gparser.c (validate_signature): Fix call to
1214         dbus_set_g_error.
1215
1216         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1217         New quark for attaching metadata to GType.
1218         (info_hash): Delete.
1219         (lookup_object_info): Look up using quark.
1220         (dbus_g_object_type_install_info): Check that a type is classed,
1221         not that it's an object.  Also just install type data using quark
1222         instead of using global hash.
1223
1224         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
1225         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1226         (GPendingNotifyClosure): Delete.
1227         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1228         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1229
1230         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1231         client method generation until we can fix it...
1232         
1233         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1234         (load_from_service_thread_func): Ditto.
1235
1236         * tools/dbus-names-model.c (struct NamesModel): Hold
1237         DBusGProxyCall.
1238         (have_names_notify): Update prototype, use
1239         dbus_g_proxy_cancel_call.
1240         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1241
1242         * tools/dbus-monitor.c (filter_func): Update for print_message
1243         API change.
1244
1245         * test/glib/test-dbus-glib.c: Add more tests for async
1246         invocations.  Update many begin_call/end_call pairs to just use
1247         dbus_g_proxy_call.
1248
1249         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
1250         allows us to dump print-introspect.c.
1251
1252         * tools/dbus-print-message.h (print_message): Add literal argument
1253         to print_message which is intended to allow printing arguments without
1254         metadata like "string=".
1255
1256         * tools/dbus-print-message.c (print_iter): Add literal argument.
1257         (print_message): Allow printing string messages literally.
1258
1259 2005-07-05  Colin Walters  <walters@verbum.org>
1260
1261         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1262         Remove value refcount leak, original patch from Jorn Baayen
1263         <jorn@openedhand.com>.  Also remove useless extra value in favor
1264         of prepending to value array directly.
1265
1266 2005-07-02  Colin Walters  <walters@verbum.org>
1267
1268         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1269
1270 2005-07-01  Colin Walters  <walters@verbum.org>
1271
1272         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1273         
1274         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1275         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1276         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1277         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1278
1279 2005-06-30  Colin Walters  <walters@verbum.org>
1280
1281         * test/glib/test-dbus-glib.c:
1282         * test/glib/test-service-glib.c:
1283         * test/glib/test-service-glib.xml: Update tests for new error
1284         setting bits, also add async tests (patch from Ross Burton).
1285
1286         * test/glib/Makefile.am (test_service_glib_LDADD): Add
1287         DBUS_GLIB_THREADS_LIBS.
1288
1289         * glib/dbus-gproxy.c (get_name_owner)
1290         (dbus_g_pending_call_end_valist): Ditto.
1291
1292         * glib/dbus-gobject.c (error_metadata): New mapping from GError
1293         domain (GQuark) to DBusGErrorInfo.  
1294         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
1295         quark in error_metadata.  Take message interface as default
1296         error message interface.
1297         (gerror_to_dbus_error_message): Pass message interface.
1298         (dbus_set_g_error): Resurrected.
1299         (dbus_g_error_info_free): New function.
1300         (dbus_g_object_type_install_info): Use g_type_class_ref instead
1301         of _peek to actually create the object class if it hasn't been
1302         created yet.
1303         (dbus_g_error_domain_register): New function.
1304
1305         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
1306
1307         * glib/dbus-gparser.c (validate_signature): Ditto.
1308
1309         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
1310         (dbus_g_error_domain_register): Prototype.
1311
1312         * glib/dbus-glib.c (dbus_g_error_set): Delete.
1313         Update tests.
1314
1315 2005-06-29  Colin Walters  <walters@verbum.org>
1316
1317         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
1318         DBUS_TYPE_G_OBJECT_PATH.
1319
1320         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
1321         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
1322         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
1323         (dbus_g_object_path_get_g_type): New function.
1324         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
1325         to DBUS_TYPE_G_OBJECT_PATH by default.
1326         (demarshal_proxy): Remove unused name variable.
1327         (demarshal_object_path, marshal_object_path): New functions.
1328         (demarshal_proxy_array, marshal_proxy_array): Delete.
1329         
1330         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
1331         DBUS_TYPE_G_OBJECT_PATH to char *.
1332         (dbus_g_type_get_lookup_function): Map builtin
1333         DBUS_TYPE_G_OBJECT_PATH.
1334
1335         * test/glib/test-dbus-glib.c
1336         * test/glib/test-service-glib.c (my_object_objpath): 
1337         Adapt tests to new object path marshalling.
1338
1339 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
1340
1341         * configure.in: force check for Python >= 2.4
1342
1343 2005-06-29  Colin Walters  <walters@verbum.org>
1344         
1345         Patch from Ross Burton <ross@openedhand.com>
1346         
1347         * glib/dbus-gobject.c (invoke_object_method): Unset object
1348         value in all cases, not only in async case.
1349
1350 2005-06-29  Colin Walters  <walters@verbum.org>
1351
1352         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
1353         name_call for keeping track of any outgoing GetNameOwner call.
1354         Also add for_owner and associated.
1355         (struct _DBusGProxyManager): Add owner_names, which is hash table
1356         that maps a base name to a list of names it owns (that we're
1357         interested in).  Add pending_nameowner_calls which is a list of
1358         all outstanding GetNameOwner; avoids us having to iterate over
1359         every proxy.  Add unassociated_proxies which keeps track of name
1360         proxies with no associated name owner.
1361         (dbus_g_proxy_manager_unref): Destroy owner_names.
1362         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
1363         name refcounts.
1364         (find_name_in_info, name_owner_foreach)
1365         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
1366         (dbus_g_proxy_manager_monitor_name_owner)
1367         (dbus_g_proxy_manager_unmonitor_name_owner)
1368         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
1369         New functions; they manipulate the owner_names mapping.
1370         (got_name_owner_cb): New function.
1371         (get_name_owner): New function, extracted from
1372         dbus_g_proxy_new_for_name_owner.
1373         (dbus_g_proxy_manager_register): For now we need to keep track of
1374         all NameOwnerChanged.  Also if the proxy is for a name, if we
1375         don't already know the name owner, queue a new GetNameOwner
1376         request and add it to our list of unassociated proxies.  Otherwise
1377         inc the refcount.
1378         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
1379         cancel any pending GetNameOwner call, etc.
1380         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
1381         the owner_names mapping to look up the current names for the
1382         signal source, and dispatch to any proxies for that name.
1383         (dbus_g_proxy_new): Initialize new members.
1384         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
1385         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
1386         (dbus_g_pending_call_end_valist): New function, extracted from
1387         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
1388         but want to use the GLib infrastructure.  Also note how many
1389         arguments in reply were over.
1390         (dbus_g_pending_call_end): New function, just call
1391         dbus_g_pending_call_end_valist.
1392         (dbus_g_proxy_end_call_internal): Just call
1393         dbus_g_pending_call_end_valist.
1394
1395         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
1396         of builtin marshaller for STRING_STRING_STRING.
1397
1398         * test/glib/test-dbus-glib.c: 
1399         * test/glib/test-service-glib.c:
1400         * test/glib/test-service-glib.xml:
1401         Extend tests to cover name proxies, destruction of owner proxies,
1402         etc.
1403         
1404         * glib/examples/example-signal-recipient.c
1405         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
1406         
1407         * tools/dbus-send.c (main): Print D-BUS error name in addition
1408         to message.
1409
1410 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
1411
1412         * python/dbus_bindings.pyx.in (cunregister_function_handler,
1413         cmessage_function_handler): Patch from 
1414         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
1415         by using the Py_GILState_Ensure/Release to synchronize with the
1416         python runtime.
1417         
1418 2005-06-28  Ray Strode  <rstrode@redhat.com>
1419
1420         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
1421         babysitter helper process on last unref, bug #2813.
1422
1423 2005-06-27  Colin Walters  <walters@verbum.org>
1424
1425         * test/glib/test-dbus-glib.c: 
1426         * test/glib/test-service-glib.c:
1427         * test/glib/test-service-glib.xml:
1428         Test hash table signal emitting.
1429
1430         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
1431         types to their fundamental basis types, since this is what
1432         marshallers operate on.  Also add an entry for VOID__BOXED.
1433         (dbus_g_object_register_marshaller_array): Convert to fundamental.
1434
1435 2005-06-26  Havoc Pennington  <hp@redhat.com>
1436
1437         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
1438         from Don Park
1439
1440 2005-06-26  Colin Walters  <walters@verbum.org>
1441
1442         * glib/dbus-glib.c (dbus_set_g_error): Delete.
1443         (dbus_g_error_set): New public function from its ashes; used by
1444         both service-side method implementation and GLib bindings
1445         internals.
1446         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
1447         (_dbus_glib_test): Add some tests.
1448
1449         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
1450
1451         * test/glib/test-service-glib.c (my_object_throw_error): Use
1452         dbus_g_error_set.
1453
1454         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
1455         errors thrown by dbus_g_error_set.
1456
1457         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
1458
1459         * glib/dbus-gparser.c (validate_signature): Ditto.
1460
1461         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
1462         (dbus_g_proxy_end_call_internal): Ditto.
1463
1464         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
1465         converts DBUS_ERROR_x to DBUS_GERROR_x.
1466         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
1467
1468         * doc/TODO: Remove error TODO.
1469
1470         * doc/dbus-tutorial.xml: Update with documentation about error
1471         handling.
1472
1473         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
1474         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
1475         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
1476
1477 2005-06-22  Colin Walters  <walters@verbum.org>
1478         
1479         Patch from Ross Burton <ross@openedhand.com>
1480
1481         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
1482
1483 2005-06-20  Colin Walters  <walters@verbum.org>
1484
1485         * configure.in: Add glib/examples.
1486
1487         * glib/Makefile.am: Add examples/
1488
1489         * glib/examples/.cvsignore
1490         * glib/examples/Makefile.am
1491         * glib/examples/example-client.c
1492         * glib/examples/example-service.c
1493         * glib/examples/example-service.xml
1494         * glib/examples/example-signal-emitter.c
1495         * glib/examples/example-signal-emitter.xml
1496         * glib/examples/example-signal-recipient.c:
1497         New files; GLib binding examples, ported from
1498         python/examples.
1499
1500 2005-06-20  Colin Walters  <walters@verbum.org>
1501
1502         * dbus/dbus-glib.h: 
1503         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
1504         dbus_g_proxy_call.
1505
1506         * glib/dbus-binding-tool-glib.c: 
1507         * doc/dbus-tutorial.xml: 
1508         * test/glib/test-dbus-glib.c: Update for rename.
1509         
1510 2005-06-20  Colin Walters  <walters@verbum.org>
1511
1512         Patch suggested by Ross Burton <ross@openedhand.com>
1513
1514         * glib/dbus-gobject.c (export_signals): Free signal name.
1515         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
1516         memory leak.  Add a bit of documentation.
1517         (dbus_g_method_return_error): Free context, and note we do
1518         so.
1519
1520 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
1521
1522         * dbus/dbus-glib.h:
1523         * glib/dbus-gobject.c:
1524         * glib/dbus-gproxy.c:
1525         * glib/dbus-gvalue.c: Predeclare structs as 
1526         typedef struct _Something Something instead of 
1527         typedef struct Something Something, so we can 
1528         redeclare the prototypes. Other GNOME libraries 
1529         do this already.
1530
1531 2005-06-17  Colin Walters  <walters@verbum.org>
1532
1533         * tools/dbus-names-model.c (have_names_notify): Fix call
1534         to dbus_g_proxy_end_call.
1535         
1536 2005-06-17  Colin Walters  <walters@verbum.org>
1537
1538         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
1539         spew warnings if we get malformed remote signals.
1540
1541         * glib/dbus-gobject.c (propsig_iterate): New function.
1542         (lookup_object_info): New function, extracted from
1543         lookup_object_and_method.
1544         (introspect_properties, introspect_signals): Delete; these
1545         are merged into write_interface.
1546         (write_interface): Write out signals and properties here;
1547         dump the org.gtk.object stuff and use the interface given
1548         in the introspection data blob.  Also fix up property XML.
1549         (lookup_values): New function.
1550         (introspect_interfaces): Gather a mapping from interface to a
1551         list of its methods, signals, and properties, then write out
1552         each interface.
1553         (lookup_object_and_method): Use lookup_object_info.
1554         (struct DBusGSignalClosure): Add interface.
1555         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
1556         we can just use the constant data.
1557         (dbus_g_signal_closure_finalize): Don't free signal name.
1558         (signal_emitter_marshaller): Use interface from signal closure.
1559         (export_signals): Only export signals mentioned in introspection
1560         blob.
1561         (dbus_g_connection_register_g_object): Warn if we have no
1562         introspection data for an object.
1563         (funcsig_equal): Remove unused variable.
1564         (dbus_g_object_register_marshaller): Take varargs instead of
1565         list.
1566         (dbus_g_object_register_marshaller_array): New function,
1567         extracted from old dbus_g_object_register_marshaller.
1568
1569         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
1570         signals and property data.
1571         (write_quoted_string): New function, extracted from generate_glue.
1572         (generate_glue): Write signals and properties to introspection
1573         blob.
1574
1575         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
1576         exported_signals and exported_properties.
1577         (dbus_g_object_register_marshaller): Update prototype.
1578         (dbus_g_object_register_marshaller_array): Prototype.
1579         
1580         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
1581
1582         * test/glib/test-service-glib.c: Add new test signals and method
1583         to emit them.
1584
1585         * test/glib/test-service-glib.xml: Add some test signals.
1586
1587         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
1588         and my-object-marshal.h
1589         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
1590         my-object-marshal.c.
1591         (my-object-marshal.c, my-object-marshal.h): Implement.
1592
1593         * test/glib/.cvsignore: Update.
1594
1595         * doc/TODO: Remove two GLib TODO items fixed by this
1596         patch.
1597
1598 2005-06-16  Colin Walters  <walters@verbum.org>
1599
1600         * doc/TODO: Update for GLib bindings.
1601         
1602 2005-06-16  Colin Walters  <walters@verbum.org>
1603
1604         * glib/dbus-binding-tool-glib.c:
1605         * glib/dbus-gobject.c:
1606         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
1607         from Ross Burton, for his GLib bindings work.
1608
1609 2005-06-16  Colin Walters  <walters@verbum.org>
1610
1611         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
1612         to iterate instead of walking to G_TYPE_INVALID.
1613
1614         Patch based on a patch from Ryan Gammon.
1615
1616 2005-06-16  Colin Walters  <walters@verbum.org>
1617
1618         * bus/bus.c (bus_context_new): Set parser to NULL
1619         after we unref it (Patch from Chris Boscolo, #2174).
1620         
1621 2005-06-16  Colin Walters  <walters@verbum.org>
1622
1623         * python/dbus_bindings.pyx.in: Import size_t,
1624         __int64_t, __uint64_t, and __signed.
1625
1626         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
1627         Define cmsg struct, output it.
1628         (_dbus_read_credentials_unix_socket):
1629         Use cmsg struct.
1630         
1631         Patch from Joe Markus Clarke for FreeBSD support.
1632         
1633 2005-06-16  Colin Walters  <walters@verbum.org>
1634
1635         * tools/dbus-send.c (append_array): Use strtok.
1636         (append_dict): New function.
1637         (type_from_name): New function, extracted from main.
1638         (main): Handle sending dicts.
1639
1640         * tools/dbus-print-message.c (print_iter): Print dict
1641         entries.
1642         
1643 2005-06-16  Colin Walters  <walters@verbum.org>
1644
1645         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
1646         values as the empty string (#2948).
1647         
1648 2005-06-16  Colin Walters  <walters@verbum.org>
1649
1650         * dbus/Makefile.am:
1651         * mono/doc/Makefile.am:
1652         * test/glib/Makefile.am:
1653
1654         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
1655
1656 2005-06-16  Colin Walters  <walters@verbum.org>
1657
1658         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
1659         header byte order from expected byte order (Patch from Chris Wilson, #3475).
1660
1661         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
1662         Increment pointer after swapping fixed array.  Add assertion
1663         for array length.
1664                 
1665 2005-06-15  Colin Walters  <walters@verbum.org>
1666
1667         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
1668         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
1669         
1670 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1671
1672         * NEWS: Update to 0.34
1673
1674 2005-06-15  David Zeuthen  <davidz@redhat.com>
1675
1676         * configure.in (LT_CURRENT): Revert back to 1 as the library
1677         hasn't changed and we've certainly not committed to protocol
1678         stability yet.  All this does is to break ABI. See commit note
1679         from hp@redhat.com 2005-05-05 for details.
1680         
1681 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1682
1683         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
1684         (_dbus_connection_run_builtin_filters): New method
1685         (dbus_connection_dispatch): Run the builtin filters which in turn
1686         runs the peer filter which handles Ping messages.
1687
1688         * doc/TODO: 
1689          - Ping isn't handled: This patch fixes it
1690          
1691          - Add a test case for the Ping message: added TODO item
1692
1693 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1694
1695         * dbus/dbus-message.c:
1696         (dbus_message_has_path): New method
1697         (dbus_message_has_interface): New method
1698         (dbus_message_has_member): New method
1699
1700         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
1701         New method
1702
1703         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
1704         the keyring directory is private to the user
1705
1706         * doc/TODO:
1707          - The convenience functions in dbus-bus.h should perhaps have
1708          the signatures that they would have if they were autogenerated
1709          stubs. e.g. the acquire service function. We should also evaluate
1710          which of these functions to include, in light of the fact that
1711          GLib/Qt native stubs will probably also exist.: Punted
1712
1713          - add dbus_message_has_path(), maybe has_member/interface:
1714          fixed in this patch
1715
1716          - in dbus-keyring.c, enforce that the keyring dir is not
1717          world readable/writable: Fixed in this patch
1718
1719 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1720
1721         * dbus/dbus-marshal-validate.h: Added a new validation
1722         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
1723         out of memory errors when validating signitures
1724
1725         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
1726         in places where we previously used DBUS_VALID and a FALSE return 
1727         value to indicate OOM
1728         
1729         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
1730         Use a stack to track the number of elements inside containers.  The 
1731         stack values are then used to validate that dict entries have only two
1732         elements within them.
1733         (validate_body_helper): check the reason for failure when validating
1734         varients
1735         
1736         * dbus/dbus-message.c (load_message): use 
1737         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
1738         DBUS_VALID and a FALSE return value to indicate OOM
1739
1740         * doc/TODO: remove "- validate dict entry number of fields" as this
1741         patch fixes it
1742
1743 2005-06-14  David Zeuthen  <davidz@redhat.com>
1744
1745         * bus/bus.c (process_config_every_time): Drop existing conf-dir
1746         watches (if applicable) and add new watches
1747
1748         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
1749         (main): Setup SIGIO signal handler if using D_NOTIFY
1750
1751         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
1752
1753         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
1754         (merge_included): Also merge conf_dirs list
1755         (bus_config_parser_unref): Clear conf_dirs list
1756         (include_dir): Add directory to conf_dirs list
1757         (bus_config_parser_get_conf_dirs): New function
1758
1759         * bus/dir-watch.[ch]: New files
1760
1761         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
1762
1763         * configure.in: Add checks for D_NOTIFY on Linux
1764
1765 2005-06-14  Colin Walters  <walters@verbum.org>
1766
1767         * glib/dbus-binding-tool-glib.c:
1768         * glib/dbus-gobject.c:
1769         * glib/dbus-gvalue.c: Fix indentation and brace style.
1770         
1771 2005-06-14  Ross Burton <ross@openedhand.com>.
1772
1773         * glib/dbus-glib.h: Make DBusGMethodInvocation
1774         a private structure.  Rearrange prototypes a bit.
1775         
1776         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
1777         documentation for first_arg_type.
1778         
1779         * glib/dbus-gobject.c: Move DBusGMethodInvocation
1780         here, add documentation.  Move dbus_g_method_return
1781         and dbus_g_method_return_error into public API
1782         section.
1783
1784 2005-06-14  Colin Walters  <walters@verbum.org>
1785
1786         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
1787         Add missing return statements, noticed by Ross Burton.
1788         
1789 2005-06-13  Ross Burton <ross@openedhand.com>.
1790
1791         * glib/dbus-gobject.c: Handle errors on message
1792         demarshalling by sending error message back.
1793         * glib/dbus-gvalue.c: Initialize return variables.
1794
1795 2005-06-13  Colin Walters  <walters@verbum.org>
1796
1797         * glib/Makefile.am: Fix thinko in last patch.
1798
1799 2005-06-13  Colin Walters  <walters@verbum.org>
1800
1801         * glib/Makefile.am: Move dbus-gtype-specialized.c
1802         and dbus-gtype-specialized.h into a _HEADERS variable,
1803         install them.
1804
1805 2005-06-12  Colin Walters  <walters@verbum.org>
1806
1807         Async signals and various bugfixes and testing by
1808         Ross Burton <ross@openedhand.com>.
1809
1810         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
1811         (dbus_gvalue_genmarshal_name_from_type)
1812         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
1813         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
1814         (dbus_g_value_types_init, dbus_gtype_from_signature)
1815         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
1816         (dbus_gtypes_from_arg_signature): New function prototypes.
1817         (dbus_gvalue_demarshal): Take context and error arguments.
1818         (dbus_gvalue_demarshal_variant): New function.
1819         (dbus_gvalue_demarshal_message): New function.
1820         (dbus_gvalue_store): Delete.
1821
1822         * glib/dbus-gvalue.c:
1823
1824         File has been almost entirely rewritten; now we special-case
1825         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
1826         hash tables correctly, etc.  Full support for recursive values
1827         is not yet complete.
1828
1829         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
1830         argument of signal to G_TYPE_POINTER since we now pass a
1831         structure.
1832         (lookup_g_marshaller): Delete in favor of
1833         _dbus_gobject_lookup_marshaller.
1834         (marshal_dbus_message_to_g_marshaller): Use
1835         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
1836         to handle remote signal callbacks.
1837         (dbus_g_proxy_new_from_proxy): New function; creates a new
1838         DBusGProxy by copying an existing one.
1839         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
1840         (dbus_g_proxy_get_path): New functions.
1841         (dbus_g_proxy_marshal_args_to_message): New function;
1842         factored out of existing code.
1843         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
1844         from a varargs array.
1845         (dbus_g_proxy_begin_call_internal): New function.
1846         (dbus_g_proxy_end_call_internal): New function.
1847         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
1848         as arguments; simply invoke dbus_g_proxy_begin_call_internal
1849         after collecting args into value array.
1850         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
1851         invoke dbus_g_proxy_end_call_internal.
1852         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
1853         end_call_internal.
1854         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
1855         types.
1856         (array_free_all): New function.
1857         (dbus_g_proxy_add_signal): Take GTypes.
1858
1859         * glib/dbus-gobject.h:
1860         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1861         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
1862         Prototype.
1863
1864         * glib/dbus-gobject.c: Add a global marshal_table hash which
1865         stores mappings from type signatures to marshallers.  Change lots
1866         of invocations of dbus_gtype_to_dbus_type to
1867         dbus_gtype_to_signature.
1868         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1869         (introspect_signals): Fix test for query.return_type.
1870         (set_object_property): Update invocation of dbus_gvalue_demarshal.
1871         (invoke_object_method): Many changes.  Handle asynchronous
1872         invocations.  Convert arguments with
1873         dbus_gvalue_demarshal_message.  Handle errors.  Use
1874         DBusSignatureIter instead of strlen on args. Handle all arguments
1875         generically.  Special-case variants.
1876         (dbus_g_method_return, dbus_g_method_return_error): New function.
1877         (DBusGSignalClosure): New structure, closes over signal
1878         information.
1879         (dbus_g_signal_closure_new): New function.
1880         (dbus_g_signal_closure_finalize): New function.
1881         (signal_emitter_marshaller): New function; is special marshaller
1882         which emits signals on bus.
1883         (export_signals): New function; introspects object signals and
1884         connects to them.
1885         (dbus_g_object_type_install_info): Take GType instead of
1886         GObjectClass.
1887         (dbus_g_connection_register_g_object): Invoke export_signals.
1888         (dbus_g_connection_lookup_g_object): New function.
1889         (DBusGFuncSignature) New structure; used for mapping type
1890         signatures to marshallers.
1891         (funcsig_hash): New function; hashes DBusGFuncSignature.
1892         (funcsig_equal): New function; compares DBusGFuncSignature.
1893         (_dbus_gobject_lookup_marshaller): New function.
1894         (dbus_g_object_register_marshaller): New function; used to
1895         register a marshaller at runtime for a particular signature.
1896
1897         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
1898
1899         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
1900         which notes a server method implementation should be
1901         asynchronous.
1902
1903         * glib/dbus-binding-tool-glib.c
1904         (dbus_binding_tool_output_glib_server): Call
1905         dbus_g_value_types_init.
1906         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
1907         variants specially.
1908         (dbus_g_type_get_lookup_function): Turn GType into an invocation
1909         of a lookup function.
1910         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
1911         (write_untyped_out_args): New method; write output arguments.
1912         (write_formal_declarations_for_direction): Function for
1913         writing prototypes.
1914         (write_formal_parameters_for_direction): Function for
1915         writing implementations.
1916         (write_typed_args_for_direction): Function for writing
1917         arguments prefixed with GTypes.
1918         (write_async_method_client): Write out async version
1919         of method.
1920
1921         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
1922         (dbus_g_type_get_marshal_name): Move mapping from GType
1923         to marshal name into here.
1924         (dbus_g_type_get_c_name): Move into here.
1925         (compute_marshaller): Convert signature to type with
1926         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
1927         (compute_marshaller_name): Ditto.
1928         (compute_marshaller): Handle async signal annotations.
1929         (gather_marshallers): Return if we don't have a known
1930         prefix.
1931         (generate_glue): Collect introspection blob here, and
1932         write all of the blob at the end.  This allows an object
1933         with multiple interfaces to work.
1934         Mark async methods in introspection blob.
1935
1936         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
1937         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
1938         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
1939
1940         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
1941         avoids people accidentally using DBUS_TYPE_* which should
1942         not be necessary anymore.
1943         Do include dbus-gtype-specialized.h, which are utilities
1944         for GLib container types.
1945         Add various #defines for types such as
1946         DBUS_TYPE_G_BOOLEAN_ARRAY.
1947         (DBusGValueIterator, DBusGValue): Define, not fully used
1948         yet.
1949         (dbus_g_value_get_g_type): Type for recursive value.
1950         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1951         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1952         (dbus_g_value_free): Prototypes.
1953         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
1954         (dbus_g_proxy_set_interface): Prototype.
1955         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
1956         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
1957         types.
1958         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
1959         Accessors.
1960         (DBusGAsyncData, DBusGMethodInvocation): Structures for
1961         doing async invocations.
1962         (dbus_g_method_return, dbus_g_method_return_error):
1963         Prototypes.
1964         * doc/dbus-tutorial.xml: Update GLib section.
1965         
1966         * tools/dbus-viewer.c (load_child_nodes): Update
1967         for new invocation type of dbus_g_proxy_end_call.
1968         (load_from_service_thread_func): Ditto.
1969
1970         * tools/print-introspect.c (main): Ditto.
1971
1972         * tools/dbus-names-model.c (have_names_notify)
1973         (names_model_reload, names_model_set_connection)
1974         Use GTypes.
1975
1976         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
1977         needed since Python bindings use GLib bindings.
1978
1979         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
1980         Add --prefix argument.
1981
1982         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
1983         unneeded --ignore-unsupported arg.
1984         
1985         * test/glib/test-service-glib.c: 
1986         * test/glib/test-service-glib.xml:
1987         * test/glib/test-dbus-glib.c: Add many more tests.
1988
1989 2005-06-06  David Zeuthen  <davidz@redhat.com>
1990
1991         * doc/TODO: Add item about need to remove deprecated functions.
1992
1993         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
1994
1995         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
1996         to repair the ABI which was broken with the last commit.
1997
1998 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
1999
2000         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2001         (dbus_connection_disconnect): renamed to dbus_connection_close 
2002         for API symmetry with dbus_connection_open
2003         (_dbus_connection_open_internal): 
2004         s/dbus_connection_disconnect/dbus_connection_close
2005
2006         * dbus/dbus-bus.c (dbus_bus_get):
2007         s/dbus_connection_disconnect/dbus_connection_close
2008
2009         * bus/connection.c (bus_connections_unref, 
2010         bus_connections_setup_connection, bus_connections_expire_incomplete):
2011         s/dbus_connection_disconnect/dbus_connection_close
2012
2013         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2014         kill_client_connection_unchecked, check_hello_connection):
2015         s/dbus_connection_disconnect/dbus_connection_close
2016
2017         * bus/bus.c (new_connection_callback):
2018         s/dbus_connection_disconnect/dbus_connection_close
2019
2020         * tools/dbus-send.c (main):
2021         s/dbus_connection_disconnect/dbus_connection_close
2022
2023         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2024         s/dbus_connection_disconnect/dbus_connection_close
2025         
2026         * test/test-service.c (path_message_func, filter_func):
2027         s/dbus_connection_disconnect/dbus_connection_close
2028         
2029         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2030         
2031 2005-05-25  Colin Walters  <walters@verbum.org>
2032
2033         * dbus/dbus-protocol.h: Move various bus service #defines such
2034           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2035           dbus/dbus-shared.h.
2036         * dbus/dbus-shared.h: Various defines moved here.
2037         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2038
2039 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
2040
2041         * python/__init__.py: Python bindings deserve a minor version
2042         update.  Upped to (0, 40, 2)
2043
2044 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
2045
2046         * python/decorators.py: add explicitly_pass_message decorator
2047         for passing in the dbus message as keyword for edge case signal
2048         handling
2049
2050         * python/matchrules.py (SignalMatchRule.__repr__): fix output
2051         to conform with what dbus expects for match rules
2052         (SignalMatchRule.execute): add the dbus message as a keyword
2053         if the signal handler has requested it
2054
2055         * python/examples/example/signal-recipient.py: added some more
2056         examples on how to hook up to signals
2057
2058 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
2059
2060         * python/decorators.py: import dbus_bindings
2061
2062         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
2063         SignalMatchNode): new classes that implement wildcard signal
2064         callback matching using a tree lookup. Heavily modified from a
2065         patch sent by Celso Pinto (fd.o bug #3241)
2066
2067         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2068         use new match classes to handle signals.
2069
2070 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
2071         
2072         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2073
2074 2005-05-18  Havoc Pennington  <hp@redhat.com>
2075
2076         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2077         gettext. Not really worth requiring yet perhaps, but any
2078         production quality 1.0 would require it so we should go ahead and
2079         get things set up. We do have a couple token calls to
2080         bindtextdomain in the code already.
2081
2082 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
2083
2084         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2085         when using recursive g_main_loops
2086
2087         * python/_dbus.py (class Bus): add the ProxyObjectClass
2088         alias for ProxyObject to make it easier for the Twisted 
2089         networking framework to integrate dbus.
2090
2091         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2092         alias for ProxyMethod to make it easier for the Twisted 
2093         networking framework to integrate dbus. 
2094
2095 2005-05-11  Ross Burton  <ross@openedhand.com>
2096
2097         * glib/dbus-glib-tool.c: Add --prefix argument.
2098         * glib/dbus-binding-tool-glib.h: Add prefix argument.
2099         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2100         Add prefix argument.
2101         (generate_glue): Pass prefix argument down.
2102         (dbus_binding_tool_output_glib_server): Pass prefix to
2103         glib-genmarshal.
2104         
2105 2005-05-11  Colin Walters  <walters@verbum.org>
2106
2107         * tools/dbus-send.c (append_array): New function.
2108         (append_arg): Broken out from main.
2109         (main): Add cheesy hack to send arrays and variants.
2110         (usage): Update.
2111         * tools/dbus-print-message.c (print_iter): Broken out
2112         from main.
2113
2114 2005-05-11  Colin Walters  <walters@verbum.org>
2115
2116         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2117         New function, returns signature string for signature iter.
2118         * dbus/dbus-signature.h: Prototype it.
2119         * dbus/dbus-message.c (dbus_message_iter_get_signature):
2120         New function, returns signature string for message iter.
2121         (dbus_message_iter_get_array_len): New function, returns
2122         length of array.
2123         (dbus_message_iter_get_fixed_array): Fix assertion; this
2124         function should be used when the iter is pointing to the
2125         contents of an array
2126         * dbus/dbus-message.h: Prototypes.
2127         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2128         New function; returns length of an array.
2129         * dbus/dbus-marshal-recursive.h: Prototype it.
2130         
2131 2005-05-11  Colin Walters  <walters@verbum.org>
2132
2133         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2134         compilation error.
2135         
2136 2005-05-08  Havoc Pennington  <hp@redhat.com>
2137
2138         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2139         daemon's pid, not the parent's pid, to the file descriptor.
2140         Reported by Taj Morton.
2141
2142 2005-05-05  Havoc Pennington  <hp@redhat.com>
2143
2144         * configure.in (LT_*): add notes on how the libtool versioning
2145         works to save thinking. Increment soname to indicate protocol
2146         breakage (though really the library interface hasn't changed I
2147         guess)
2148
2149         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2150         verify the GUID received from server matches what we were
2151         expecting, if we had an expectation
2152
2153         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2154         (_dbus_auth_get_guid_from_server): new function
2155         (send_begin): parse the OK args
2156
2157         * doc/dbus-specification.xml: add GUID to the auth protocol
2158
2159 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
2160
2161         * Fix my name in previous changelog ;)
2162
2163         * python/proxies.py (ProxyObject.__getattr__): add further patch
2164         from Anthony Baxter to throw an AttributeError when python 
2165         __special__ functions are called instead of marshling them over 
2166         the bus (Bug#1685 comment 3).
2167
2168 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
2169
2170         * python/Makefile.am: changed to use pyexecdir for the binding
2171         shared libraries (Bug#2494)
2172
2173         * python/exceptions.py: bring exceptions over from the bindings
2174         so they can be used in applications (Bug#2036)
2175         Make all exceptions derive from DBusException
2176
2177         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2178         of classes so that print obj doesn't throw an exception (Bug #1685)
2179
2180 2005-05-03  Ross Burton  <ross@openedhand.com>
2181
2182         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2183         Return if we get an error during registration.  Set up a
2184         weak reference on object to unregister if object is destroyed.
2185         (unregister_gobject): New function.
2186         
2187 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
2188
2189         * python/dbus_bindings.pyx.in: 
2190         - added new type classes for hinting to the marashaler what type 
2191         to send over the wire
2192         - added int16 and uint16 marshalers
2193         - Fixed a bug in the type constants that caused int32 to go out
2194         as uint16 over the wire
2195         * python/dbus.py: split up into different files and renamed _dbus.py
2196         * python/__init__.py, python/_util.py, python/decorators.py, 
2197         python/exceptions.py, python/proxies.py, python/services.py,
2198         python/types.py: new files split off from dbus.py
2199         * python/Makefile.am: Add new files, remove dbus.py and 
2200         install all python files to <python module dir>/dbus
2201         * python/examples/*: Added #!/usr/bin/env python to the top of
2202         every example.  Patch provided by Tatavarty Kalyan
2203
2204 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2205
2206         * NEWS: Update to 0.33
2207
2208 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2209
2210         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2211         method for doing async calls
2212         (_pending_call_notification): New C function for handling pendning call
2213         callbacks
2214         (set_notify): New method for setting pending call notification
2215         
2216         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2217         Async capabilities added to remote method calls
2218         (Sender): class removed
2219         (RemoteService): class removed
2220         (ObjectTree): class removed for now
2221         (RemoteObject): Renamed to ProxyObject
2222         (RemoteMethod): Renamed to ProxyMethod
2223         (method): Decorator added for decorating python methods as dbus methods
2224         (signal): Decorator added for decorating python methods as signal emitters
2225         (ObjectType): Metaclass added for generating introspection data and the
2226         method callback vtable
2227         (Interface): Wrapper class added to wrap objects in a dbus interface
2228         (Object): Uses ObjectType as its metaclass and exports Introspect
2229         of the org.freedesktop.DBus.Introspectable interface
2230         (ValidationException, UnknownMethodException): new exceptions
2231
2232         * python/examples/*: Modified to fit with the new bindings
2233
2234 2005-04-23  Havoc Pennington  <hp@redhat.com>
2235
2236         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2237         reported by Tony Houghton
2238
2239         * test/test-service.c (main): test
2240         dbus_connection_get_object_path_data()
2241
2242         * dbus/dbus-object-tree.c (find_handler): be sure we always init
2243         the exact_match
2244         (_dbus_object_tree_get_user_data_unlocked): new function used by
2245         dbus_connection_get_object_path_data()
2246         (do_register): add assertion test for get_user_data_unlocked
2247         (object_tree_test_iteration): more tests
2248
2249         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2250         new function from Dan Reed to let you get the user data from 
2251         dbus_connection_register_object_path()
2252
2253 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
2254
2255         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2256         in numerous places that did not account for the NULL terminator
2257         (signature_from_seed): changed the manual string copy loop to 
2258         just use strcpy instead
2259         make check should now pass
2260
2261 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
2262
2263         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2264         so that it allows messages that are not signals to pass in 
2265         NULL as the interface.
2266
2267 2005-04-18  David Zeuthen  <davidz@redhat.com>
2268
2269         * glib/dbus-gmain.c (io_handler_destroy_source): 
2270         (timeout_handler_destroy_source, connection_setup_free): 
2271         Also unref the source to avoid memory leaks.
2272
2273 2005-04-13  David Zeuthen  <davidz@redhat.com>
2274
2275         * bus/config-parser.c (bus_config_parser_new): Bump this to a
2276         more reasonable, yet still totally arbitrary, value :-). 
2277
2278 2005-04-13  David Zeuthen  <davidz@redhat.com>
2279
2280         * doc/TODO: Added an "important for 1.0" item about selinux
2281         allow/deny messages
2282
2283 2005-04-13  David Zeuthen  <davidz@redhat.com>
2284
2285         * bus/selinux.c: Add c-file-style to top of file
2286         (log_audit_callback): Don't free the data here anymore
2287         (bus_selinux_check): Don't take spid and tpid since appending
2288         that to auxdata may OOM.
2289         (bus_selinux_allows_acquire_service): Handle OOM and signal back
2290         to the caller if we are OOM by taking an error object.
2291         (bus_selinux_allows_send): -do-
2292
2293         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
2294         and bus_selinux_allows_send
2295
2296         * bus/bus.c (bus_context_check_security_policy): Pass error and
2297         pass on OOM thrown by bus_selinux_allows_send()
2298
2299         * bus/services.c (bus_registry_acquire_service): Pass error and
2300         pass on OOM thrown by bus_selinux_allows_acquire_service()
2301
2302 2005-04-13  Havoc Pennington  <hp@redhat.com>
2303
2304         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
2305         message at a time to avoid monopolizing the main loop, bug 
2306         #2953 from Benjamin Otte
2307
2308 2005-04-09  Havoc Pennington  <hp@redhat.com>
2309
2310         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
2311         possible overlap, fix from Daniel Reed
2312         (fixup_alignment): fix signedness warnings
2313         (_dbus_string_append_unichar): ditto
2314
2315 2005-04-09  Havoc Pennington  <hp@redhat.com>
2316
2317         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
2318
2319         * glib/dbus-glib-tool.c (main): fix warning
2320
2321         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
2322
2323         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
2324         add a new function that can be used in simple applications that
2325         don't have a main loop and are willing to block
2326
2327 2005-04-05  David Zeuthen  <davidz@redhat.com>
2328
2329         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
2330
2331         * glib/dbus-gmain.c:
2332         (io_handler_destroy_source): Remove from list of IO handlers
2333         of the ConnectionSetup object
2334         (timeout_handler_destroy_source): -do- for timeout handlers
2335         (io_handler_source_finalized): Don't remove from list since
2336         we now do that in io_handler_destroy_source(). Renamed from
2337         io_handler_source_destroyed
2338         (timeout_handler_source_destroyed): -do- for timeout handlers
2339         (connection_setup_free): It is now safe to iterate over all
2340         IO and timeout handlers as the _destroy_source removes them
2341         from the list synchronously
2342
2343 2005-03-30  Havoc Pennington  <hp@redhat.com>
2344
2345         * configure.in: change check to gtk 2.4
2346
2347         * tools/dbus-viewer.c (name_combo_changed_callback): remove
2348         gtk_combo_box_get_active_text() usage to decrement GTK requirement
2349         to 2.4
2350
2351 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
2352
2353         * News: Update 0.32
2354
2355         * HACKING: Fixed realease instructions.  configure.in should be updated to
2356           the next release by the person who made the last release.
2357
2358 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
2359
2360         * python/lvalue_cast_post_process.py - removed.  Patch has been
2361           submitted to Pyrex maintainers that fixes gcc4.0 errors
2362
2363         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
2364
2365 2005-03-24  Daniel Reed  <n@ml.org>
2366
2367         * tools/Makefile.am: Make print-introspect and
2368         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
2369
2370 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
2371
2372         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
2373
2374         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
2375           had in Red Hat packages for a while but for some reason never 
2376           got merged upstream
2377           (_dbus_is_a_number): New checks if a string
2378           can be converted to a number and does the conversion if it can
2379           (_dbus_user_database_lookup): Add check to see if the given username
2380           is a udi.  This allows udi's to be used instead of usernames in the
2381           config file.
2382           (_dbus_user_database_lookup_group): Add check to see if the given groupname
2383           is a gdi.  This allows gdi's to be used instead of groupnames in the
2384           config file.
2385
2386 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
2387
2388         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
2389           code so that it compiles with gcc4.0
2390
2391         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
2392           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
2393           results back to dbus_binding.c
2394
2395 2005-03-20  Colin Walters  <walters@verbum.org>
2396
2397         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
2398
2399         * configure.in: Require GTK+ 2.6.
2400         
2401 2005-03-20  Colin Walters  <walters@verbum.org>
2402
2403         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
2404
2405 2005-03-17  Tom Parker  <palfrey@tevp.net>
2406
2407         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
2408         print DBUS_UID_UNSET; instead print passed username.  Also
2409         be sure to actually use gid looked up in cache.
2410         
2411         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
2412         for DBUS_GID_UNSET and groupname.
2413
2414 2005-03-17  Colin Walters  <walters@verbum.org>
2415
2416         * bus/print-introspect.c: Move to tools/.
2417         * bus/run-with-tmp-session-bus.sh: Ditto.
2418         
2419         * glib/Makefile.am (dbus-glib-bindings.h): Move
2420         generation to tools/Makefile.am.
2421
2422         * test/glib/run-test.sh: Update to handle move
2423         of run-with-tmp-session-bus.sh.
2424
2425         * test/glib/test-service-glib.c: Update to handle
2426         move of dbus-glib-bindings.h.
2427
2428         * tools/print-introspect.c: Moved here
2429         from bus/, and ported to GLib bindings.
2430
2431         * tools/run-with-tmp-session-bus.sh: Moved here
2432         from bus/.
2433
2434         * tools/Makefile.am: Generate dbus-glib-bindings.h
2435         and dbus-bus-introspect.xml here.
2436
2437         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
2438         Update.
2439
2440 2005-03-17  Colin Walters  <walters@verbum.org>
2441
2442         * bus/driver.c (write_args_for_direction): Use
2443         _dbus_string_get_const_data to retrieve string;
2444         _dbus_string_get_const_data_len doesn't actually return
2445         a NULL-terminated substring.
2446
2447         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
2448         (main): Change to use org_freedesktop_DBus_request_name
2449         instead of using g_proxy_begin_call/end_call.
2450
2451 2005-03-15  Joe Shaw  <joeshaw@novell.com>
2452
2453         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
2454         generating the finalizer.  Fixes from Ben Maurer.
2455
2456 2005-03-12  Joe Shaw  <joeshaw@novell.com>
2457
2458         * mono/BusDriver.cs: Update method names: ListServices
2459         becomes ListNames; GetOwner becomes GetNameOwner.
2460
2461         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
2462         onto the eval stack when removing the delegate.
2463
2464 2005-03-12  Joe Shaw  <joeshaw@novell.com>
2465
2466         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
2467         LT_CURRENT.  Set it to the autoconf variable.
2468                                                                                 
2469         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
2470         classes that disconnects the signal handler delegate from the
2471         service object.  Fixes a big leak of proxy objects on the
2472         client side of things.  Patch from Ben Maurer
2473         <bmaurer@ximian.com>
2474
2475 2005-03-12  Colin Walters  <walters@verbum.org>
2476
2477         * bus/driver.c (write_args_for_direction): New function,
2478         parses a type signature into arguments and outputs to
2479         XML.
2480         (bus_driver_handle_introspect): Use it instead of
2481         hardcoding XML for certain signatures.
2482         
2483         * bus/Makefile.am (dbus-bus-introspect.xml): Add
2484         dependency on dbus-daemon.
2485
2486         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
2487         argument, pass it to dbus_binding_tool_output_glib_client.
2488
2489         * glib/dbus-binding-tool-glib.c
2490         (generate_client_glue): Protect against multiple inclusion.
2491         (dbus_binding_tool_output_glib_client): Add
2492         G_BEGIN_DECLS/G_END_DECLS.
2493
2494         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
2495         Change to just take iface prefix directly.
2496         (write_formal_parameters): Clarify error message.
2497         (check_supported_parameters): New function; checks to see type
2498         signatures of method parameters are supported.
2499         (generate_client_glue): Handle ignore_unsupported flag.
2500         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
2501         parameter.
2502
2503         * glib/Makefile.am (dbus-glib-bindings.h): Pass
2504         --ignore-unsupported by default until glib bindings
2505         support arrays.
2506
2507 2005-03-11  Colin Walters  <walters@verbum.org>
2508
2509         * glib/Makefile.am: Generate dbus-glib-bindings.h and
2510         install it.
2511
2512         * bus/print-introspect.c: New file; prints introspection
2513         data for a given name and object path.
2514
2515         * bus/run-with-tmp-session-bus.sh: New file, refactored
2516         from test/glib/run-test.sh.  Creates a temporary session
2517         bus and runs another program.
2518
2519         * test/glib/run-test.sh: Refactor to invoke
2520         run-with-tmp-session-bus.sh.
2521
2522         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
2523         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
2524         macros instead of hardcoding.
2525
2526         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
2527
2528 2005-03-11  Joe Shaw  <joeshaw@novell.com>
2529
2530         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
2531         this unref; it doesn't match up evenly in some codepaths.
2532         (_dbus_connection_block_pending_call): Unref at every exitpoint;
2533         this evenly matches with the ref near the top of this function.
2534
2535 2005-03-09  Joe Shaw  <joeshaw@novell.com>
2536
2537         * dbus/dbus-object-tree.c
2538         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
2539         and we try to unregister a path that's not registered, still go
2540         through the process of unlocking and don't just return.
2541
2542 2005-03-09  Colin Walters  <walters@verbum.org>
2543
2544         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
2545         to this are generated for client-side wrappers.  Invokes a
2546         D-BUS method and returns reply values.  
2547
2548         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
2549         function; writes signature string for argument direction.
2550         (write_args_for_direction): Change to pass input values directly
2551         instead of via address, and fix indentation.
2552         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
2553         make generated wrappers inlineable.
2554
2555         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
2556         note about using dbus_type_is_fixed.
2557
2558         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
2559         dbus/dbus-signature.c as dbus_type_is_fixed.
2560
2561         All callers updated.
2562
2563         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
2564         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
2565
2566         * dbus/dbus-signature.h: Prototype.
2567
2568         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
2569         error printf code.
2570
2571         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
2572         appropriate instead of just freeing it.
2573         (main): Free returned strings using g_free.
2574
2575         * test/glib/Makefile.am (test-service-glib-glue.h)
2576         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
2577
2578         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
2579         simply maps a simple D-BUS type to GType.
2580         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
2581         GType.
2582         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
2583         initialize the value with it.
2584         (dbus_gvalue_binding_type_from_type): Unused, delete.
2585         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
2586         various types instead of unmarshalling to value data directly.
2587         Remove can_convert boolean.
2588         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
2589         returning directly instead of using can_convert boolean.
2590         (dbus_gvalue_store): New function; not related to D-BUS per-se.
2591         Stores a GValue in a pointer to a value of its corresponding C
2592         type.
2593
2594         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
2595         add dbus_gvalue_store.
2596
2597 2005-03-08  Joe Shaw  <joeshaw@novell.com>
2598
2599         Fix a bunch of lifecycle and memory management problems
2600         in the mono bindings.
2601
2602         * mono/Arguments.cs (Arguments): Implement IDisposable
2603
2604         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
2605         strictly a static class.
2606
2607         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
2608         delegates into this file.
2609         (Connection): Implement IDisposable.
2610         (Dispose): Disconnect the connection and set the raw connection
2611         pointer to IntPtr.Zero.
2612         (~Connection): Call Dispose().
2613         (RegisterObjectPath): Added.  Manages the registration of object
2614         paths so we can cleanly disconnect them at dispose/finalize time.
2615         (UnregisterObjectPath): Ditto.
2616         (set_RawConnection): Unregister all of the object paths when
2617         changing the underlying DBusConnection.  Add them back onto the
2618         new connection, if any.
2619
2620         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
2621         more unmanaged resources anymore, so it's not necessary.  Move all
2622         the DBusObjectPathVTable stuff out of here.
2623         (Handler): Save references to our delegates so that they don't get
2624         finalized.  Call Connection.RegisterObjectPath() instead of
2625         dbus_connection_register_object_path() directly.
2626         (Message_Called): Dispose the message after we're finished with
2627         it.
2628
2629         * mono/Message.cs (Message): Implement IDisposable.
2630         (Dispose): Dispose the Arguments, and set the RawMessage to
2631         IntPtr.Zero.
2632         (SendWithReplyAndBlock): We own the ref to the reply that comes
2633         back from dbus_connection_send_with_reply_and_block() so add a
2634         comment about that and unref it after we've constructed a managed
2635         MethodReturn class around it.  Fixes a big, big leak.
2636
2637         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
2638         method.
2639         (BuildSignalHandler): After we've sent the Signal message, dispose
2640         of it.
2641         (BuildMethod): Dispose of the method call and reply messages after
2642         we've sent the message and extracted the data we want from the
2643         reply.
2644
2645         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
2646         anymore.
2647         (Service_FilterCalled): Dispose of the message after we're
2648         finished with it.
2649
2650 2005-03-08  Joe Shaw  <joeshaw@novell.com>
2651
2652         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
2653         After we attach our pending call to the connection, unref
2654         it.  Fixes a leak.
2655  
2656         * mono/Connection.cs (set_RawConnection): Disconnect our
2657         filter and match callbacks from the old connection and
2658         reconnect them to the new connection, if any.
2659
2660         * mono/DBusType/Array.cs: "Code" is a static member, so
2661         don't use "this" to refer to it.  Fix for stricter checking
2662         in Mono 1.1.4.
2663  
2664         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
2665         object path that we pass into unmanaged code.
2666  
2667         * mono/DBusType/String.cs (Append): Don't leak the string
2668         that we pass into unmanged code.
2669
2670 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
2671         * NEWS: Update for 0.31
2672
2673         * configure.in: Release 0.31
2674         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
2675
2676         * qt/Makefile.am: fixed build
2677
2678         * dbus/Makefile.am: soname bump for libdbus
2679
2680         * glib/Makefile.am: soname bump for libdbus-glib
2681
2682 2005-03-05  Havoc Pennington  <hp@redhat.com>
2683
2684         * dbus/dbus-sysdeps.c:
2685         (pseudorandom_generate_random_bytes_buffer): fix to have no return
2686         value
2687         (_dbus_generate_random_bytes_buffer): fix return value
2688
2689         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
2690         checks actually work, from Tom Parker <fdo@tevp.net>
2691
2692 2005-03-01  Colin Walters  <walters@verbum.org>
2693
2694         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
2695         functions copied from dbus-glib-tool.c.
2696         (main): Convert lots of error code to use them.
2697         Also add some testing for introspection bits.
2698
2699 2005-03-01  Colin Walters  <walters@verbum.org>
2700         
2701         * doc/TODO: Remove introspection signature TODO.
2702
2703 2005-02-27  Colin Walters  <walters@verbum.org>
2704
2705         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
2706         Change return value to const char * instead of int so we can do
2707         full signatures.
2708         (struct PropertyInfo, struct ArgInfo): Store char *.
2709         (property_info_new, arg_info_new): Update parameters, strdup.
2710         (property_info_unref, arg_info_unref): Free.
2711
2712         * glib/dbus-gidl.h: Update prototypes.
2713
2714         * glib/dbus-gparser.c (basic_type_from_string): Delete.
2715         (validate_signature): New function, just validates signature and
2716         sets GError.
2717         (parse_property, parse_arg): Invoke validate_signature.  Store
2718         signature instead of just type code.
2719
2720         * glib/dbus-gvalue.c (base_type_from_signature): New utility
2721         function to return a primary type for a signature, dropping
2722         information about types in container types.
2723         (dbus_gvalue_genmarshal_name_from_type)
2724         (dbus_gvalue_binding_type_from_type)
2725         (dbus_gvalue_ctype_from_type): Update to take full signature
2726          instead of type code.
2727         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
2728
2729         * glib/dbus-gvalue.h: Update prototypes for above.
2730
2731         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
2732         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
2733         (introspect_properties, introspect_signals, write_interface):
2734         Update to handle signatures, and remove usage of
2735         _dbus_gutils_type_to_string.
2736         (handle_introspect): Print out type codes instead of e.g. "string"
2737         in hardcoded introspection XML; also use x_AS_STRING constants
2738         instead of hardcoding in string.
2739
2740         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
2741         to string.  Remove usage of _dbus_gutils_type_to_string.
2742
2743         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
2744
2745         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
2746         deletion.
2747         
2748         * glib/dbus-binding-tool-glib.c (compute_marshaller)
2749         (compute_marshaller_name, generate_glue): Handle signature change
2750         to string.
2751         (write_formal_parameters, write_args_for_direction): Ditto, and
2752         remove FIXME.
2753
2754         * tools/dbus-tree-view.c (type_to_string): Delete.
2755         (info_set_func_text): Update to print full signatures.
2756
2757         * test/glib/test-service-glib.xml: Change types to new
2758         introspection format.
2759
2760 2005-02-26  Havoc Pennington  <hp@redhat.com>
2761
2762         * doc/TODO: remove the "guid" item
2763
2764         * test/glib/test-profile.c (no_bus_thread_func): use open_private
2765         (with_bus_thread_func): use open_private
2766
2767         * dbus/dbus-connection.c (dbus_connection_open_private): new
2768         function that works like the old dbus_connection_open()
2769         (dbus_connection_open): now returns an existing connection if
2770         possible
2771
2772         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
2773         through the GUID to the transport
2774
2775         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
2776         GUID in hex-encoded form.
2777
2778         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2779         pass GUID argument in to the transport
2780
2781         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
2782         guid argument
2783
2784         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
2785
2786         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
2787
2788 2005-02-25  Havoc Pennington  <hp@redhat.com>
2789
2790         * doc/dbus-specification.xml: document the GUID thing
2791
2792         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
2793         globally unique ID for the server, and put a "guid=hexencoded"
2794         field in the address
2795
2796         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
2797
2798         * dbus/dbus-message.c: ditto
2799
2800         * dbus/dbus-dataslot.c: ditto
2801
2802         * dbus/dbus-list.c: ditto
2803
2804         * dbus/dbus-internals.h: wait, just include
2805         dbus-threads-internal.h here
2806         
2807         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
2808         use in main library
2809
2810         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
2811
2812 2005-02-24  Colin Walters  <walters@verbum.org>
2813
2814         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
2815
2816 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
2817
2818         * glib/Makefile.am: added dbus-gobject.h to sources list
2819         so distcheck doesn't fail
2820         
2821 2005-02-24  Havoc Pennington  <hp@redhat.com>
2822
2823         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
2824         you must disconnect before unref, since locking and other things
2825         are screwed up otherwise. Fix assorted other locking stuff.
2826
2827         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
2828         fix compilation
2829
2830         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
2831         into a private header and don't export from the library
2832
2833         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
2834
2835 2005-02-24  Colin Walters  <walters@verbum.org>
2836         
2837         * dbus/dbus-signature.c: New file; implements various functions
2838         related to type signatures.  Includes an interator for parsing,
2839         validation functions.
2840         (dbus_type_is_basic): Moved here from
2841         dbus-marshal-basic.c:_dbus_type_is_basic.
2842         (dbus_type_is_container): Moved here from
2843         dbus-marshal-basic.c:_dbus_type_is_container.
2844
2845         All callers of _dbus_type_is_container and _dbus_type_is_basic
2846         updated, and include dbus-signature.h.
2847
2848         * dbus/dbus-signature.h: New file; prototypes for the above.
2849
2850         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
2851         dbus-signature.h.
2852
2853         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
2854         function factored out of _dbus_first_type_in_signature.
2855         (_dbus_first_type_in_signature_c_str): New function; returns first
2856         type code for a type signature character.
2857
2858         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
2859         handle function moves.
2860
2861         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
2862
2863         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
2864         function; skips to next complete type in type signature.
2865         Implemented using previous skip_one_complete_type.  Now
2866         skip_one_complete_type just delegates to
2867         _dbus_type_signature_next.
2868
2869         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
2870         to dbus-signature.c
2871         (_dbus_type_is_container): Ditto.
2872
2873         * doc/dbus-specification.xml: Update introspection sample to
2874         use real type signatures.
2875
2876         * dbus/dbus-test.h: Prototype signature test.
2877
2878         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
2879         signature tests.
2880
2881         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
2882
2883 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
2884
2885         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
2886         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
2887
2888 2005-02-21  Colin Walters  <walters@verbum.org>
2889
2890         * dbus/dbus-test-main.c (main): Take optional specific test
2891         argument.
2892
2893         * dbus/dbus-test.c (run_test): New function, runs a test function
2894         with no data directory.
2895         (run_data_test): Like above, but takes data directory.
2896         (dbus_internal_do_not_use_run_tests): Take
2897         specific test argument.  Replace lots of cut n' paste code
2898         with run_test and run_data_test.
2899
2900         * dbus/dbus-test.h: Update prototype for
2901         dbus_internal_do_not_use_run_tests.
2902
2903 2005-02-20  Havoc Pennington  <hp@redhat.com>
2904
2905         Fix bugs reported by Daniel P. Berrange
2906         
2907         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
2908         (protected_change_watch): new function
2909         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
2910         (_dbus_server_add_watch): change to work like the
2911         dbus-connection.c equivalents; like those, probably kind of
2912         busted, but should at least mostly work for now
2913         (dbus_server_disconnect): drop the lock if we were already
2914         disconnected, patch from Daniel P. Berrange
2915
2916         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
2917         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
2918         same stuff
2919
2920         * doc/TODO: todo about unscrewing this mess
2921
2922 2005-02-19  Colin Walters  <walters@verbum.org>
2923
2924         * glib/dbus-binding-tool-glib.c
2925         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
2926
2927         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
2928         as errno.h and sys/stat.h.
2929         (lose): New function, prints error with
2930         newline and exits.
2931         (lose_gerror): Similar, but takes GError for message.
2932         (main): Add --output argument to specify output file to write to,
2933         instead of always printing to stdout.  In this mode, determine
2934         timestamps on source files to see whether any are newer than the
2935         target file.  If not, exit.  Also convert a number of error
2936         messages to use lose (since it's shorter), and switch to using
2937         g_io_channel_shutdown.
2938
2939 2005-02-19  Havoc Pennington  <hp@redhat.com>
2940
2941         * glib/dbus-gobject.c
2942         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
2943
2944         * glib/dbus-glib.c: fix doxygen warnings
2945
2946         * glib/dbus-gparser.c (parse_annotation): error if an annotation
2947         is found on an <arg>
2948
2949 2005-02-17  Colin Walters  <walters@verbum.org>
2950
2951         * glib/dbus-gobject.h: Don't export
2952         _dbus_glib_marshal_dbus_message_to_gvalue_array.
2953         
2954         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
2955         (invoke_object_method): Handle it.
2956
2957         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2958         Handle rename.
2959         
2960 2005-02-17  Colin Walters  <walters@verbum.org>
2961
2962         * bus/.cvsignore, doc/.cvsignore
2963         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
2964         Update.
2965
2966 2005-02-17  Colin Walters  <walters@verbum.org>
2967         
2968         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
2969         Rename to DBUS_SERVICE_DBUS.
2970         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
2971         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
2972         Change the value from "org.freedesktop.Local"
2973         to "org.freedesktop.DBus.Local".
2974         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
2975         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
2976         DBUS_INTERFACE_INTROSPECTABLE.
2977         Change the value from "org.freedesktop.Introspectable"
2978         to "org.freedesktop.DBus.Introspectable".
2979         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
2980         DBUS_INTERFACE_PROPERTIES.
2981         Change the value from "org.freedesktop.Properties"
2982         to "org.freedesktop.DBus.Properties".
2983         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
2984         DBUS_INTERFACE_PEER.
2985         Change the value from "org.freedesktop.Peer"
2986         to "org.freedesktop.DBus.Peer".
2987         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
2988         DBUS_INTERFACE_LOCAL.
2989         Change the value from "org.freedesktop.Local"
2990         to "org.freedesktop.DBus.Local".
2991
2992         All other users of those constants have been changed.
2993
2994         * bus/driver.c (bus_driver_handle_introspect): Use constants.
2995
2996         * glib/dbus-gobject.c (handle_introspect): Use constants.
2997
2998         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
2999
3000 2005-02-17  Colin Walters  <walters@verbum.org>
3001
3002         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3003         (parse_node, parse_interface, parse_method, parse_signal)
3004         (parse_property, parse_annotation): Lose if we're currently in an
3005         annotation.
3006         (parse_annotation): New function.
3007         (parser_start_element, parser_end_element): Handle annotation.
3008         (parse_method, parse_interface): Remove support for c_name attribute,
3009         switch to annotations.
3010
3011         * glib/dbus-gidl.h (interface_info_get_binding_names)
3012         (method_info_get_binding_names)
3013         (interface_info_get_binding_name, method_info_get_binding_name)
3014         (interface_info_set_binding_name, method_info_set_binding_name):
3015         Remove.
3016         (interface_info_get_annotations, method_info_get_annotations)
3017         (interface_info_get_annotation, method_info_get_annotation)
3018         (interface_info_add_annotation, method_info_add_annotation):
3019         Prototype.
3020
3021         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3022         for "bindings".
3023         (struct MethodInfo): Ditto.
3024         Straightfoward conversion of binding methods into annotation methods
3025         as prototyped.
3026
3027         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3028
3029         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3030
3031         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3032         Use new annotation API.
3033
3034         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3035         annotation element.
3036         
3037         * doc/dbus-specification.xml: Discuss introspection annotations,
3038         include list of well-known annotations.
3039
3040         * test/glib/test-service-glib.xml: Make validate against new DTD.
3041
3042 2005-02-17  Colin Walters  <walters@verbum.org>
3043
3044         This patch is based on initial work from
3045         Paul Kuliniewicz <kuliniew@purdue.edu>.
3046
3047         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3048         initialization of GValue from dbus type to here.
3049         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3050         for the "glib-genmarshal" program from a DBus type.
3051         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3052         into the C name for it we use in the glib bindings.
3053         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3054         glib C type (not GValue).
3055         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3056
3057         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3058         from dbus-gobject.c.
3059
3060         * glib/dbus-gutils.h: Prototype it.
3061
3062         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3063         (marshal_dbus_message_to_g_marshaller): Use new shared function
3064         dbus_glib_marshal_dbus_message_to_gvalue_array.
3065
3066         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3067         Will be changed once we have annotations.
3068
3069         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3070         GStaticRWLock.  Callers updated.
3071         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
3072         (string_table_next): New function for iterating over zero-terminated
3073         string value array.
3074         (string_table_lookup): New function; retrieves specific entry in
3075         array.
3076         (get_method_data): New function; look up method data in object data chunk.
3077         (object_error_domain_prefix_from_object_info)
3078         (object_error_code_from_object_info): New functions, but not implemented yet.
3079         (method_interface_from_object_info): New function; retrieve interface name.
3080         (method_name_from_object_info): New function; retrieve method name.
3081         (method_arg_info_from_object_info): New function; retrieve argument data.
3082         (arg_iterate): New function; iterates over serialized argument data.
3083         (method_dir_signature_from_object_info): New function; returns a
3084         GString holding type signature for arguments for just one
3085         direction (input or output).
3086         (method_input_signature_from_object_info)
3087         (method_output_signature_from_object_info): New functions.
3088         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3089         converts dbus message arguments into a GValue array.  Used for both
3090         signal handling and method invocation.
3091         (struct DBusGlibWriteIterfaceData): New utility structure.
3092         (write_interface): New function; generate introspection XML for
3093         an interface.
3094         (introspect_interfaces): New function; gathers all interface->methods,
3095         generates introspection XML for them.
3096         (handle_introspect): Invoke introspect_interfaces.
3097         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3098         (lookup_object_and_method): New function; examines an incoming message
3099         and attempts to match it up (via interface, method name, and argument
3100         signature) with a known object and method.
3101         (gerror_domaincode_to_dbus_error_name): New function; converts a
3102         GError domain and code into a DBus error name.  Needs GError data
3103         added to object introspection to work well.
3104         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3105         GError.
3106         (invoke_object_method): New function to invoke an object method
3107         looked up via lookup_object_and_method.  Parses the incoming
3108         message, turns it into a GValue array, then invokes the marshaller
3109         specified in the DBusGMethodInfo.  Creates a new message with
3110         either return values or error message as appropriate.
3111         (gobject_message_function): Invoke lookup_object_and_method and
3112         invoke_object_method.
3113
3114         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3115         (enum DBusBindingOutputMode): New enum for binding output modes.
3116         (pretty_print): Print binding names.
3117         (dbus_binding_tool_error_quark): GError bits.
3118         (version): Fix typo.
3119         (main): Create GIOChannel for output.  Parse new --mode argument,
3120         possible values are "pretty-print", "glib-server", "glib-client".
3121         Use mode to invoke appropriate function.
3122         
3123         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3124
3125         * glib/dbus-glib-tool.h: New header, just includes GError bits
3126         for now.
3127
3128         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3129         maps binding style to name.
3130         (struct MethodInfo): Ditto.
3131         (get_hash_keys, get_hash_key): Utility function, returns keys for
3132         a GHashTable.
3133         (interface_info_new, method_info_new): Initialize bindings.
3134         (interface_info_unref, method_info_unref): Destroy bindings.
3135         (method_info_get_binding_names, method_info_get_binding_name)
3136         (interface_info_get_binding_names, interface_info_get_binding_name):
3137         Functions for retrieving binding names.
3138         (method_info_set_binding_name, interface_info_set_binding_name):
3139         Functions for setting binding names.
3140
3141         * glib/dbus-binding-tool-glib.h: New file, has prototypes
3142         for glib binding generation.
3143
3144         * glib/dbus-binding-tool-glib.c: New file, implements server-side
3145         and client-side glib glue generation.
3146
3147         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3148         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3149         dbus-glib-tool.h.
3150
3151         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3152         of using GClosureMarshal directly.
3153         (struct DBusGObjectInfo): Add n_infos member.
3154
3155         * test/glib/test-service-glib.xml: New file; contains introspection data
3156         for MyTestObject used in test-service-glib.c.
3157
3158         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3159         (my_object_do_nothing, my_object_increment, my_object_throw_error)
3160         (my_object_uppercase, my_object_many_args): New test methods.
3161         (main): Use dbus_g_object_class_install_info to include generated object
3162         info.
3163
3164         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3165         as well as client-side bindings.
3166
3167         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3168         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3169         using both the dbus_gproxy stuff directly as well as the generated bindings.
3170
3171 2005-02-15  Havoc Pennington  <hp@redhat.com>
3172
3173         * dbus/dbus-connection.c (dbus_connection_dispatch): always
3174         complete a pending call, don't run filters first.
3175
3176         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3177         dbus_pending_call_steal_reply
3178
3179         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3180         _dbus_connection_block_pending_call
3181         (dbus_pending_call_get_reply): change to steal_reply and return a
3182         ref
3183
3184         * dbus/dbus-connection.c
3185         (dbus_connection_send_with_reply_and_block): port to work in terms
3186         of DBusPendingCall
3187         (_dbus_connection_block_pending_call): replace block_for_reply
3188         with this
3189
3190 2005-02-14  Havoc Pennington  <hp@redhat.com>
3191
3192         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3193         properly handle looking up group information by name; fix 
3194         from j@bootlab.org
3195
3196 2005-02-13  Havoc Pennington  <hp@redhat.com>
3197
3198         * dbus/dbus-connection.c (dbus_connection_return_message) 
3199         (dbus_connection_borrow_message): hold dispatch lock while message
3200         is outstanding
3201         (_dbus_connection_block_for_reply): hold dispatch lock while we
3202         block for the reply, so nobody steals our reply
3203         (dbus_connection_pop_message): hold the dispatch lock while we
3204         pluck the message
3205
3206 2005-02-13  Havoc Pennington  <hp@redhat.com>
3207
3208         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3209         (_dbus_connection_release_dispatch)
3210         (_dbus_connection_acquire_io_path)
3211         (_dbus_connection_release_io_path): make the mutex and condvar
3212         control access to the "acquired" flag. Drop the connection lock
3213         while waiting on the condvar. Hopefully these are baby steps in
3214         roughly the right direction.
3215
3216 2005-02-13  Havoc Pennington  <hp@redhat.com>
3217
3218         * dbus/dbus-connection.c: use separate mutexes for the condition
3219         variables; this is some kind of baseline for sanity, but the
3220         condition variables still aren't used correctly afaict
3221
3222 2005-02-13  Havoc Pennington  <hp@redhat.com>
3223
3224         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3225         fix a double-unlock
3226
3227         * dbus/dbus-connection.c
3228         (_dbus_connection_detach_pending_call_unlocked): add this
3229
3230         Initial semi-correct pass through to fix thread locking; there are
3231         still some issues with the condition variable paths I'm pretty
3232         sure
3233         
3234         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3235         lock/unlock calls
3236
3237         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3238         rename to add _unlocked
3239         (struct DBusConnection): move "dispatch_acquired" and
3240         "io_path_acquired" to use only one bit each.
3241         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3242         (dbus_connection_set_watch_functions): hacky fix to reentrancy
3243         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
3244         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
3245         (_dbus_connection_remove_timeout) 
3246         (_dbus_connection_toggle_timeout): drop lock when calling out to
3247         user functions; done in a hacky/bad way.
3248         (_dbus_connection_send_and_unlock): add a missing unlock
3249         (_dbus_connection_block_for_reply): add a missing unlock
3250
3251         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3252         drop lock in a hacky probably unsafe way to call out to user
3253         function
3254
3255 2005-02-12  Havoc Pennington  <hp@redhat.com>
3256
3257         * tools/dbus-tree-view.c (info_set_func_text): display more
3258         details on args
3259
3260         * bus/driver.c (bus_driver_handle_list_services): list the bus
3261         driver
3262
3263         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3264
3265         * glib/dbus-gidl.c (signal_info_get_n_args): new function
3266         (method_info_get_n_args): new function
3267
3268 2005-02-12  Havoc Pennington  <hp@redhat.com>
3269
3270         * bus/driver.c (bus_driver_handle_introspect): add introspection
3271         for bus driver
3272
3273 2005-02-12  Havoc Pennington  <hp@redhat.com>
3274
3275         * bus/driver.c: put the signature of each bus driver method in the
3276         table of handlers and check it on incoming calls; this isn't
3277         really useful, but going to add introspect support in a minute.
3278
3279 2005-02-11  Joe Shaw  <joeshaw@novell.com>
3280
3281         * mono/Connection.cs: The unpredictability of finalizers in mono
3282         prevents us from deterministically disconnecting the filters from
3283         the Service class's finalizer, so move tracking of filters and
3284         matches here.  Add API for that.
3285
3286         * mono/Service.cs: Remove the code, add code which calls the
3287         methods now on the Connection class.
3288
3289 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
3290
3291         * python/dbus.py (class Sender): added to support dbus signals better
3292         (Bus::add_signal_receiver): added expand_args parameter which defaults
3293         to True.  When expand args is True the signal handler will pass the 
3294         message arguments as parameters to the signal handler.  If False
3295         revert to previous behavior where the signal handler must get the
3296         argument list from the message.  This is to help port applications
3297         like HAL that have a tendancy to send variable length argument lists.
3298         self._match_rule_to_receivers is now a dict of dicts.
3299         (Bus::remove_signal_receiver): pop handler off the dict intead of 
3300         removing it from a list
3301         (Bus::_signal_func): change signal handlers so that interface,
3302         signal_name, service, path and message are packed into a Sender
3303         object and that is passed to the handler.  If expand_args is True
3304         extract the args list from the message and append it to the parameter
3305         list
3306         
3307         * python/dbus_bindings.pyx.in (class Signature): added to support 
3308         signiature types
3309         (MessageIter::__init__): changed iteration limit to match D-BUS
3310         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
3311         STRUCT and VARIENT type support
3312         (MessageIter::python_value_to_dbus_sig): made recursive to support
3313         recursive types
3314         (MessageIter::append*): added Signature, dict, tuple 
3315         support
3316
3317         * python/examples/example-client.py: added examples of getting tuples
3318         and dicts
3319
3320         * python/examples/example-service.py: added examples of sending tuples
3321         and dicts
3322
3323         * python/examples/example-signal-recipient.py: Fixed to handle new
3324         signal callback format
3325
3326 2005-02-10  Havoc Pennington  <hp@redhat.com>
3327
3328         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
3329         (call dbus_g_proxy_add_signal)
3330
3331         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3332         escape the hostname
3333         (_dbus_server_new_for_domain_socket): escape the path
3334
3335         * dbus/dbus-address.c (dbus_address_escape_value): new
3336         (dbus_address_unescape_value): new
3337         (dbus_parse_address): unescape values
3338
3339         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
3340
3341         * doc/dbus-specification.xml: explain how to escape values in
3342         addresses
3343
3344 2005-02-10  Havoc Pennington  <hp@redhat.com>
3345
3346         * dbus/dbus-message-factory.c (generate_special): modify test to
3347         avoid using a non-basic dict key
3348
3349         * dbus/dbus-marshal-validate-util.c: add test for the below
3350
3351         * doc/dbus-specification.xml: require that dict keys are a basic
3352         type
3353
3354         * dbus/dbus-marshal-validate.c
3355         (_dbus_validate_signature_with_reason): require that dict key is a
3356         basic type
3357
3358 2005-02-10  Havoc Pennington  <hp@redhat.com>
3359
3360         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3361         change to be _and_unlock instead of _unlocked
3362
3363         * dbus/dbus-connection.c
3364         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
3365         have no_update so we can find this bug quickly in future
3366
3367 2005-02-10  Havoc Pennington  <hp@redhat.com>
3368
3369         * dbus/dbus-message-util.c (verify_test_message): tests for string
3370         array
3371
3372         * dbus/dbus-message.c (dbus_message_append_args_valist): add
3373         support for arrays of string/signature/path
3374
3375 2005-02-10  Joe Shaw  <joeshaw@novell.com>
3376
3377         * dbus/dbus-connection.c
3378         (_dbus_connection_queue_received_message_link,
3379         _dbus_connection_message_sent): Add the path to
3380         the verbose output.
3381         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
3382         _dbus_connection_send_preallocated_unlocked(), updated the
3383         dispatch status, and unlocks.  Fixes a bug where certain
3384         situations (like a broken pipe) could cause a Disconnect message
3385         to not be sent, tricking the bus into thinking a service was still
3386         there when the process had quit.
3387         (_dbus_connection_send_preallocated): Call
3388         _dbus_connection_send_preallocated_and_unlock().
3389         (_dbus_connection_send_and_unlock): Added.  Calls
3390         _dbus_connection_send_preallocated_and_unlock().
3391         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
3392         (dbus_connection_send_with_reply): Update the dispatch status and
3393         unlock.
3394
3395         * mono/Service.cs (~Service): Added.  Removes the filter so that
3396         we don't get unmanaged code calling back into a GCed delegate.
3397         (RemoveFilter); Added.
3398
3399 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
3400
3401         * dbus/dbus-message.c (dbus_message_iter_open_container):
3402         - Removed check for iterator type being an array because
3403         get_arg_type does not work with writer iterators
3404         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
3405
3406 2005-02-07  Havoc Pennington  <hp@redhat.com>
3407
3408         * doc/dbus-specification.xml: some more language cleanups; add
3409         stuff about how to deal with invalid protocol and extension
3410         points; add _ to allowed chars in auth commands; add EXTENSION_
3411         auth command prefix
3412
3413 2005-02-06  Havoc Pennington  <hp@redhat.com>
3414
3415         * s/expected/required/ in a couple places for clarity
3416
3417 2005-02-07  Colin Walters  <walters@verbum.org>
3418
3419         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
3420         sender or proposed_recipient.
3421
3422 2005-02-06  Havoc Pennington  <hp@redhat.com>
3423
3424         * dbus/dbus-message-factory.c (generate_special): more tests
3425
3426         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
3427         array length that exceeds the maximum
3428
3429 2005-02-05  Havoc Pennington  <hp@redhat.com>
3430
3431         * dbus/dbus-message-factory.c (generate_special): more test cases,
3432         increasing coverage
3433
3434         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
3435         reason why a signature was invalid
3436
3437         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
3438         skip the length of the string before we look at it in validation
3439
3440         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
3441         equal_substring
3442
3443         * dbus/dbus-message.c (_dbus_message_loader_new): default
3444         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
3445
3446 2005-02-05  Havoc Pennington  <hp@redhat.com>
3447
3448         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
3449         if the signature of a variant was empty
3450         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
3451         struct with no element type)
3452
3453         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
3454         mangled messages to break things
3455
3456 2005-02-04  Havoc Pennington  <hp@redhat.com>
3457
3458         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
3459         g_quark_try_string() so it actually can return 0
3460         (dbus_g_proxy_connect_signal): ditto
3461
3462 2005-02-04  Havoc Pennington  <hp@redhat.com>
3463
3464         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
3465         bogus warning
3466         (tristring_from_message): assert cleanly on null path/interface
3467         (should not be possible though I decided later)
3468         (dbus_g_proxy_dispose): move proxy manager unregistration here
3469         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
3470         g_return_if_fail() checks
3471
3472 2005-02-04  Havoc Pennington  <hp@redhat.com>
3473
3474         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
3475
3476         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
3477         (with some minor changes)
3478
3479         * doc/dbus-specification.xml: add deprecated attribute to
3480         introspection format
3481
3482 2005-01-31  Havoc Pennington  <hp@redhat.com>
3483
3484         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
3485         think it's sort of right
3486
3487 2005-01-30  Havoc Pennington  <hp@redhat.com>
3488
3489         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
3490
3491 2005-01-30  Havoc Pennington  <hp@redhat.com>
3492
3493         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
3494
3495         * autogen.sh: change to autotools 1.9
3496
3497         * glib/dbus-gproxy.c: completely change how signals work
3498         (dbus_g_proxy_add_signal): new function to specify signature of a
3499         signal
3500         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
3501         and g_warning if the incoming message has the wrong signature.
3502
3503 2005-01-30  Havoc Pennington  <hp@redhat.com>
3504
3505         * tools/dbus-names-model.c (have_names_notify): fix this
3506
3507         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
3508         up the string array handling a bit 
3509
3510 2005-01-30  Havoc Pennington  <hp@redhat.com>
3511
3512         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
3513         (dbus_g_pending_call_cancel): new function
3514
3515         * dbus/dbus-glib.h: move GType decls for connection/message here;
3516         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
3517         here, just kind of rationalizing how we handle all that
3518
3519         * tools/dbus-names-model.c: new file for a tree model listing the
3520         services on a bus
3521
3522         * tools/dbus-tree-view.c (model_new): use proper typing on the
3523         model rows
3524
3525 2005-01-30  Havoc Pennington  <hp@redhat.com>
3526
3527         * glib/dbus-gmain.c: add a custom GSource back that just checks
3528         whether the message queue has anything in it; otherwise, there are 
3529         cases where we won't see messages in the queue since there was no 
3530         IO visible to the glib main loop
3531
3532         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
3533         increase default message timeout to 25 seconds
3534
3535 2005-01-30  Havoc Pennington  <hp@redhat.com>
3536
3537         * test/glib/test-profile.c (no_bus_stop_server): remove the
3538         warning about the g_warning that I just fixed
3539
3540         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
3541         custom source, seems to be a lot easier to understand and work
3542         better.
3543
3544 2005-01-30  Havoc Pennington  <hp@redhat.com>
3545
3546         I think this main loop thing is conceptually broken, but here are 
3547         some band aids. I'll maybe rewrite it in a minute.
3548         
3549         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
3550         custom GSource, so don't pass it in; confusing
3551         (gsource_server_finalize, gsource_connection_finalize): add
3552         finalize handlers that remove all the watches.  
3553
3554 2005-01-30  Havoc Pennington  <hp@redhat.com>
3555
3556         * glib/dbus-gobject.c (introspect_properties): fix the XML
3557         generated
3558
3559         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
3560         which effectively detects the use of freed messages
3561
3562         * glib/dbus-gobject.c (handle_introspect): modify and return the
3563         reply message instead of the incoming message
3564
3565         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
3566         gee, maybe it should SEND THE XML instead of just making a string
3567         and freeing it again ;-)
3568
3569         * tools/dbus-print-message.c (print_message): improve printing of
3570         messages
3571
3572         * configure.in: add debug-glib.service to the output
3573
3574 2005-01-30  Havoc Pennington  <hp@redhat.com>
3575
3576         dbus-viewer introspected and displayed the bus driver
3577         
3578         * dbus/dbus-object-tree.c 
3579         (object_tree_test_iteration): add tests for a handler registered on "/"
3580
3581         * dbus/dbus-object-tree.c
3582         (_dbus_decompose_path): fix to handle path "/" properly
3583         (run_decompose_tests): add tests for path decomposition
3584         
3585         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
3586         properly
3587
3588         * glib/dbus-gobject.c (handle_introspect): fix quotes
3589
3590         * test/glib/run-test.sh: support launching the bus, then running
3591         dbus-viewer
3592
3593         * test/glib/test-service-glib.c (main): put in a trivial gobject
3594         subclass and register it on the connection
3595
3596         * bus/driver.c (bus_driver_handle_introspect): implement
3597         introspection of the bus driver service
3598
3599         * dbus/dbus-protocol.h: add #defines for the XML namespace,
3600         identifiers, doctype decl
3601
3602         * bus/driver.c (bus_driver_handle_get_service_owner): handle
3603         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
3604         returning the service unchanged.
3605         (bus_driver_handle_message): remove old check for reply_serial in
3606         method calls, now the message type deals with that
3607         (bus_driver_handle_message): handle NULL interface
3608
3609         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
3610
3611         * glib/dbus-gloader-expat.c (description_load_from_string): allow
3612         -1 for len
3613
3614         * tools/dbus-viewer.c: add support for introspecting a service on
3615         a bus
3616
3617         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
3618         (dbus_g_pending_call_unref): add
3619
3620 2005-01-29  Havoc Pennington  <hp@redhat.com>
3621
3622         * tools/dbus-tree-view.c: add support for displaying properties.
3623         (run dbus-viewer with an introspect xml file as arg, then resize
3624         the window so the tree elements show up, not sure what that is)
3625
3626         * glib/dbus-gobject.c (handle_introspect): return
3627         org.freedesktop.Properties and org.freedesktop.Introspectable
3628         interfaces when we are introspected.
3629
3630         * doc/dbus-specification.xml: allow empty interface name when 
3631         Get/Set a property
3632
3633 2005-01-29  Havoc Pennington  <hp@redhat.com>
3634
3635         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
3636         though it uses glib, it could be extended for any binding in
3637         principle
3638
3639         * glib/dbus-gobject.c (gobject_message_function): change to the
3640         new way properties work
3641
3642         * dbus/dbus-protocol.h: add the new interfaces
3643
3644         * doc/dbus-specification.xml: document the introspection format,
3645         Introspectable interface, and add an org.freedesktop.Properties
3646         interface.
3647
3648         * glib/dbus-gparser.c: add support for a <property> element
3649
3650         * glib/dbus-gidl.c: add PropertyInfo
3651
3652         * glib/dbus-gobject.c (handle_introspect): put the outermost
3653         <node> outside the signal and property descriptions.
3654         (introspect_properties): export properties as <property> rather
3655         than as method calls
3656
3657 2005-01-28  Havoc Pennington  <hp@redhat.com>
3658
3659         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
3660         related to authentication protocol
3661
3662 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
3663
3664         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
3665                 - BUS_ACTIVATION -> BUS_STARTER
3666                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
3667                 - class MessageIter (__init__): Added recursion checking 
3668                 so we throw a nice error instead of just disconnecting from the
3669                 bus.
3670                 (get): Added arg_type parameter for recursion.
3671                 Removed the nil type
3672                 Added signiture type placeholder (not implemented)
3673                 Added struct type placeholder (not implemented)
3674                 Added varient type placeholder (not implemented)
3675                 Commented out dict type for now     
3676                 (get_element_type): renamed from get_array_type
3677                 (get_*): changed to use the dbus_message_iter_get_basic API
3678                 (get_*_array): removed in favor of recursive get_array method
3679                 (get_array): new recursive method which calls get to marshal
3680                 the elements of the array
3681                 (value_to_dbus_sig): New method returns the corrasponding
3682                 dbus signiture to a python value
3683                 (append): Comment out dict handling for now
3684                 Handle lists with the new recursive API
3685                 Comment out None handling for now
3686                 (append_nil): removed
3687                 (append_*): changed to use dbus_message_iter_append_basic API
3688                 (append_*_array): removed in favor of recursive append_array 
3689                 method
3690                 (__str__): Make it easier to print out recursive iterators
3691                 for debugging
3692                 - class Message (__str__): moved type inspection to the
3693                 MessageIter class' __str__ method
3694                 (get_iter): Added an append parameter wich defaults to False
3695                 If True use the new API's to create an append iterator
3696
3697         * python/dbus.py: Update to use new bindings API
3698                 - TYPE_ACTIVATION -> TYPE_STARTER
3699                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
3700                 - class ActivationBus -> class StarterBus
3701                 - class RemoteObject (__call__): get an append iterator
3702                 - (_dispatch_dbus_method_call): get an append iterator
3703                 - class Object (emit_signal): get an append iterator
3704
3705         * python/examples/: Fixed up the examples to work with the new API
3706                 
3707 2005-01-28  Joe Shaw  <joeshaw@novell.com>
3708
3709         * configure.in: Bump version up to 0.30.
3710
3711         * HACKING: Add a release item to bump the version number up after 
3712         a release.
3713
3714 2005-01-28  Havoc Pennington  <hp@redhat.com>
3715
3716         * doc/dbus-specification.xml: update to describe 16-bit types and
3717         dict entries
3718
3719         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
3720         assertion
3721
3722         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
3723         type
3724
3725         * dbus/dbus-marshal-recursive.c: implement
3726
3727 2005-01-27  Havoc Pennington  <hp@redhat.com>
3728
3729         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
3730
3731         * configure.in: find the right type for 16 and 32 bit ints as well
3732         as 64
3733
3734         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
3735         the 16-bit types so people don't have to stuff them in 32-bit or
3736         byte arrays.
3737
3738 2005-01-27  Havoc Pennington  <hp@redhat.com>
3739
3740         * dbus/dbus-message.c: byteswap the message if you init an
3741         iterator to read/write from it
3742         
3743         * dbus/dbus-marshal-byteswap.c: new file implementing 
3744         _dbus_marshal_byteswap()
3745
3746         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
3747
3748 2005-01-26  Havoc Pennington  <hp@redhat.com>
3749         
3750         * dbus/dbus-marshal-validate-util.c: break this out (and fix
3751         build, apparently - nobody noticed?)
3752         
3753 2005-01-26  Havoc Pennington  <hp@redhat.com>
3754
3755         * dbus/dbus-marshal-recursive.h: remove todo comment
3756
3757 2005-01-25  Joe Shaw  <joeshaw@novell.com>
3758
3759         * Land the mono binding changes to conform to the new APIs.
3760
3761         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
3762         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
3763
3764         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
3765         type code as a string.
3766         (InitAppending): Rename dbus_message_append_iter_init() to
3767         dbus_message_iter_init_append().
3768
3769         * mono/BusDriver.cs: Rename ServiceEventHandler to
3770         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
3771         Rename ServiceOwnerChanged to NameOwnerChanged.
3772
3773         * mono/Connection.cs: Rename BaseService to UniqueName, and the
3774         underlying C call.
3775
3776         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
3777
3778         * mono/Service.cs: Rename Exists to HasOwner, internally rename
3779         dbus_bus_acquire_service() to dbus_bus_request_name().
3780
3781         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
3782         of Type.UnderlyingSystemType to get the correct element type for
3783         the array.
3784         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
3785         dbus_message_get_{element|arg}_type() instead of
3786         dbus_message_iter_init_array_iterator().
3787         (Append): Replace dbus_message_iter_append_array() with
3788         dbus_message_iter_open_container() and
3789         dbus_message_iter_close_container().
3790
3791         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
3792         types have been removed.
3793         
3794         * mono/DBusType/*.cs: Replace calls of
3795         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
3796         but specify the type in the DllImport extern declaration.  Ditto
3797         for dbus_message_iter_append_[type]() ->
3798         dbus_message_iter_append_basic().
3799
3800         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
3801         NameOwnerChangedHandler.
3802
3803 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
3804
3805         * python/dbus_bindings.pyx.in: Rename of methods and bindings
3806                 - get_base_service -> get_unique_name
3807                 - bus_get_base_service -> bus_get_unique_name
3808                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
3809                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
3810                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
3811                 - bus_activate_service -> bus_start_service_by_name
3812                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
3813                 - bus_acquire_service -> bus_request_name
3814                 - dbus_bus_acquire_service -> dbus_bus_request_name
3815                 - bus_service_exists -> bus_name_has_owner
3816                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
3817
3818         * python/dbus.py: Rename of methods
3819                 - activate_service -> start_service_by_name
3820                 - bus_acquire_service -> bus_request_name
3821                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
3822                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
3823
3824         
3825 2005-01-24  Joe Shaw  <joeshaw@novell.com>
3826
3827         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
3828         signature for the method that can't be found.
3829
3830         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
3831         the message has any arguments, we need to call
3832         _dbus_type_reader_get_current_type(), not
3833         _dbus_type_reader_has_next().
3834
3835 2005-01-24  Havoc Pennington  <hp@redhat.com>
3836
3837         * dbus/dbus-message-factory.c: more testing of message validation
3838
3839         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
3840         header
3841
3842 2005-01-23  Havoc Pennington  <hp@redhat.com>
3843
3844         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
3845         get this all working, not many tests in the framework yet though
3846
3847 2005-01-22  Havoc Pennington  <hp@redhat.com>
3848
3849         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
3850         tutorial, based on work from David Wheeler.
3851
3852 2005-01-21  Havoc Pennington  <hp@redhat.com>
3853
3854         * dbus/dbus-bus.c: add more return_if_fail checks
3855
3856         * dbus/dbus-message.c (load_message): have the "no validation"
3857         mode (have to edit the code to toggle the mode for now though)
3858
3859         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
3860         skips all validation; I want to use this at least for benchmark
3861         baseline, I'm not sure if it should be a publicly-available switch.
3862
3863 2005-01-21  Havoc Pennington  <hp@redhat.com>
3864
3865         * glib/dbus-gmain.c: don't put the GLib bindings in the same
3866         toplevel doxygen group as the low-level API stuff
3867
3868         * dbus/dbus.h: note that libdbus is the low-level API
3869
3870 2005-01-20  Havoc Pennington  <hp@redhat.com>
3871
3872         * update-dbus-docs.sh: script to update docs on the web site, only
3873         works for me though. neener.
3874
3875 2005-01-20  Havoc Pennington  <hp@redhat.com>
3876
3877         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
3878         code can reveal bugs in it
3879
3880 2005-01-20  Havoc Pennington  <hp@redhat.com>
3881
3882         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
3883         select() version, patches from Tor Lillqvist
3884
3885 2005-01-20  Havoc Pennington  <hp@redhat.com>
3886
3887         * doc/dbus-tutorial.xml: replace > with &gt;
3888
3889         * bus/services.c (bus_registry_acquire_service): validate the name
3890         and return a better error if it's no good.
3891
3892         * doc/dbus-specification.xml: note NO_AUTO_START change
3893
3894         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
3895         from AUTO_START, we're toggling the default
3896
3897         * bus/dispatch.c: adapt the tests to change of auto-start default
3898
3899 2005-01-18  Havoc Pennington  <hp@redhat.com>
3900
3901         * rename dbus-daemon-1 to dbus-daemon throughout
3902
3903 2005-01-18  Havoc Pennington  <hp@redhat.com>
3904
3905         * Throughout, grand renaming to strip out the use of "service",
3906         just say "name" instead (or "bus name" when ambiguous).  Did not
3907         change the internal code of the message bus itself, only the
3908         programmer-facing API and messages.
3909         
3910         * doc/dbus-specification.xml: further update the message bus section
3911         
3912         * bus/config-parser.c (all_are_equiv): fix bug using freed string
3913         in error case
3914
3915 2005-01-17  Havoc Pennington  <hp@redhat.com>
3916
3917         * dbus/dbus-types.h: remove 16-bit types since we don't use them
3918         ever
3919
3920         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
3921         "invalid name character" not only non-ASCII
3922
3923         * doc/dbus-specification.xml: further update spec, message bus 
3924         parts are still out-of-date but the marshaling etc. stuff is now
3925         accurate-ish
3926
3927 2005-01-17  Havoc Pennington  <hp@redhat.com>
3928
3929         * doc/dbus-specification.xml: partially update spec
3930
3931 2005-01-17  Havoc Pennington  <hp@redhat.com>
3932
3933         * Throughout, align variant bodies according to the contained
3934         type, rather than always to 8. Should save a fair bit of space in
3935         message headers.
3936         
3937         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
3938         fix handling of case where p == end
3939
3940         * doc/TODO: remove the dbus_bool_t item and variant alignment items
3941
3942 2005-01-17  Havoc Pennington  <hp@redhat.com>
3943
3944         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
3945
3946         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
3947         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
3948         are marshaling/unmarshaling a boolean.
3949
3950 2005-01-16  Havoc Pennington  <hp@redhat.com>
3951
3952         This is about it on what can be disabled/deleted from libdbus
3953         easily, back below 150K anyhow. Deeper cuts are more work than 
3954         just turning the code off as I've done here.
3955         
3956         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
3957         signed int convenience funcs
3958
3959         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
3960         verbose mode
3961
3962         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
3963         things out of libdbus
3964
3965         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
3966         
3967         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
3968         tests-enabled-only, though it should probably be deleted)
3969
3970         * dbus/dbus-message-util.c: same stuff
3971
3972         * dbus/dbus-auth-util.c: same stuff
3973
3974 2005-01-16  Havoc Pennington  <hp@redhat.com>
3975
3976         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
3977
3978         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
3979         way for stripping down dbus-userdb.c stuff included in libdbus.
3980         Rename _dbus_parse_uid for consistency.
3981
3982 2005-01-16  Havoc Pennington  <hp@redhat.com>
3983
3984         * dbus/dbus-internals.c (_dbus_real_assert): print the function
3985         name the assertion failed in
3986
3987         * dbus/dbus-internals.h (_dbus_return_if_fail) 
3988         (_dbus_return_val_if_fail): assert that the name of the function
3989         containing the check doesn't start with '_', since we only want to 
3990         use checks on public functions
3991         
3992         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
3993         checks to assertions
3994
3995         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
3996         change checks to asserts for private function
3997
3998         * dbus/dbus-message.c (_dbus_message_set_serial): checks
3999         to asserts for private function
4000
4001         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4002         broken assertion that was breaking make check
4003         (_dbus_type_reader_array_is_empty): remove this rather than fix
4004         it, was only used in assertions
4005
4006 2005-01-16  Havoc Pennington  <hp@redhat.com>
4007
4008         * test/unused-code-gc.py: hacky script to find code that's used
4009         only by the bus (not libdbus) or used only by tests or not used at
4010         all. It has some false alarms, but looks like we can clean up a
4011         lot of size from libdbus.
4012
4013         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4014         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4015         
4016 2005-01-16  Havoc Pennington  <hp@redhat.com>
4017
4018         * Add and fix docs according to Doxygen warnings throughout
4019         source.
4020         
4021         * dbus/dbus-marshal-recursive.c
4022         (_dbus_type_reader_array_is_empty): change this to just call
4023         array_reader_get_array_len() and make it static
4024
4025         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4026         from get_array_type
4027         (dbus_message_iter_init_append): rename from append_iter_init
4028
4029         * dbus/dbus-marshal-recursive.c
4030         (_dbus_type_reader_get_element_type): rename from
4031         _dbus_type_reader_get_array_type
4032
4033 2005-01-15  Havoc Pennington  <hp@redhat.com>
4034
4035         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4036
4037         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4038         when DBUS_DISABLE_ASSERT
4039         (_dbus_marshal_set_basic): be sure we align for the string length
4040
4041         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4042         this look faster
4043
4044         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4045         inline macro version
4046         (_dbus_string_set_byte): provide inline macro version
4047
4048 2005-01-15  Havoc Pennington  <hp@redhat.com>
4049
4050         * Land the new message args API and type system.
4051
4052         This patch is huge, but the public API change is not 
4053         really large. The set of D-BUS types has changed somewhat, 
4054         and the arg "getters" are more geared toward language bindings;
4055         they don't make a copy, etc.
4056
4057         There are also some known issues. See these emails for details
4058         on this huge patch:
4059         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4060         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4061         
4062         * dbus/dbus-marshal-*: all the new stuff
4063
4064         * dbus/dbus-message.c: basically rewritten
4065
4066         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4067         freed blocks to be all non-nul bytes so using freed memory is less
4068         likely to work right
4069
4070         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4071         DBUS_FAIL_MALLOC=N environment variable, so you can do
4072         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4073         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4074         thorough.
4075
4076         * qt/message.cpp: port to the new message args API
4077         (operator<<): use str.utf8() rather than str.unicode()
4078         (pretty sure this is right from the Qt docs?)
4079
4080         * glib/dbus-gvalue.c: port to the new message args API
4081
4082         * bus/dispatch.c, bus/driver.c: port to the new message args API
4083
4084         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4085         "locked" flag to TRUE and align_offset to 0; I guess we never
4086         looked at these anyhow, but seems cleaner.
4087
4088         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4089         move allocation padding macro to this header; use it to implement
4090         (_DBUS_STRING_STATIC): ability to declare a static string.
4091
4092         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4093         change to return TRUE if the interface is not set.
4094
4095         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4096         to dbus-marshal-validate.[hc]
4097
4098         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4099         dbus-internals.c
4100
4101         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4102         to dbus-marshal-*.[hc]
4103
4104         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4105         function here from dbus-marshal.c
4106
4107 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4108
4109         * NEWS: Update for 0.23.
4110
4111         * configure.in: Release 0.23.
4112
4113 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4114
4115         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
4116         dbus DLL with --debug.  Clean up after the .mdb files this leaves
4117         behind.
4118
4119         * mono/doc/Makefile.am: Need to uninstall the docs on "make
4120         uninstall"
4121
4122         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4123         is an enum, get the enum's underlying type.  Another mono
4124         1.1.3 fix.
4125
4126 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4127
4128         Patch from Sjoerd Simons <sjoerd@luon.net>
4129
4130         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4131         DESTDIR.  It breaks stuff.
4132
4133 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4134
4135         Patch from Tambet Ingo <tambet@ximian.com>
4136
4137         * mono/DBusType/Array.cs (Get): Get the underlying element type by
4138         calling type.GetElementType().  The code previously depended on
4139         broken Mono behavior, which was fixed in Mono 1.1.3.
4140
4141         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4142         Activator.CreateInstance() so that the class's constructor is
4143         called with the right parameters.
4144
4145 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4146
4147         Patch from Timo Teräs <ext-timo.teras@nokia.com>
4148
4149         * dbus/dbus-connection.c
4150         (_dbus_connection_queue_received_message_link): Call
4151         _dbus_connection_remove_timeout() instead of the _locked()
4152         variant, since it's always called from
4153         _dbus_connection_handle_watch(), which handles the locking.
4154         Removed the _locked() variant since it's no longer used.
4155
4156 2005-01-03  Havoc Pennington  <hp@redhat.com>
4157
4158         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4159         return
4160         
4161 2004-12-26  Havoc Pennington  <hp@redhat.com>
4162
4163         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4164
4165 2005-01-03  Havoc Pennington  <hp@redhat.com>
4166
4167         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4168         floating point
4169
4170         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4171
4172 2005-01-02  Havoc Pennington  <hp@redhat.com>
4173
4174         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4175
4176 2005-01-01  Havoc Pennington  <hp@redhat.com>
4177
4178         * configure.in: add -Wfloat-equal
4179
4180 2005-01-01  Havoc Pennington  <hp@redhat.com>
4181
4182         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
4183         for a variety of reasons '==' doesn't do this.
4184
4185 2004-12-31  Havoc Pennington  <hp@redhat.com>
4186
4187         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4188         I keep wishing I had
4189
4190 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4191
4192         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4193
4194 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4195
4196         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4197         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4198         dbus-protocol.h.  Because they are defines and not enums they are not
4199         autogenerated.
4200
4201 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
4202
4203         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4204         dbus_bus_activate_service
4205
4206         * python/dbus.py (Bus.activate_service): activate a service on the
4207         bus.
4208
4209 2004-12-24  Havoc Pennington  <hp@redhat.com>
4210
4211         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4212         file format has also changed and I haven't adapted to that yet
4213         
4214         * Makefile.am: load .gcno files from latest gcc
4215
4216 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
4217         * Patch from Rob Taylor <robtaylor@fastmail.fm>
4218
4219         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4220         lowlevel binding
4221
4222         * python/dbus.py (get_unix_user): Added binding to 
4223         call dbus_bindings.bus_get_unix_user
4224
4225         * python/extract.py: Modified the proto_pat regex to
4226         handle unsigned long
4227
4228 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4229
4230         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4231         better POSIX compliance.
4232
4233 2004-12-19  Havoc Pennington  <hp@redhat.com>
4234
4235         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
4236         (_dbus_string_insert_8_aligned): new functions
4237
4238         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4239
4240 2004-12-18  Havoc Pennington  <hp@redhat.com>
4241
4242         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4243         macro
4244
4245         * dbus/dbus-message.c: fix a comment, and add a still-unused
4246         not-implemented function
4247
4248         * dbus/dbus-marshal.h: fix comment
4249
4250         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4251
4252 2004-12-17  Joe Shaw  <joeshaw@novell.com>
4253
4254         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4255         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4256         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4257         Type.UnderlyingSystemType to get the actual system type
4258         underneath.  This code previously depended on the broken Mono
4259         behavior, which was fixed in 1.1.3.
4260
4261 2004-11-27  Havoc Pennington  <hp@redhat.com>
4262
4263         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4264         are disabled
4265         (_dbus_string_get_const_data): inline when asserts are disabled
4266
4267         * dbus/dbus-message.c: record the _dbus_current_generation of
4268         creation so we can complain if dbus_shutdown() is used improperly.
4269         Do this only if checks are enabled.
4270
4271         * dbus/dbus-connection.c: ditto
4272         
4273 2004-11-26  Havoc Pennington  <hp@redhat.com>
4274
4275         * test/glib/test-profile.c: add with_bus mode to profile echoes
4276         that go through the bus.
4277
4278         * test/glib/run-test.sh: add ability to run test-profile
4279
4280         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4281         config file reload.
4282
4283 2004-11-26  Havoc Pennington  <hp@redhat.com>
4284
4285         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4286         thing was implemented
4287
4288 2004-11-26  Havoc Pennington  <hp@redhat.com>
4289
4290         * test/glib/test-profile.c: tweak a bit, add support for some
4291         made-up minimal malloc overhead with plain sockets, since in 
4292         real life some sort of buffers are unavoidable thus we could 
4293         count them in the theoretical best case
4294
4295 2004-11-26  Havoc Pennington  <hp@redhat.com>
4296
4297         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
4298         where I was trying to cache one too many messages
4299
4300 2004-11-26  Havoc Pennington  <hp@redhat.com>
4301
4302         * dbus/dbus-message.c: reimplement message cache as an array which 
4303         makes the cache about twice as fast and saves maybe 1.5% overall
4304
4305 2004-11-26  Havoc Pennington  <hp@redhat.com>
4306
4307         * dbus/dbus-threads.c (init_global_locks): forgot to put the
4308         message cache lock here
4309
4310 2004-11-26  Havoc Pennington  <hp@redhat.com>
4311
4312         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
4313         the "char byte_order" next to each other to save 4 bytes
4314         (dbus_message_new_empty_header): reduce preallocation, since the
4315         message cache should achieve a similar effect
4316         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
4317         message cache that keeps a few DBusMessage around in a pool,
4318         another 8% speedup or so.
4319
4320         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
4321
4322 2004-11-25  Havoc Pennington  <hp@redhat.com>
4323
4324         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
4325         to write, without reading or blocking, try it before the poll()
4326         and skip the poll() if nothing remains to write. This is about a
4327         3% speedup in the echo client/server
4328
4329 2004-11-25  Havoc Pennington  <hp@redhat.com>
4330
4331         The primary change here is to always write() once before adding
4332         the write watch, which gives us about a 10% performance increase.
4333         
4334         * dbus/dbus-transport-unix.c: a number of modifications to cope
4335         with removing messages_pending
4336         (check_write_watch): properly handle
4337         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
4338         messages_pending stuff
4339         (check_read_watch): properly handle WAITING_FOR_MEMORY and
4340         AUTHENTICATED cases
4341         (unix_handle_watch): after writing, see if the write watch can be
4342         removed
4343         (unix_do_iteration): assert that write_watch/read_watch are
4344         non-NULL rather than testing that they aren't, since they 
4345         aren't allowed to be NULL. check_write_watch() at the end so 
4346         we add the watch if we did not finish writing (e.g. got EAGAIN)
4347
4348         * dbus/dbus-transport-protected.h: remove messages_pending call,
4349         since it resulted in too much inefficient watch adding/removing; 
4350         instead we now require that the transport user does an iteration 
4351         after queueing outgoing messages, and after trying the first
4352         write() we add a write watch if we got EAGAIN or exceeded our 
4353         max bytes to write per iteration setting
4354
4355         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
4356         function
4357
4358         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
4359         freed and then accessed, valgrind flagged this bug, fix it
4360
4361         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
4362         as the last valid field plus 1, where really it is equal to the
4363         last valid field. Corrects some message corruption issues.
4364
4365         * dbus/dbus-mainloop.c: verbosity changes
4366
4367         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
4368         instead of aborting in one of the test codepaths
4369
4370         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
4371         caused not printing the pid ever again if a verbose was missing
4372         the newline at the end
4373         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
4374
4375         * dbus/dbus-connection.c: verbosity changes; 
4376         (dbus_connection_has_messages_to_send): new function
4377         (_dbus_connection_message_sent): no longer call transport->messages_pending
4378         (_dbus_connection_send_preallocated_unlocked): do one iteration to
4379         try to write() immediately, so we can avoid the write watch. This
4380         is the core purpose of this patchset
4381         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
4382         dump the outgoing message queue, so nobody will get confused
4383         trying to send them or thinking stuff is pending to be sent
4384
4385         * bus/test.c: verbosity changes
4386
4387         * bus/driver.c: verbosity/assertion changes
4388
4389         * bus/dispatch.c: a bunch of little tweaks to get it working again
4390         because this patchset changes when/where you need to block.
4391
4392 2004-11-23  Havoc Pennington  <hp@redhat.com>
4393
4394         * test/glib/test-profile.c: modify to accept a plain_sockets
4395         argument in which case it will bench plain sockets instead of
4396         libdbus, for comparison purposes.
4397
4398 2004-11-22  Havoc Pennington  <hp@redhat.com>
4399
4400         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
4401         threads for more time, so sysprof can get a grip on it.
4402
4403         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
4404         pointless variable
4405
4406 2004-11-13  Havoc Pennington  <hp@redhat.com>
4407
4408         * test/glib/test-profile.c: fix this thing up a bit
4409
4410         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
4411         preallocation sizes by a fair bit; not sure if this will be an
4412         overall performance win or not, but it does reduce reallocs.
4413
4414         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
4415         the test hack that forced constant realloc if asserts are
4416         disabled, so we can profile sanely. Sprinkle in some
4417         _DBUS_UNLIKELY() which are probably pointless, but before I
4418         noticed the real performance problem I put them in.
4419         (_dbus_string_validate_utf8): micro-optimize this thing a little
4420         bit, though callgrind says it didn't help; then special-case
4421         ascii, which did help a lot; then be sure we detect nul bytes as
4422         invalid, which is a bugfix.
4423         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
4424         superstition; use memset to nul the padding instead of a manual
4425         loop.
4426         (_dbus_string_get_length): inline this as a
4427         macro; it showed up in the profile because it's used for loop
4428         tests and so forth
4429
4430 2004-11-10  Colin Walters  <walters@verbum.org>
4431
4432         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
4433         for extra paranoia.
4434
4435 2004-11-09  Colin Walters  <walters@verbum.org>
4436
4437         * dbus/dbus-string.c (_dbus_string_get_length): New
4438         function, writes DBusString to C buffer.
4439
4440         * dbus/dbus-string.h: Prototype it.
4441
4442         * dbus/dbus-message.c (dbus_message_type_to_string): New
4443         function, converts message type into C string.
4444
4445         * dbus/dbus-message.h: Prototype it.
4446
4447         * bus/selinux.c (bus_selinux_check): Take source pid,
4448         target pid, and audit data.  Pass audit data to
4449         avc_has_perm.
4450         (log_audit_callback): New function, appends extra
4451         audit information.
4452         (bus_selinux_allows_acquire_service): Also take
4453         service name, add it to audit data.
4454         (bus_selinux_allows_send): Also take message
4455         type, interface, method member, error name,
4456         and destination, and add them to audit data.
4457         (log_cb): Initialize func_audit.
4458         
4459         * bus/selinux.h (bus_selinux_allows_acquire_service)
4460         (bus_selinux_allows_send): Update prototypes 
4461
4462         * bus/services.c (bus_registry_acquire_service): Pass
4463         service name to bus_selinux_allows_acquire_service.
4464
4465         * bus/bus.c (bus_context_check_security_policy): Pass
4466         additional audit data.  Move assignment of dest
4467         to its own line.
4468
4469 2004-11-07  Colin Walters  <walters@verbum.org>
4470
4471         * dbus/dbus-transport-unix.c (do_authentication): Always
4472         initialize auth_completed.
4473         
4474 2004-11-07  Colin Walters  <walters@verbum.org>
4475
4476         * bus/bus.c (load_config): Break into three
4477         separate functions: process_config_first_time_only,
4478         process_config_every_time, and process_config_postinit.
4479         (process_config_every_time): Move call of
4480         bus_registry_set_service_context_table into
4481         process_config_postinit.
4482         (process_config_postinit): New function, does
4483         any processing that needs to happen late
4484         in initialization (and also on reload).
4485         (bus_context_new): Instead of calling load_config,
4486         open config parser here and call process_config_first_time_only
4487         and process_config_every_time directly.  Later, after
4488         we have forked but before changing UID,
4489         invoke bus_selinux_full_init, and then call
4490         process_config_postinit.
4491         (bus_context_reload_config): As in bus_context_new,
4492         load parse file inside here, and call process_config_every_time
4493         and process_config_postinit.
4494
4495         * bus/services.h, bus/services.c
4496         (bus_registry_set_service_context_table): Rename
4497         from bus_registry_set_sid_table.  Take string hash from config
4498         parser, and convert them here into SIDs.
4499
4500         * bus/config-parser.c (struct BusConfigParser): Have
4501         config parser only store a mapping of service->context
4502         string.
4503         (merge_service_context_hash): New function.
4504         (merge_included): Merge context string hashes instead
4505         of using bus_selinux_id_table_union.
4506         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
4507         simply create a new string hash.
4508         (bus_config_parser_unref): Unref it.
4509         (start_selinux_child): Simply insert strings into hash,
4510         don't call bus_selinux_id_table_copy_over.
4511
4512         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
4513         (bus_selinux_id_table_copy_over): Delete.
4514
4515 2004-11-03  Colin Walters  <walters@verbum.org>
4516
4517         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
4518         variables.
4519         
4520 2004-11-03  Colin Walters  <walters@verbum.org>
4521
4522         * bus/test-main.c (test_pre_hook): Fix test logic,
4523         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
4524
4525 2004-11-02  Colin Walters  <walters@redhat.com>
4526
4527         * bus/selinux.c (bus_selinux_init): Split into two functions,
4528         bus_selinux_pre_init and bus_selinux_post_init.
4529         (bus_selinux_pre_init): Just determine whether SELinux is
4530         enabled.
4531         (bus_selinux_post_init): Do everything else.
4532
4533         * bus/main.c (main): Call bus_selinux_pre_init before parsing
4534         config file, and bus_selinux_post_init after.  This ensures that
4535         we don't lose the policyreload notification thread that
4536         bus_selinux_init created before forking previously.
4537         
4538         * bus/test-main.c (test_pre_hook): Update for split.
4539
4540 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
4541
4542         Patch from Johan Fischer <linux@fischaz.com>
4543         
4544         * mono/doc/Makefile.am (install-data-local): Added directory
4545         install for DESTDIR
4546
4547 2004-10-29  Colin Walters  <walters@redhat.com>
4548
4549         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
4550         parameter for fd to write pid to.       
4551
4552         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
4553         
4554         * bus/bus.c (bus_context_new): Pass print_pid_fd
4555         to _dbus_become_daemon (bug #1720)
4556
4557 2004-10-29  Colin Walters  <walters@redhat.com>
4558
4559         Patch from Ed Catmur <ed@catmur.co.uk>
4560
4561         * mono/doc/Makefile.am (install-data-local): Handle
4562         DESTDIR.
4563
4564 2004-10-29  Colin Walters  <walters@redhat.com>
4565
4566         * bus/.cvsignore, qt/.cvsignore: Update.
4567
4568 2004-10-29  Colin Walters  <walters@redhat.com>
4569
4570         Patch from Kristof Vansant <de_lupus@pandora.be>
4571
4572         * configure.in: Detect Slackware.
4573         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
4574         * bus/rc.messagebus.in: New file.
4575
4576 2004-10-29  Colin Walters  <walters@redhat.com>
4577
4578         * tools/dbus-monitor.c (filter_func): Return
4579         DBUS_HANDLER_RESULT_HANDLED in filter function
4580         for now.  See:
4581         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
4582
4583 2004-10-29  Colin Walters  <walters@redhat.com>
4584
4585         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
4586
4587         * bus/services.c (bus_registry_acquire_service): 
4588         Correctly retrieve service name from DBusString
4589         for printing.
4590
4591 2004-10-29  Colin Walters  <walters@redhat.com>
4592
4593         * dbus/dbus-glib.h: Update documentation to not
4594         refer to internal APIs.
4595
4596 2004-10-27  Joe Shaw  <joeshaw@novell.com>
4597
4598         * mono/Arguments.cs (GetDBusTypeConstructor):
4599         type.UnderlyingSystemType will return "System.Byte" if you do it
4600         on "byte[]", which is not what we want.  So check the type.IsArray
4601         property and use System.Array instead.
4602
4603 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
4604
4605         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
4606         the DBusUserInfo structure since this is passed into the function.
4607         This would cause a double free when the function that allocated
4608         the structure would try to free it when an error occured.
4609
4610         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
4611         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
4612         for service activation to avoid 32bit/64bit parallel install issues
4613
4614 2004-10-21  Colin Walters  <walters@verbum.org>
4615
4616         * AUTHORS: Fix my email address, the @gnu.org one
4617         has been bouncing for some time.  Also add J5.
4618         
4619 2004-10-21  Colin Walters  <walters@verbum.org>
4620
4621         * dbus/dbus-transport-unix.c (do_authentication): Return
4622         authentication status to callers.
4623         (unix_handle_watch): If we completed authentication this round,
4624         don't do another read.  Instead wait until the next iteration,
4625         after we've read any pending data in the auth buffer.
4626         (unix_do_iteration): Ditto.
4627         (unix_handle_watch): Updated for new do_authentication prototype.
4628
4629 2004-10-18  Colin Walters  <walters@verbum.org>
4630
4631         * bus/selinux.c (bus_selinux_enabled): Handle
4632         --disable-selinux case.
4633         
4634 2004-10-18  Colin Walters  <walters@verbum.org>
4635
4636         * bus/selinux.h: Add bus_selinux_enabled.
4637         
4638         * bus/selinux.c (bus_selinux_enabled): Implement it.
4639         
4640         * bus/config-parser.c (struct include): Add
4641         if_selinux_enabled member.
4642         (start_busconfig_child): Parse if_selinux_enabled
4643         attribute for include.
4644         (bus_config_parser_content): Handle it.
4645
4646         * bus/session.conf.in, bus/system.conf.in: Add
4647         inclusion of context mapping to default config files;
4648         conditional on SELinux being enabled.
4649         
4650         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
4651         
4652         * test/data/invalid-config-files/badselinux-1.conf, 
4653         test/data/invalid-config-files/badselinux-2.conf:
4654         Test files for bad syntax.
4655         
4656 2004-10-17  Colin Walters  <walters@verbum.org>
4657
4658         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
4659         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
4660         format specifier mismatches.
4661
4662 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4663
4664         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
4665         format string.
4666
4667         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
4668         pointer (bug #1540, Leonardo Boiko).
4669
4670 2004-09-28  Jon Trowbridge  <trow@ximian.com>
4671
4672         * mono/BusDriver.cs: Changed BusDriver struct to remove
4673         the ServiceCreated and ServiceDeleted events and replace them
4674         with the new ServiceOwnerChanged event.
4675
4676         * mono/example/BusListener.cs: Added a new example program,
4677         which listens for and reports any ServiceOwnerChanged events
4678         on the bus driver.
4679
4680         * mono/example/Makefile.am (DESTDIR): Build changes for the
4681         new BusListener.cs example.
4682
4683 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4684
4685         * bus/signals.c (bus_match_rule_parse): validate the components of
4686         match rules (bug #1439).
4687
4688         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
4689
4690 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4691
4692         * doc/dbus-specification.xml: document ServiceOwnerChanged
4693         signal.
4694         
4695         * bus/driver.c, bus/driver.h, bus/services.c: Use
4696         ServiceOwnerChanged signal instead of ServiceCreated and
4697         ServiceDeleted.
4698         
4699         * bus/dispatch.c: update testcase for the new signal.
4700
4701 2004-09-20  Jon Trowbridge  <trow@ximian.com>
4702
4703         Patch from Nat Friedman <nat@novell.com>
4704
4705         * mono/Makefile.am: A number of small build fixes to allow "make
4706         distcheck" to succeed.
4707
4708         * mono/example/Makefile.am: "make distcheck" fixes.
4709
4710         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
4711         key in @srcdir@.
4712
4713         * test/Makefile.am: "make distcheck" fixes.
4714
4715 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4716
4717         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
4718
4719         * doc/busconfig.dtd: update the DTD for the at_console attribute.
4720
4721         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
4722         messages after the first one (bug #1389).
4723         
4724         * bus/dispatch.c (check_double_hello_message): add a test case for
4725         the double hello message bug.
4726         (check_existent_service_activation): fix check of spawning error.
4727         
4728 2004-09-16  David Zeuthen  <david@fubar.dk>
4729
4730         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
4731
4732 2004-09-12  David Zeuthen  <david@fubar.dk>
4733
4734         Patch from Kay Sievers <kay.sievers@vrfy.org>
4735
4736         * bus/bus.c (bus_context_new):
4737         * bus/bus.h:
4738         * bus/main.c (usage)
4739         (main):
4740         Add commandline option --nofork to override configuration file
4741         setting.
4742
4743 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4744
4745         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
4746         compilers don't like it (bug #974).
4747
4748 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
4749
4750         * qt/connection.*: Applied patch by Jérôme Lodewyck
4751         <lodewyck@clipper.ens.fr> to integrate an existing
4752         connection into the Qt eventloop
4753
4754 2004-08-30  Jon Trowbridge  <trow@ximian.com>
4755
4756         * mono/BusDriver.cs: Added.  This is a class for interacting with
4757         the org.freedesktop.DBus service.
4758
4759         * mono/Message.cs: Added a mechanism to expose the message that is
4760         currently being dispatched via the static Message.Current
4761         property.  Added Message.Sender and Message.Destination
4762         properties.
4763
4764         * mono/Handler.cs: Expose the dispatched message via
4765         Message.Current when handling method calls.
4766
4767         * mono/Service.cs: Expose the dispatched message via
4768         Message.Current when handling signal emissions.
4769         
4770         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
4771         Connection.BaseService property.
4772
4773 2004-08-28  Havoc Pennington  <hp@redhat.com>
4774
4775         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
4776
4777         More fixes from Steve Grubb
4778         
4779         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
4780         (_dbus_listen_tcp_socket): fix fd leak
4781
4782         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
4783         EINTR to a bit lower in the code
4784
4785 2004-08-26  Jon Trowbridge  <trow@ximian.com>
4786
4787         * bus/driver.c (bus_driver_handle_service_exists): Respond with
4788         TRUE if we are inquiring about the existence of the built-in
4789         org.freedesktop.DBus service.
4790
4791 2004-08-25  John Palmieri  <johnp@redhat.com>
4792         * bus/config-parser.c:
4793         (struct PolicyType): Add POLICY_CONSOLE
4794         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
4795         (start_busconfig_child): Sets up console element when
4796         <policy at_console=""> is encountered in a policy file
4797         (append_rule_from_element): Convert console elements to console
4798         rules.
4799
4800         * bus/policy.c: 
4801         (bus_policy_create_client_policy): Add console rules to the client
4802         policy based on if the client is at the console
4803         (bus_policy_append_console_rule): New function for adding a
4804         console rule to a policy
4805         (bus_policy_merge): Handle console rule merging
4806
4807         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
4808         where we check for console user files
4809         
4810         * dbus/dbus-sysdeps.c:
4811         (_dbus_file_exists): New function which checks if the given
4812         file exists
4813         (_dbus_user_at_console): New function which does the system
4814         specific process of checking if the user is at the console
4815
4816         * dbus/dbus-userdb.c:
4817         (_dbus_is_console_user): New function converts a UID to user name
4818         and then calls the system specific _dbus_user_at_console to 
4819         see if the user is at the console and therefor a console user
4820
4821 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4822
4823         * bus/config-parser.c (set_limit):
4824         * bus/dbus-daemon-1.1.in:
4825         * test/data/valid-config-files/many-rules.conf: set the
4826         max_match_rules_per_connection limt from the config file. 
4827
4828         * doc/busconfig.dtd: update the DTD.
4829
4830         * bus/driver.c: remove some unused variables.
4831
4832 2004-08-24  Mikael Hallendal  <micke@imendio.com>
4833
4834         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
4835         it's been replaced by dbus_g_bus_get
4836
4837 2004-08-23  Colin Walters  <walters@redhat.com>
4838
4839         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4840
4841         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
4842
4843         * bus/selinux.c: Create a thread for policy reload notification.
4844         (bus_selinux_get_policy_root): Implement.
4845
4846         * bus/config-parser.c (start_busconfig_child)
4847         (bus_config_parser_content): Support SELinux-root relative
4848         inclusion.
4849
4850         * configure.in <HAVE_SELINUX>: Add -lpthread.
4851         
4852         * bus/test-main.c (test_pre_hook, test_post_hook): New.
4853         (test_post_hook): Move memory checking into here.
4854         (test_pre_hook, test_post_hook): Move SELinux checks in
4855         here, but conditional on a DBUS_TEST_SELINUX environment
4856         variable.  Unfortunately we can't run the SELinux checks
4857         as a normal user, since they won't have any permissions
4858         for /selinux.  So this will have to be tested manually
4859         for now, until we have virtualization for most of
4860         libselinux.
4861         
4862 2004-08-23  Havoc Pennington  <hp@redhat.com>
4863
4864         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
4865         drop supplementary groups, suggested by Steve Grubb
4866
4867 2004-08-20  Colin Walters  <walters@redhat.com>
4868
4869         * bus/config-parser.c (start_busconfig_child): Remove some unused
4870         variables.
4871         
4872         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
4873         warning.
4874
4875 2004-08-17  Joe Shaw  <joeshaw@novell.com>
4876
4877         * configure.in: If --enable-mono is passed in, if we can't find
4878         mono error out.
4879
4880         * mono/Makefile.am: Use /gacutil to install assemblies into the
4881         GAC and not /root.
4882
4883 2004-08-12  Havoc Pennington  <hp@redhat.com>
4884
4885         * NEWS: update for 0.22
4886
4887         * configure.in: release 0.22
4888
4889 2004-08-11  Colin Walters  <walters@redhat.com>
4890
4891         * tools/dbus-send.c (main, usage): Add --reply-timeout
4892         argument.
4893
4894 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4895
4896         * bus/bus.c (process_config_first_time_only): get rid of an unused
4897         DBusError that was causing a memoy leak (bug #989).
4898
4899         * dbus/dbus-keyring.c, dbus/dbus-message.c:
4900         fix compilation on Solaris/Forte C (bug #974)
4901
4902         * bus/main.c (main): plug two minuscule memleaks.
4903
4904 2004-08-10  Havoc Pennington  <hp@redhat.com>
4905
4906         * doc/dbus-tutorial.xml: add some more info on GLib bindings
4907
4908 2004-08-09  Havoc Pennington  <hp@redhat.com>
4909
4910         * COPYING: switch to Academic Free License version 2.1 instead of
4911         2.0, to resolve complaints about patent termination clause.
4912
4913 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
4914
4915         * README: added documentation for the --enable-python 
4916         configure switch.
4917
4918 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4919
4920         * bus/config-parser.c (bus_config_parser_new): fix an invalid
4921         _unref in the SELinux support.
4922
4923         * doc/busconfig.dtd: update DTD for SELinux support.
4924
4925         * bus/config-loader-libxml.c: fix error handler and parser
4926         initialisation/cleanup. OOM test now works with libxml2 HEAD.
4927
4928         * configure.in: remove the warning about libxml2.
4929
4930         * dbus/dbus-bus.c: silence doxygen warning.
4931
4932 2004-07-31  Colin Walters  <walters@redhat.com>
4933
4934         * configure.in: Move #error in SELinux check to its own line.
4935
4936 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4937
4938         * dbus/dbus-internals.h (_DBUS_SET_OOM):
4939         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
4940         dbus_error_set.
4941
4942         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
4943         broken by the change in the _SET_OOM macros.
4944
4945 2004-07-31  Colin Walters  <walters@redhat.com>
4946
4947         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
4948         BUS_SET_OOM.
4949
4950 2004-07-31  Colin Walters  <walters@redhat.com>
4951
4952         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
4953         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
4954         AC_MSG_CHECKING.
4955
4956 2004-07-24  Havoc Pennington  <hp@redhat.com>
4957
4958         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4959
4960         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
4961         functionality
4962
4963         * configure.in: add --enable-selinux
4964         
4965         * bus/policy.c (bus_policy_merge): add FIXME to a comment
4966
4967         * bus/main.c (main): initialize and shut down selinux
4968
4969         * bus/connection.c: store SELinux ID on each connection, to avoid 
4970         repeated getting of the string context and converting it into 
4971         an ID
4972
4973         * bus/bus.c (bus_context_get_policy): new accessor, though it
4974         isn't used
4975         (bus_context_check_security_policy): check whether the security
4976         context of sender connection can send to the security context of
4977         recipient connection
4978
4979         * bus/config-parser.c: add parsing for <selinux> and <associate>
4980         
4981         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
4982         implement dbus_connection_get_unix_fd()
4983
4984         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
4985         function, used by the selinux stuff
4986         
4987 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4988
4989         * bus/config-loader-libxml.c: complete the implementation of
4990         libxml backend for config file loader. Doesn't work with full OOM
4991         test yet. 
4992         
4993         * configure.in: change error when selecting libxml into a warning.
4994         
4995         * test/data/invalid-config-files: add two non-well-formed XML
4996         files. 
4997         
4998         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
4999         
5000         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5001         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5002         be necessary to read all the buffer. (bug #894)
5003
5004         * bus/activation.c (bus_activation_activate_service): fix a
5005         potential assertion failure (bug #896). Small optimization in the
5006         case of auto-activation messages.
5007
5008         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5009         add test case for byte-through-vararg bug (#901). patch by Kimmo
5010         Hämäläinen. 
5011
5012 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5013
5014         * python/dbus.py:
5015         * python/dbus_bindings.pyx.in:
5016         Add dbus.init_gthreads (), allow emit_signal to pass
5017         arguments to the signal.
5018         
5019 2004-07-24  Havoc Pennington  <hp@redhat.com>
5020
5021         * AUTHORS: add some people, not really comprehensively, let me
5022         know if I missed you
5023
5024 2004-07-24  Havoc Pennington  <hp@redhat.com>
5025
5026         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5027         Owen
5028
5029         * test/Makefile.am (DIST_SUBDIRS): here also
5030
5031 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5032
5033         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5034         breaking build on Solaris, reported by Farhad Saberi on the ML.
5035
5036         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5037         va_arg invocation to account for integer promotion in the case of
5038         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5039
5040         * bus/services.c (bus_service_remove_owner): fix bug #902, use
5041         _dbus_list_get_first_link, not _dbus_list_get_first.
5042
5043         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5044
5045         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5046         handler functions so that the asserts in _dbus_object_subtree_unref
5047         do not fail.
5048
5049         * dbus/dbus-transport-unix.c (do_reading):
5050         _dbus_transport_queue_messages return value is of type
5051         dbus_bool_t, not DBusDispatchStatus.
5052         
5053 2004-07-19  David Zeuthen  <david@fubar.dk>
5054
5055         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5056
5057         * bus/dispatch.c:
5058         (check_get_connection_unix_user): Debug says GetProperty; but the
5059         method is called GetConnectionUnixUser
5060         (check_get_connection_unix_process_id): New function
5061         (bus_dispatch_test): Actually call check_get_connection_unix_user();
5062         also call check_get_connection_unix_process_id()
5063         
5064         * bus/driver.c:
5065         (bus_driver_handle_get_connection_unix_process_id): New function,
5066         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5067         interface
5068         
5069         * dbus/dbus-auth.c:
5070         (handle_server_data_external_mech): Set pid from the credentials
5071         obtained from the socket
5072         
5073         * dbus/dbus-connection.c:
5074         (dbus_connection_get_unix_process_id): New function
5075         
5076         * dbus/dbus-connection.h: 
5077         Add prototype for dbus_connection_get_unix_process_id
5078         
5079         * dbus/dbus-transport.c:
5080         (_dbus_transport_get_unix_process_id): New function
5081         
5082         * dbus/dbus-transport.h:
5083         Add prototype for _dbus_transport_get_unix_process_id
5084         
5085 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5086
5087         * dbus/dbus-message.c: Message counter fix, patch by Christian
5088         Hammond <chipx86@gnupdate.org>
5089
5090 2004-07-18  Seth Nickell  <seth@gnome.org>
5091
5092         * python/dbus.py:
5093         * python/dbus_bindings.pyx.in:
5094         * python/tests/test-client.py:
5095
5096         Add dbus.ByteArray and dbus_bindings.ByteArray
5097         types so that byte streams can be passed back.
5098
5099         Give jdahlin the heaps of credit that are so
5100         rightfully his.
5101         
5102 2004-07-12  Seth Nickell  <seth@gnome.org>
5103
5104         * python/dbus.py:
5105
5106         Add message argument to the default object_method_handler
5107         function.
5108         
5109         * python/dbus_bindings.pyx.in:
5110
5111         Automatically return NIL when passed an empty list
5112         (we can't pass back a list since lists are typed
5113         and we don't have any idea what type the the client
5114         intended the list to be... :-( )
5115         
5116 2004-07-10  Seth Nickell  <seth@gnome.org>
5117
5118         * python/examples/Makefile.am:
5119
5120         Fix distcheck breakage caused by new examples.
5121
5122 2004-07-10  Seth Nickell  <seth@gnome.org>
5123
5124         * python/dbus.py:
5125
5126         Add "message" argument to service-side dbus.Object
5127         methods. This will break existing services written
5128         using the python bindings, but will allow extraction
5129         of all the message information (e.g. who its from).
5130
5131         Add improved "object oriented" signal handling/emission.
5132         
5133         * python/examples/example-service.py:
5134
5135         Nix this example.
5136         
5137         * python/examples/example-signal-emitter.py:
5138         * python/examples/example-signal-recipient.py:
5139
5140         Two new examples that show how to emit and receive
5141         signals using the new APIs.
5142         
5143         * python/examples/example-signals.py:
5144         * python/examples/gconf-proxy-service.py:
5145         * python/examples/gconf-proxy-service2.py:
5146
5147         Add "message" argument to service methods.
5148
5149 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
5150
5151         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5152         * dbus/bus.c (dbus_bus_get_unix_user)
5153         * doc/dbus-specification.xml: implement GetConnectionUnixUser
5154         method of org.freedesktop.DBus interface.
5155
5156         * bus/dispatch.c: test case
5157
5158 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
5159
5160         * python/Makefile.am: switched include directory from glib/ to dbus/
5161         since dbus-glib.h moved
5162  
5163 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5164
5165         * configure.in: prevent building the gcj stuff and libxml loader
5166         since they are broken.
5167
5168 2004-06-20  Havoc Pennington  <hp@redhat.com>
5169
5170         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
5171         codes from the dbus error names
5172         
5173         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
5174         as dbus/dbus-glib.h and that breakage is now visible due to 
5175         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5176         
5177         * glib/dbus-glib.h: s/gproxy/g_proxy/
5178
5179         * dbus/dbus-shared.h: new header to hold stuff shared with
5180         binding APIs
5181         
5182         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5183         than dbus-errors.h
5184
5185         * glib/dbus-glib.h (dbus_set_g_error): move to
5186         dbus-glib-lowlevel.h
5187
5188         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5189         of stuff to enable this
5190
5191         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5192
5193         * a bunch of other changes with the same basic "separate glib 
5194         bindings from dbus.h" theme
5195         
5196 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
5197
5198         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5199
5200         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5201
5202 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5203
5204         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5205         the reply value of the ServiceExists message.
5206
5207 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
5208
5209         * python/dbus_bindings.pyx.in: No longer need to parse path
5210         elements and pass them as arrays of strings.  The C API now
5211         accepts plain path strings.
5212         (_build_parsed_path): removed 
5213
5214 2004-06-07  Havoc Pennington  <hp@redhat.com>
5215
5216         * doc/TODO: remove auto-activation item since it's done; sort
5217         items by importance/milestone
5218
5219 2004-06-07  Havoc Pennington  <hp@redhat.com>
5220
5221         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5222         random signature when using REQUIRED_FIELDS (this hack won't work
5223         in the long term)
5224
5225         * dbus/dbus-message.c: change the signature to be a header field,
5226         instead of message->signature special-case string. Incremental
5227         step forward. Then we can fix up code to send the signature in the
5228         message, then fix up code to validate said signature, then fix up
5229         code to not put the typecodes inline, etc.
5230         (load_one_message): don't make up the signature after the fact
5231         (decode_header_data): require signature field for the known
5232         message types
5233
5234         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5235
5236         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5237
5238 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
5239
5240         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5241
5242         * mono/Handler.cs: Updated to follow new path argument for
5243         (un-)registering objects.
5244
5245         * mono/example/Makefile.am:
5246         * mono/Makefile.am:
5247         * configure.in: Bumped required version for mono and use new -pkg
5248         syntax for deps
5249
5250 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5251
5252         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5253         registration functions take the path argument as char* instead of
5254         char**.
5255
5256         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5257         split off the path decompostion part of
5258         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5259         warnings. 
5260
5261         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5262         
5263 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5264  
5265         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5266         machine approach.  A state is implemented as a function that
5267         handles incoming events as specified for that state.
5268         
5269         * doc/dbus-specification.xml: Update auth protocol state machine
5270         specification to match implementation.  Remove some leftover
5271         base64 examples.
5272
5273 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5274
5275         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5276         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5277         quiet doxygen.
5278
5279         * Doxyfile.in: remove deprecated options.
5280
5281         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5282         glib/test-thread.h, glib/test-thread-client.c,
5283         glib/test-thread-server.c, glib/test-profile.c,
5284         glib/test-dbus-glib.c: remove these unused files.
5285
5286 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5287
5288         * dbus/dbus-object-tree.c
5289         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5290         non-fallback handlers (bug #684).
5291         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5292         (find_subtree_recurse): report wether the returned subtree is an
5293         exact match or a "fallback" match higher up in the tree.
5294         (object_tree_test_iteration): update test case.
5295
5296 2004-06-01  Seth Nickell  <seth@gnome.org>
5297
5298         * python/dbus_bindings.pyx.in:
5299         * python/tests/test-client.py:
5300
5301         Round off basic type support. Add dicts (yay!), and 
5302         remaining array types.
5303
5304         Make MessageIter more general so it works for dicts too.
5305
5306         Mark all loop variables as C integers.
5307         
5308 2004-05-31  Havoc Pennington  <hp@redhat.com>
5309
5310         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
5311         "in" before "out"
5312
5313         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
5314
5315         * glib/dbus-glib-tool.c (main): set up to have a --self-test
5316         option that runs the tests, and start filling in some code
5317         including for starters just dumping the interfaces to stdout
5318
5319         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
5320
5321         * test/data/valid-introspection-files/lots-of-types.xml: test of
5322         an example introspection file
5323
5324         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
5325         "node" (I think...)
5326
5327 2004-05-31  Seth Nickell  <seth@gnome.org>
5328
5329         * python/dbus_bindings.pyx.in:
5330         * python/tests/test-client.py:
5331
5332         Test Suite: 1
5333         Python Bindings: 0
5334
5335         Fix string array memory trashing bug... oops...
5336
5337 2004-05-30  Seth Nickell  <seth@gnome.org>
5338
5339         * python/dbus.py:
5340
5341         Add a nicer-but-less-flexible alternate API for handling 
5342         calls to virtual objects in dbus.ObjectTree.
5343
5344         Screw up the argument order to the dbus.Object constructor
5345         for consistency with dbus.ObjectTree (and to make dbus_methods
5346         optional for future extension)
5347         
5348         * python/examples/Makefile.am:
5349         * python/examples/gconf-proxy-service.py:
5350         * python/examples/gconf-proxy-service2.py:
5351
5352         Alternate implementation of gconf-proxy-service using the
5353         nicer dbus.ObjectTree API.
5354         
5355         * python/examples/example-service.py:
5356         * python/tests/test-server.py
5357
5358         Reverse the argument order to deal with dbus.Object constructor
5359         changes.
5360         
5361 2004-05-30  Seth Nickell  <seth@gnome.org>
5362
5363         * python/examples/example-client.py:
5364         * python/examples/example-service.py:
5365
5366         Take it back. Lists seem to work but they're broken
5367         in the test suite. Make the base examples use
5368         lists (works fine).
5369
5370 2004-05-30  Seth Nickell  <seth@gnome.org>
5371
5372         * python/dbus_bindings.pyx.in:
5373         * python/tests/test-client.py:
5374
5375         Add some more tests and fix errors that crop up.
5376         Unfortunately, currently it seems like marshalling
5377         and unmarshalling of lists is completely broken :-(
5378
5379 2004-05-30  Seth Nickell  <seth@gnome.org>
5380
5381         * python/dbus_bindings.pyx.in:
5382
5383         Add support for ObjectPath type.
5384
5385         * python/dbus.py:
5386
5387         Refactor message handling code to a common function.
5388         
5389         * python/tests/test-client.py:
5390         * python/tests/test-server.py:
5391
5392         Add tests that check to make sure values of all types
5393         can be echoed from a service w/o mangling.
5394         
5395 2004-05-29  Seth Nickell  <seth@gnome.org>
5396
5397         * python/dbus.py:
5398
5399         Add ObjectTree class which allows implementation
5400         of trees of "virtual" objects. Basically the python
5401         wrapper for "register_fallback".
5402         
5403         * python/examples/Makefile.am
5404         * python/examples/gconf-proxy-client.py:
5405         * python/examples/gconf-proxy-service.py:
5406
5407         Implement a simple GConf proxy service that supports
5408         get/set on string and int GConf keys using the ObjectTree.
5409         
5410 2004-05-29  Seth Nickell  <seth@gnome.org>
5411
5412         * python/dbus.py:
5413         * python/examples/example-client.py:
5414         * python/examples/example-service.py:
5415         * python/examples/list-system-services.py:
5416
5417         Add SessionBus, SystemBus and ActivationBus classes
5418         so you don't need to know the special little BUS_TYPE
5419         flag.
5420         
5421 2004-05-29  Havoc Pennington  <hp@redhat.com>
5422
5423         * bus/config-parser.c (process_test_valid_subdir): temporarily
5424         stop testing config parser OOM handling, since expat has issues
5425         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
5426
5427         * bus/dbus-daemon-1.1.in: change requested_reply to
5428         send_requested_reply/receive_requested_reply so we can send the
5429         replies, not just receive them.
5430
5431         * bus/config-parser.c: parse the new
5432         send_requested_reply/receive_requested_reply
5433
5434         * bus/policy.c (bus_client_policy_check_can_send): add
5435         requested_reply argument and use it
5436
5437         * bus/bus.c (bus_context_check_security_policy): pass through
5438         requested_reply status to message send check
5439
5440         * bus/system.conf.in: adapt to requested_reply change
5441         
5442 2004-05-28  Havoc Pennington  <hp@redhat.com>
5443
5444         * test/glib/test-service-glib.c (main): remove unused variable
5445
5446         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
5447
5448         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
5449         from the enum, no longer in use.
5450
5451         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
5452         works right.
5453
5454         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
5455         whether error_name passed in is a valid error name.
5456
5457 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
5458
5459         * dbus/dbus-message.c (dbus_message_get_args): Added support for
5460         OBJECT_PATH and OBJECT_PATH_ARRAY
5461
5462 2004-05-28  Seth Nickell  <seth@gnome.org>
5463
5464         * python/examples/Makefile.am:
5465
5466         Forget to add Makefile.am. Do not pass go.
5467
5468 2004-05-28  Michael Meeks  <michael@ximian.com>
5469
5470         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
5471         fix no int64 case.
5472
5473         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
5474
5475         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
5476         (_dbus_message_iter_get_basic_type_array): impl.
5477         drastically simplify ~all relevant _get methods to use these.
5478         (_dbus_message_iter_append_basic_array),
5479         (dbus_message_iter_append_basic): impl
5480         drastically simplify ~all relevant _append methods to use these.
5481
5482         * dbus/dbus-message-builder.c (parse_basic_type) 
5483         (parse_basic_array, lookup_basic_type): impl.
5484         (_dbus_message_data_load): prune scads of duplicate /
5485         cut & paste coding.
5486
5487         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
5488         (_dbus_demarshal_basic_type): implement,
5489         (demarshal_and_validate_len/arg): beef up debug.
5490         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
5491
5492 2004-05-27  Seth Nickell  <seth@gnome.org>
5493
5494         * configure.in:
5495         * python/Makefile.am:
5496
5497         Include the example python apps in the tarball.
5498         
5499         * python/examples/list-system-services.py
5500
5501         Add a python new example that fetches the list of services
5502         from the system bus.
5503         
5504 2004-05-27  Seth Nickell  <seth@gnome.org>
5505
5506         * python/dbus.py:
5507         * python/dbus_bindings.pyx.in:
5508
5509         Fix failure to notify that a signal was not handled,
5510         resulted in hung functions.
5511         
5512 2004-05-25  Colin Walters  <walters@redhat.com>
5513
5514         * tools/dbus-monitor.c (main): Monitor all types of messages.
5515
5516 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
5517
5518         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
5519         which unregisters the object path and disposes the handler.
5520
5521 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
5522  
5523         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
5524          
5525         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
5526         operands to && so we call dbus_message_iter_next () for the last
5527         argument also.
5528
5529 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5530
5531         * dbus/dbus-object-tree.c
5532         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
5533         children even if the requested path isn't registered.
5534         (object_tree_test_iteration): test object_tree_list_registered.
5535
5536         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
5537         it to 0.
5538         
5539 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
5540
5541         * doc/TODO: Remove resolved items.
5542
5543         * bus/expirelist.h (struct BusExpireList): remove unused n_items
5544         field.
5545         
5546         * bus/connection.c (bus_connections_expect_reply): Enforce the
5547         per-connection limit on pending replies.
5548         
5549         Patch from Jon Trowbridge <trow@ximian.com>:
5550  
5551         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
5552         up a watch that triggers a config reload when one end of the pipe
5553         becomes readable.
5554         (signal_handler): Instead of doing the config reload in our SIGHUP
5555         handler, just write to the reload pipe and let the associated
5556         watch handle the reload when control returns to the main loop.
5557  
5558         * bus/driver.c (bus_driver_handle_reload_config): Added.
5559         Implements a ReloadConfig method for requesting a configuration
5560         file reload via the bus driver.
5561  
5562 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
5563
5564         * HACKING: Updated release instructions concerning the wiki page.
5565
5566 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
5567
5568         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
5569         filter against auth->allowed_mechs; we only add allowed mechs in
5570         record_mechanisms().
5571  
5572         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
5573         ALLOWED_MECHS to auth-script format so we can set the list of
5574         allowed mechanisms.
5575  
5576         * data/auth/client-out-of-mechanisms.auth-script: New test to
5577         check client disconnects when it is out of mechanisms to try.
5578  
5579         * dbus/dbus-auth.c (process_command): Remove check for lines
5580         longer that 1 MB; we only buffer up maximum 16 kB.
5581  
5582         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5583         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
5584         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
5585         assume there might be unused bytes.
5586  
5587         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
5588         client-out-of-mechs, it is handled in process_reject(). Move check
5589         for max failures to send_rejected(), as it's a server-only thing.
5590
5591         * dbus/dbus-auth.c: Factor out protocol reply code into functions
5592         send_auth(), send_data(), send_rejected(), send_error(),
5593         send_ok(), send_begin() and send_cancel().
5594
5595 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
5596
5597         Remove base64 encoding, replace with hex encoding. Original patch
5598         from trow@ximian.com, added error handling.
5599
5600         * dbus/dbus-string.c (_dbus_string_base64_encode)
5601         (_dbus_string_base64_decode): Remove.
5602         (_dbus_string_hex_decode): Add end_return argument so we can
5603         distinguish between OOM and invalid hex encoding.
5604         (_dbus_string_test): Remove base64 tests and add test case for
5605         invalid hex.
5606
5607         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
5608         Replace base64 with hex.
5609
5610         * test/data/auth/invalid-hex-encoding.auth-script: New test case
5611         for invalid hex encoded data in auth protocol.
5612
5613 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5614
5615         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
5616         leak.
5617
5618 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
5619
5620         * mono/dbus-sharp.dll.config.in: Added for GAC
5621         * mono/dbus-sharp.snk: Added for GAC
5622         * mono/Assembly.cs.in: Added for GAC
5623         * mono/Makefile.am: Changes for GAC installation        
5624         * configure.in: Added refs for dbus-sharp.dll.config.in and
5625         Assembly.cs.in. More fixes for mono testing
5626         * mono/example/Makefile.am: Changed var to CSC
5627         * Makefile.am: Changed flag name to DBUS_USE_CSC
5628
5629 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
5630
5631         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
5632         * mono/doc/*: Added documentation framework
5633         * configure.in: Added monodoc check
5634         * README: Added description of mono configure flags
5635
5636 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
5637
5638         * doc/dbus-specification.xml: Added a "Required" column to the 
5639         header fields table and changed the "zero or more" verbage in
5640         the above paragraph to read "The header must contain the required 
5641         named header fields and zero or more of the optional named header 
5642         fields".
5643         * test/data/invalid-messages/*.message: Added the required PATH 
5644         named header field to the tests so that they don't fail on 
5645         'Missing path field'
5646
5647 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
5648
5649         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
5650         the stack by implicitly defining variable and parameter types and
5651         removing the hack of defining C pointers as python objects and later
5652         casting them.
5653
5654 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
5655
5656         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
5657
5658 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
5659
5660         * mono/DBusType/Dict.cs: Handle empty dicts
5661         * mono/DBusType/Array.cs: Handle empty arrays
5662         * mono/Arguments.cs: Handle empty arguments
5663
5664 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
5665
5666         * dbus-sharp.pc.in: Modified to include include Libs and Requires
5667         field
5668
5669 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
5670
5671         * test/data/valid-messages/standard-*.message: Update message
5672         test scripts to new header field names.
5673
5674 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
5675
5676         * test/break-loader.c (randomly_do_n_things): tracked down buffer
5677         overflow to times_we_did_each_thing array which would chop off the
5678         first character of the failure_dir string. Increased the size of
5679         the array to 7 to reflect the number of random mutation functions
5680         we have.
5681
5682 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
5683
5684         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
5685         unix_server->watch here, it is unreffed in disconnect.
5686         (_dbus_server_new_for_tcp_socket): convert NULL host to
5687         "localhost" here so we don't append NULL to address.
5688         
5689         * dbus/dbus-server.c (_dbus_server_test): Add test case for
5690         various addresses, including tcp with no explicit host.
5691
5692 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5693
5694         * dbus/dbus-message.c (decode_header_data, decode_string_field):
5695         fix incorrect setting of .name_offset in the HeaderField (it was
5696         off by two bytes, positioned right after the name and typecode)
5697
5698         * bus/bus.c (bus_context_new, bus_context_unref): test before
5699         calling dbus_server_free_data_slot and _dbus_user_database_unref
5700         in case of an error.
5701
5702         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
5703         by libdbus-gtool.
5704
5705 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
5706
5707         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
5708         _dbus_poll() instead of select().
5709
5710 2004-04-15  Jon Trowbridge  <trow@ximian.com>
5711
5712         * bus/main.c (signal_handler): Reload the configuration files
5713         on SIGHUP.
5714         (main): Set up our SIGHUP handler.
5715
5716         * bus/bus.c (struct BusContext): Store the config file, user and
5717         fork flag in the BusContext.
5718         (process_config_first_time_only): Added.  Contains the code
5719         (previously in bus_context_new) for setting up the BusContext from
5720         the BusConfigParser that should only be run the first time the
5721         config files are read.
5722         (process_config_every_time): Added.  Contains the code (previously
5723         in bus_context_new) for setting up the BusContext from the
5724         BusConfigParser that should be run every time the config files are
5725         read.
5726         (load_config): Added.  Builds a BusConfigParser from the config
5727         files and passes the resulting structure off to
5728         process_config_first_time_only (assuming this is the first time)
5729         and process_config_every_time.
5730         (bus_context_new): All of the config-related code has been moved
5731         to process_config_first_time_only and process_config_every_time.
5732         Now this function just does the non-config-related initializations
5733         and calls load_config.
5734         (bus_context_reload_config): Added.
5735
5736 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5737
5738         * bus/driver.c (bus_driver_handle_get_service_owner):
5739         implement a GetServiceOwner method.
5740         * doc/dbus-specification.xml: document it.
5741         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
5742         
5743         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
5744         implement, using the bus GetServiceOwner method.
5745
5746         * test/glib/test-dbus-glib.c:
5747         use dbus_gproxy_new_for_service_owner so that we can receive the
5748         signal. 
5749
5750 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
5751
5752         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5753         dbus/dbus-message.c, dbus/dbus-protocol.h
5754         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
5755
5756         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5757         dbus/dbus-message.c, dbus/dbus-protocol.h
5758         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
5759
5760         * dbus/dbus-internals.c (_dbus_header_field_to_string):
5761         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
5762         DBUS_HEADER_FIELD_SENDER resolves to "sender"
5763
5764         * doc/dbus-specification.xml (Header Fields Table):
5765         s/SERVICE/DESTINATION
5766         s/SENDER_SERVICE/SENDER
5767
5768
5769 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5770
5771         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
5772         a few seconds.
5773
5774 2004-04-13  Michael Meeks  <michael@ximian.com>
5775
5776         * glib/dbus-gobject.c (handle_introspect): split out
5777         (introspect_properties): this.
5778         (handle_introspect): implement this.
5779
5780         * test/glib/Makefile.am: use the absolute path so the bus
5781         daemon's chdir ("/") doesn't kill us dead.
5782
5783         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
5784
5785 2004-04-12  Jon Trowbridge  <trow@ximian.com>
5786
5787         * bus/config-parser.c (struct BusConfigParser): Added
5788         included_files field.
5789         (seen_include): Added.  Checks whether or not a file has already
5790         been included by any parent BusConfigParser.
5791         (bus_config_parser_new): Copy the parent's included_files.
5792         (include_file): Track which files have been included, and fail on
5793         circular inclusions.
5794         (process_test_valid_subdir): Changed printf to report if we are
5795         testing valid or invalid conf files.
5796         (all_are_equiv): Changed printf to be a bit clearer about
5797         what we are actually doing.
5798         (bus_config_parser_test): Test invalid configuration files.
5799
5800 2004-04-09  Jon Trowbridge  <trow@ximian.com>
5801
5802         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
5803         argument.  If non-null, the newly-constructed BusConfigParser will
5804         be initialized with the parent's BusLimits instead of the default
5805         values.
5806         (include_file): When including a config file, pass in
5807         the current parser as the parent and then copy the BusLimits
5808         from the included BusConfigParser pack to the current parser.
5809         (process_test_valid_subdir): Renamed from process_test_subdir.
5810         (process_test_equiv_subdir): Added.  Walks through a directory,
5811         descending into each subdirectory and loading the config files
5812         it finds there.  If any subdirectory contains two config files
5813         that don't produce identical BusConfigParser structs, fail.
5814         For now, the BusConfigParser's BusPolicies are not compared.
5815         (bus_config_parser_test): Call both process_test_valid_subdir and
5816         process_test_equiv_subdir.
5817
5818         * bus/config-loader-libxml.c (bus_config_load): Take a parent
5819         argument and pass it along to the call to bus_config_parser_new.
5820         Also made a few small changes to allow this code to compile.
5821
5822         * bus/config-loader-expat.c (bus_config_load): Take a parent
5823         argument and pass it along to the call to bus_config_parser_new.
5824
5825         * bus/bus.c (bus_context_new): Load the config file
5826         with a NULL parent argument.
5827
5828 2004-03-29  Michael Meeks  <michael@ximian.com>
5829
5830         * glib/dbus-gobject.c (introspect_properties): split
5831         out, fix mangled 'while' flow control.
5832         (introspect_signals): implement.
5833         (handle_introspect): update.
5834
5835 2004-03-29  Michael Meeks  <michael@ximian.com>
5836
5837         * glib/dbus-gobject.c (set_object_property): split out / 
5838         re-work, use the property type, and not the message type(!)
5839         (get_object_property): ditto.
5840
5841         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
5842         (dbus_gvalue_marshal): make this code re-usable, needed
5843         for signals too, also on both proxy and server side.
5844         Re-write for more efficiency / readability.
5845
5846 2004-03-29  Michael Meeks  <michael@ximian.com>
5847
5848         * dbus/dbus-message.c
5849         (dbus_message_new_error_printf): impl.
5850
5851         * dbus/dbus-connection.c
5852         (dbus_connection_unregister_object_path): fix warning.
5853
5854         * configure.in: fix no-mono-installed situation.
5855
5856 2004-03-27  Havoc Pennington  <hp@redhat.com>
5857
5858         Patch from Timo Teräs:
5859         
5860         * tools/dbus-send.c (main): if --print-reply, assume type is
5861         method call; support boolean type args
5862         
5863         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
5864         bunch of memleak and logic bugs
5865         
5866 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
5867
5868         * mono/Arguments.cs:
5869         * mono/Introspector.cs:
5870         * mono/Handler.cs:
5871         * mono/InterfaceProxy.cs:
5872         * mono/Message.cs
5873         * mono/ProxyBuilder.cs:
5874         * mono/Service.cs:
5875         Added InterfaceProxy class to avoid building proxies for every
5876         object.
5877
5878         * dbus-message.h:
5879         * dbus-message.c (dbus_message_append_args_valist)
5880         (dbus_message_iter_get_object_path)
5881         (dbus_message_iter_get_object_path_array)
5882         (dbus_message_iter_append_object_path)
5883         (dbus_message_iter_append_object_path_array):
5884         Added object_path iter functions to handle OBJECT_PATH arguments
5885         
5886 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
5887
5888         First checkin of mono bindings.
5889         * configure.in:
5890         * Makefile.am:
5891         Build stuff for the bindings
5892         * dbus-sharp.pc.in: Added for pkgconfig
5893         
5894 2004-03-21  Havoc Pennington  <hp@redhat.com>
5895
5896         * test/test-service.c (main): remove debug spew
5897
5898 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5899
5900         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
5901         arrays
5902
5903         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
5904         (dbus_message_iter_init_array_iterator)
5905         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
5906         indicate whether the iterator is empty
5907
5908         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
5909         warnings
5910
5911 2004-03-19  Havoc Pennington  <hp@redhat.com>
5912
5913         * NEWS: 0.21 updates
5914
5915         * configure.in: 0.21
5916
5917         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
5918         
5919         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
5920         you don't need pyrex to make dist
5921
5922         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
5923         sources; run moc
5924         
5925 2004-03-18  Richard Hult  <richard@imendio.com>
5926
5927         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
5928         (dbus_message_set_auto_activation): Add doxygen docs.
5929
5930 2004-03-16  Richard Hult  <richard@imendio.com>
5931
5932         * bus/activation.c: (bus_activation_service_created),
5933         (bus_activation_send_pending_auto_activation_messages),
5934         (bus_activation_activate_service):
5935         * bus/activation.h:
5936         * bus/dispatch.c: (bus_dispatch),
5937         (check_nonexistent_service_auto_activation),
5938         (check_service_auto_activated),
5939         (check_segfault_service_auto_activation),
5940         (check_existent_service_auto_activation), (bus_dispatch_test):
5941         * bus/driver.c: (bus_driver_handle_activate_service):
5942         * bus/services.c: (bus_registry_acquire_service):
5943         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
5944         (dbus_message_get_auto_activation):
5945         * dbus/dbus-message.h:
5946         * dbus/dbus-protocol.h: Implement auto-activation.
5947         
5948         * doc/dbus-specification.xml: Add auto-activation to the spec.
5949
5950 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5951
5952         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
5953         fix a bug with CUSTOM types.
5954
5955         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
5956         a unit test for this bug (used to fail).
5957
5958 2004-03-12  Mikael Hallendal  <micke@imendio.com>
5959
5960         * bus/activation.c:
5961         (babysitter_watch_callback): notify all pending activations waiting for
5962           the same exec that the activation failed.
5963         (bus_activation_activate_service): shortcut the activation if we 
5964           already waiting for the same executable to start up.
5965
5966 2004-03-12  Mikael Hallendal  <micke@imendio.com>
5967
5968         * bus/activation.c: 
5969         - Added service file reloading. 
5970           Each service files directory is kept in an hash table in 
5971           BusActivation and each BusActivationEntry knows what .service-file it
5972           was read from. So when you try to activate a service the bus will 
5973           check if it's been updated, removed or if new .service-files has 
5974           been installed.
5975         - Test code at the bottom for the service file reloading.
5976         * bus/test-main.c: (main):
5977         * bus/test.h:
5978         - added service reloading test.
5979         * dbus/dbus-sysdeps.c: 
5980         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
5981
5982 2004-03-08  Michael Meeks  <michael@ximian.com>
5983
5984         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
5985         bail immediately if disconnected, to avoid busy loop.
5986
5987         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
5988         cleanup cut/paste/inefficiency.
5989
5990 2004-03-01  David Zeuthen  <david@fubar.dk>
5991
5992         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
5993         bug where args were used twice. This bug resulted in a segfault
5994         on a Debian/PPC system when starting the messagebus daemon. Include
5995         dbus-sysdeps.h for DBUS_VA_COPY
5996
5997         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
5998
5999         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6000         appropriate va_copy implementation. From GLib
6001         
6002 2004-02-24  Joe Shaw  <joe@ximian.com>
6003
6004         * bus/services.c (bus_registry_acquire_service): We need to pass
6005         in the service name to dbus_set_error() to prevent a crash.
6006
6007 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6008
6009         * AUTHORS: Reveal my True identity.
6010
6011 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6012
6013         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6014         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6015
6016 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6017
6018         * doc/TODO: Added not about better error check of configuration files.
6019
6020 2003-12-02  Richard Hult  <richard@imendio.com>
6021
6022         * Update AFL version to 2.0 throughout the source files to reflect
6023         the update that was done a while ago.
6024
6025 2003-12-02  Richard Hult  <richard@imendio.com>
6026
6027         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6028         wrote_dict_key to FALSE on the iter that the dict is appended to,
6029         just like when appending other types. Fixes a bug where a dict
6030         couldn't be put inside a dict.
6031         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6032         (message_iter_test, _dbus_message_test): Add test case for dict
6033         inside dict.
6034
6035 2003-12-01  David Zeuthen  <david@fubar.dk>
6036
6037         * python/dbus.py: Add the actual message when calling the reciever
6038         of a signal such that parameters can be inspected. Add the method
6039         remove_signal_receiver
6040         
6041 2003-11-26  Mikael Hallendal  <micke@imendio.com>
6042
6043         * bus/*.[ch]:
6044         * dbus/*.[ch]:
6045         * glib/*.[ch]: Made ref functions return the pointer
6046
6047 2003-11-25  Zack Rusin  <zack@kde.org>
6048
6049         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6050
6051         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
6052         wrappers,
6053
6054         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
6055         the Integrator and to better fit with the server,
6056
6057 2003-11-24  Zack Rusin  <zack@kde.org>
6058
6059         * qt/connection.h, qt/connection.cpp: removing initDbus method since
6060         the integrator handles it now
6061
6062         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6063         since QTimer wasn't really meant to be used the way DBusTimeout is
6064
6065 2003-11-24  Zack Rusin  <zack@kde.org>
6066
6067         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
6068         Integrator class which integrates D-BUS with the Qt event loop,
6069
6070         * qt/connection.h, qt/connection.cpp: Move all the code which
6071         was dealing with D-BUS integration to the Integrator class,
6072         and start using Integrator,
6073
6074 2003-11-23  Zack Rusin  <zack@kde.org>
6075
6076         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
6077         wrapper
6078
6079         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6080         switching namespaces to DBusQt, reworking the class,
6081
6082         * Makefile.cvs: switching dependencies so that it matches KDE 
6083         schematics,
6084         
6085         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
6086         the library
6087
6088 2003-11-19  Havoc Pennington  <hp@redhat.com>
6089
6090         * NEWS: update
6091
6092         * configure.in: bump version to 0.20
6093
6094         * configure.in (have_qt): add yet another place to look for qt
6095         (someone hand trolltech a .pc file...)
6096
6097 2003-11-01  Havoc Pennington  <hp@redhat.com>
6098
6099         * doc/dbus-specification.xml: add state machine docs on the auth
6100         protocol; just a first draft, I'm sure it's wrong.      
6101
6102 2003-10-28  David Zeuthen  <david@fubar.dk>
6103
6104         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6105         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6106         
6107 2003-10-28  Havoc Pennington  <hp@redhat.com>
6108
6109         * dbus/dbus-message.c (get_next_field): delete unused function
6110
6111 2003-10-28  Havoc Pennington  <hp@redhat.com>
6112
6113         * bus/expirelist.c (do_expiration_with_current_time): detect
6114         failure of the expire_func due to OOM
6115
6116         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6117
6118         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6119         NoReply error that's now created by the bus when the service exits
6120
6121 2003-10-28  Havoc Pennington  <hp@redhat.com>
6122
6123         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6124         tests for set_path, set_interface, set_member, etc.
6125
6126         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6127
6128         * dbus/dbus-message.c (set_string_field): always just delete and
6129         re-append the field; accept NULL for deletion
6130         (re_align_fields_recurse): reimplement
6131         
6132 2003-10-26  Havoc Pennington  <hp@redhat.com>
6133
6134         * dbus/dbus-connection.c: fix docs to properly describe the
6135         disconnected message
6136         (_dbus_connection_notify_disconnected): remove this function; 
6137         we can't synchronously add the disconnected message, we have to 
6138         do it after we've queued any remaining real messages
6139         (_dbus_connection_get_dispatch_status_unlocked): queue the
6140         disconnect message only if the transport has finished queueing all
6141         its real messages and is disconnected.
6142         (dbus_connection_disconnect): update the dispatch status here
6143
6144 2003-10-22  Havoc Pennington  <hp@redhat.com>
6145
6146         * bus/bus.c (bus_context_check_security_policy): fix up assertion
6147
6148         * bus/connection.c (bus_transaction_send_from_driver): set the
6149         destination to the connection's base service
6150
6151 2003-10-20  Havoc Pennington  <hp@redhat.com>
6152
6153         hmm, make check is currently not passing.
6154         
6155         * doc/dbus-specification.xml: add requirement that custom type
6156         names follow the same rules as interface names.
6157
6158         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6159         duplication and allow 'c' to be 'custom'; dict is now 'm' for
6160         'map'
6161
6162         * doc/dbus-specification.xml: update type codes to match
6163         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6164         CUSTOM. Add type OBJECT_PATH to the spec.
6165
6166 2003-10-17  Havoc Pennington  <hp@redhat.com>
6167
6168         * bus/driver.c (create_unique_client_name): use "." as separator
6169         in base service names instead of '-'
6170
6171         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6172         byte at the end of the string
6173
6174         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6175         optimization macros since string validation seems to be a slow
6176         point.
6177         
6178         * doc/dbus-specification.xml: restrict valid
6179         service/interface/member/error names. Add test suite code for the
6180         name validation.
6181
6182         * dbus/dbus-string.c: limit service/interface/member/error names 
6183         to [0-9][A-Z][a-z]_
6184
6185         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6186         format arg to verbose spew
6187
6188         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6189         memory, return instead of g_error
6190
6191         * test/test-service.c (path_message_func): support emitting a
6192         signal on request
6193
6194         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6195         activation bus type if DBUS_BUS_ACTIVATION was set; default to
6196         assuming the activation bus was the session bus so that services
6197         started manually will still register.
6198         (init_connections_unlocked): fix so that in OOM situation we get
6199         the same semantics when retrying the function
6200         
6201         * test/test-service.c (main): change to use path registration, to
6202         test those codepaths; register with DBUS_BUS_ACTIVATION rather
6203         than DBUS_BUS_SESSION
6204
6205 2003-10-16  Havoc Pennington  <hp@redhat.com>
6206
6207         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6208
6209         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6210         coverage of the tests
6211         (coverage-report.txt): don't move the .da and .bbg files around
6212
6213 2003-10-16  Havoc Pennington  <hp@redhat.com>
6214
6215         * bus/bus.c (struct BusContext): remove struct field I didn't mean
6216         to put there
6217
6218 2003-10-16  Havoc Pennington  <hp@redhat.com>
6219
6220         * bus/connection.c (bus_pending_reply_expired): either cancel or
6221         execute, not both
6222         (bus_connections_check_reply): use unlink, not remove_link, as we
6223         don't want to free the link; fixes double free mess
6224
6225         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6226         where no reply was received
6227
6228         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6229         fix a refcount leak
6230
6231         * bus/signals.c (match_rule_matches): add special cases for the
6232         bus driver, so you can match on sender/destination for it.
6233
6234         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6235         DBUS_PRINT_BACKTRACE is set
6236
6237         * dbus/dbus-internals.c: add pid to assertion failure messages
6238
6239         * dbus/dbus-connection.c: add message type code to the debug spew
6240
6241         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6242         sender=foo not service=foo
6243
6244         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6245         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
6246         DBUS_ACTIVATION_ADDRESS instead
6247
6248         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6249         DBUS_SYSTEM_BUS_ADDRESS if appropriate
6250
6251         * bus/bus.c (bus_context_new): handle OOM copying bus type into
6252         context struct
6253
6254         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6255         (dbus_message_iter_get_object_path_array): new function (half
6256         finished, disabled for the moment)
6257         
6258         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6259         DBUS_MESSAGE_TYPE_ERROR
6260
6261         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6262         avoid redirecting stderr to /dev/null
6263         (babysit): close stdin if not doing the "exit_with_session" thing
6264
6265         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6266         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6267         stdout/stdin, so things don't get confused
6268         
6269         * bus/system.conf.in: fix to allow replies, I modified .conf
6270         instead of .conf.in again.
6271
6272 2003-10-14  David Zeuthen  <david@fubar.dk>
6273
6274         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6275         argtype to arg_type when raising unknown arg type exception.
6276         Changed type list to reflect the changes in dbus-protocol.h so 
6277         the bindings actually work.
6278
6279 2003-10-14  Havoc Pennington  <hp@redhat.com>
6280
6281         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6282         to have a bug keeping it from outputting the .da files sometimes
6283         (string_get_string): don't append garbage nul bytes to the string.
6284
6285 2003-10-15  Seth Nickell  <seth@gnome.org>
6286
6287         * python/Makefile.am:
6288
6289         Include dbus_h_wrapper.h in the dist tarball.
6290
6291 2003-10-14  Havoc Pennington  <hp@redhat.com>
6292
6293         * bus/bus.c (bus_context_check_security_policy): revamp this to
6294         work more sanely with new policy-based requested reply setup
6295
6296         * bus/connection.c (bus_transaction_send_from_driver): set bus
6297         driver messages as no reply
6298
6299         * bus/policy.c (bus_client_policy_check_can_receive): handle a
6300         requested_reply attribute on allow/deny rules
6301
6302         * bus/system.conf: add <allow requested_reply="true"/>
6303
6304         * bus/driver.c (bus_driver_handle_message): fix check for replies
6305         sent to the bus driver, which was backward. How did this ever work
6306         at all though? I think I'm missing something.
6307
6308         * dbus/dbus-message.c (decode_header_data): require error and
6309         method return messages to have a reply serial field to be valid
6310         (_dbus_message_loader_queue_messages): break up this function;
6311         validate that reply serial and plain serial are nonzero; 
6312         clean up the OOM/error handling.
6313         (get_uint_field): don't return -1 from this
6314         (dbus_message_create_header): fix signed/unsigned bug
6315
6316         * bus/connection.c (bus_connections_expect_reply): save serial of
6317         the incoming message, not reply serial
6318
6319 2003-10-14  Havoc Pennington  <hp@redhat.com>
6320
6321         * bus/connection.c: implement pending reply tracking using
6322         BusExpireList
6323
6324         * bus/bus.c (bus_context_check_security_policy): verify that a
6325         reply is pending in order to allow a reply to be sent. Deny 
6326         messages of unknown type.
6327
6328         * bus/dbus-daemon-1.1.in: update to mention new resource limits
6329
6330         * bus/bus.c (bus_context_get_max_replies_per_connection): new
6331         (bus_context_get_reply_timeout): new
6332
6333 2003-10-13  Seth Nickell  <seth@gnome.org>
6334
6335         * python/Makefile.am:
6336
6337         Pass "make distcheck": remove a couple files from DIST_FILES
6338         that weren't included in the final version.
6339
6340 2003-10-12  Havoc Pennington  <hp@pobox.com>
6341
6342         Added test code that 1) starts an actual bus daemon and 2) uses
6343         DBusGProxy; fixed bugs that were revealed by the test. Lots 
6344         more testing possible, but this is the basic framework.
6345         
6346         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
6347         empty proxy lists from the proxy list hash
6348
6349         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
6350         couple of return_if_fail checks
6351
6352         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
6353         to allocate, so everything is cleared to NULL as it should be.
6354
6355         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
6356         source as data to dbus_connection_set_timeout_functions() as the 
6357         timeout functions expected
6358
6359         * test/glib/run-test.sh: add a little script to start up a message
6360         bus and run tests using it
6361
6362         * tools/dbus-launch.1: updates
6363
6364         * tools/dbus-launch.c (main): add --config-file option
6365
6366         * tools/dbus-launch.c (main): remove confusing else if (runprog)
6367         that could never be reached.
6368
6369         * dbus/dbus-message.c (dbus_message_new_method_return) 
6370         (dbus_message_new_error, dbus_message_new_signal): set the
6371         no-reply-expected flag on all these. Redundant, but may
6372         as well be consistent.
6373
6374 2003-10-11  Havoc Pennington  <hp@pobox.com>
6375
6376         * test/decode-gcov.c (function_solve_graph): make broken block
6377         graph a nonfatal error since it seems to be broken. Need to debug
6378         this.
6379
6380         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
6381         can't just check type > INVALID < LAST anymore
6382
6383         * dbus/dbus-message.c (dbus_message_get_signature): new function
6384         (dbus_message_has_signature): new function
6385         (struct DBusMessage): add signature field (right now it isn't sent
6386         over the wire, just generated on the fly)
6387         (dbus_message_copy): copy the signature, and init strings to
6388         proper length to avoid some reallocs
6389         (dbus_message_iter_init_array_iterator): return void, since it
6390         can't fail
6391         (dbus_message_iter_init_dict_iterator): return void since it can't fail
6392         (_dbus_message_loader_queue_messages): add silly temporary hack to
6393         fill in message->signature on load
6394
6395         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
6396         characters, so they are relatively human-readable.
6397
6398 2003-10-11  Havoc Pennington  <hp@pobox.com>
6399
6400         * dbus/dbus-message.c (_dbus_message_test): add more test
6401         coverage, but #if 0 for now since they uncover a bug 
6402         not fixed yet; I think in re_align_field_recurse()
6403         (re_align_field_recurse): add FIXME about broken assertion
6404
6405         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
6406
6407         * bus/connection.c: share a couple code bits with expirelist.c
6408
6409         * bus/expirelist.h, bus/expirelist.c: implement a generic
6410         expire-items-after-N-seconds facility, was going to share between
6411         expiring connections and replies, decided not to use for expiring
6412         connections for now.
6413
6414         * COPYING: include AFL 2.0 (still need to change all the file headers)
6415
6416 2003-10-09  Havoc Pennington  <hp@redhat.com>
6417
6418         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
6419         gcc 3.3. Not that we do anything about it yet.
6420
6421         * bus/signals.c (bus_match_rule_parse): impose max length on the
6422         match rule text
6423
6424         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
6425
6426 2003-10-09  Havoc Pennington  <hp@redhat.com>
6427
6428         Make matching rules theoretically work (add parser).
6429         
6430         * bus/bus.c (bus_context_check_security_policy): fix up to handle
6431         the case where destination is explicitly specified as bus driver
6432         and someone else is eavesdropping.
6433         
6434         * bus/policy.c (bus_client_policy_check_can_receive): fix up
6435         definition of eavesdropping and assertion
6436
6437         * tools/dbus-send.c (main): use dbus_message_type_from_string
6438
6439         * bus/signals.c (bus_match_rule_parse): implement
6440
6441         * dbus/dbus-message.c (dbus_message_type_from_string): new
6442
6443         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
6444
6445 2003-10-02  Havoc Pennington  <hp@pobox.com>
6446
6447         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
6448         dbus_gproxy_oneway_call
6449
6450         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
6451         (dbus_server_setup_with_g_main): fix to allow calling them more
6452         than once on the same args
6453         (dbus_bus_get_with_g_main): new function
6454
6455 2003-10-02  Havoc Pennington  <hp@redhat.com>
6456
6457         * doc/dbus-tutorial.xml: write some stuff
6458
6459 2003-09-29  Havoc Pennington  <hp@pobox.com>
6460
6461         * configure.in: split checks for Doxygen from XML docs, check for
6462         xmlto
6463
6464         * doc/Makefile.am: XML-ify all the docs, and add a blank
6465         dbus-tutorial.xml
6466
6467 2003-09-29  Havoc Pennington  <hp@pobox.com>
6468
6469         * Merge dbus-object-names branch. To see the entire patch 
6470         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
6471         it's huuuuge though.
6472         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
6473         
6474 2003-09-28  Havoc Pennington  <hp@pobox.com>
6475
6476         * HACKING: update to reflect new server
6477
6478 2003-09-26  Seth Nickell  <seth@gnome.org>
6479
6480         * python/dbus.py:
6481         * python/examples/example-signals.py:
6482
6483         Start implementing some notions of signals. The API
6484         is really terrible, but they sort of work (with the
6485         exception of being able to filter by service, and to
6486         transmit signals *as* a particular service). Need to
6487         figure out how to make messages come from the service
6488         we registered :-(
6489         
6490         * python/dbus_bindings.pyx.in:
6491
6492         Removed duplicate message_handler callbacks.
6493         
6494 2003-09-25  Havoc Pennington  <hp@redhat.com>
6495
6496         * bus/session.conf.in: fix my mess
6497
6498 2003-09-25  Havoc Pennington  <hp@pobox.com>
6499
6500         * bus/session.conf.in: fix security policy, reported by Seth Nickell
6501
6502 2003-09-25  Seth Nickell  <seth@gnome.org>
6503
6504         * python/examples/example-service.py:
6505
6506         Johan notices complete wrong code in example-service, but
6507         completely wrong in a way that works exactly the same (!).
6508         Johan is confused, how could this possibly work? Example
6509         code fails to serve purpose of making things clear.
6510         Seth fixes.
6511
6512 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
6513
6514         * doc/dbus-specification.sgml: don't require header fields
6515         to be 4-byte aligned and specify that fields should be
6516         distinguished from padding by the fact that zero is not
6517         a valid field name.
6518         
6519         * doc/TODO: remove re-alignment item and add item to doc
6520         the OBJECT_PATH type.
6521         
6522         * dbus/dbus-message.c:
6523         (HeaderField): rename the original member to value_offset
6524         and introduce a name_offset member to keep track of where
6525         the field actually begins.
6526         (adjust_field_offsets): remove.
6527         (append_int_field), (append_uint_field),
6528         (append_string_field): don't align the start of the header
6529         field to a 4-byte boundary.
6530         (get_next_field): impl finding the next marhsalled field
6531         after a given field.
6532         (re_align_field_recurse): impl re-aligning a number of
6533         already marshalled fields.
6534         (delete_field): impl deleting a field of any type and
6535         re-aligning any following fields.
6536         (delete_int_or_uint_field), (delete_string_field): remove.
6537         (set_int_field), (set_uint_field): no need to re-check
6538         that we have the correct type for the field.
6539         (set_string_field): ditto and impl re-aligning any
6540         following fields.
6541         (decode_header_data): update to take into account that
6542         the fields aren't 4-byte aligned any more and the new
6543         way to distinguish padding from header fields. Also,
6544         don't exit when there is too much header padding.
6545         (process_test_subdir): print the directory.
6546         (_dbus_message_test): add test to make sure a following
6547         field is re-aligned correctly after field deletion.
6548         
6549         * dbus/dbus-string.[ch]:
6550         (_dbus_string_insert_bytes): rename from insert_byte and
6551         allow the insert of multiple bytes.
6552         (_dbus_string_test): test inserting multiple bytes.
6553
6554         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
6555         warning note to docs about having to re-align any
6556         marshalled values following the string.
6557         
6558         * dbus/dbus-message-builder.c:
6559         (append_string_field), (_dbus_message_data_load):
6560         don't align the header field.
6561         
6562         * dbus/dbus-auth.c: (process_test_subdir): print the
6563         directory.
6564         
6565         * test/break-loader.c: (randomly_add_one_byte): upd. for
6566         insert_byte change.
6567         
6568         * test/data/invalid-messages/bad-header-field-alignment.message:
6569         new test case.
6570         
6571         * test/data/valid-messages/unknown-header-field.message: shove
6572         a dict in the unknown field.
6573
6574 2003-09-25  Seth Nickell  <seth@gnome.org>
6575
6576         * python/dbus.py:
6577         * python/dbus_bindings.pyx.in:
6578
6579         Handle return values.
6580         
6581         * python/examples/example-client.py:
6582         * python/examples/example-service.py:
6583
6584         Pass back return values from the service to the client.
6585         
6586 2003-09-24  Seth Nickell  <seth@gnome.org>
6587
6588         * python/dbus.py:
6589
6590         Connect Object methods (when you are sharing an object) up... pass
6591         in a list of methods to be shared. Sharing all the methods just
6592         worked out too weird. You can now create nice Services over the
6593         DBus in Python. :-)
6594         
6595         * python/dbus_bindings.pyx.in:
6596
6597         Keep references to user_data tuples passed into C functions so 
6598         Python doesn't garbage collect on us.
6599
6600         Implement MethodReturn and Error subclasses of Message for creating
6601         DBusMessage's of those types.
6602         
6603         * python/examples/example-client.py:
6604         * python/examples/example-service.py:
6605
6606         Simple example code showing both how create DBus services and objects,
6607         and how to use them.
6608
6609 2003-09-23  Havoc Pennington  <hp@pobox.com>
6610
6611         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
6612
6613 2003-09-23  Havoc Pennington  <hp@redhat.com>
6614
6615         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
6616         (dbus_gproxy_disconnect_signal): implement
6617         (dbus_gproxy_manager_remove_signal_match): implement
6618         (dbus_gproxy_manager_add_signal_match): implement
6619         (dbus_gproxy_oneway_call): implement
6620
6621 2003-09-23  Havoc Pennington  <hp@pobox.com>
6622
6623         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
6624         subclass. This means dropping the transparent thread safety of the
6625         proxy; you now need a separate proxy per-thread, or your own
6626         locking on the proxy. Probably right anyway.
6627         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
6628
6629 2003-09-22  Havoc Pennington  <hp@redhat.com>
6630
6631         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
6632
6633 2003-09-21  Seth Nickell  <seth@gnome.org>
6634
6635         First checkin of the Python bindings.
6636         
6637         * python/.cvsignore:
6638         * python/Makefile.am:
6639         * python/dbus_bindings.pyx.in:
6640         * python/dbus_h_wrapper.h:
6641
6642         Pieces for Pyrex to operate on, building a dbus_bindings.so
6643         python module for low-level access to the DBus APIs.
6644         
6645         * python/dbus.py:
6646
6647         High-level Python module for accessing DBus objects.
6648
6649         * configure.in:
6650         * Makefile.am:
6651
6652         Build stuff for the python bindings.
6653
6654         * acinclude.m4:
6655
6656         Extra macro needed for finding the Python C header files.
6657
6658 2003-09-21  Havoc Pennington  <hp@pobox.com>
6659
6660         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
6661         implementing the proxy manager, didn't get very far.
6662
6663         * dbus/dbus-bus.c (dbus_bus_add_match): new
6664         (dbus_bus_remove_match): new
6665
6666         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
6667         path_name argument; adjust the other not-yet-implemented 
6668         gproxy constructors to be what I think they should be.
6669
6670 2003-09-21  Havoc Pennington  <hp@pobox.com>
6671
6672         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
6673         by default for message bus connections.
6674
6675         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
6676         exit_on_disconnect flag is set and we process the disconnected
6677         signal.
6678         (dbus_connection_set_exit_on_disconnect): new function
6679
6680 2003-09-21  Havoc Pennington  <hp@pobox.com>
6681
6682         Get matching rules mostly working in the bus; only actually
6683         parsing the rule text remains. However, the client side of
6684         "signal connections" hasn't been started, this patch is only the
6685         bus side.
6686         
6687         * dbus/dispatch.c: fix for the matching rules changes
6688         
6689         * bus/driver.c (bus_driver_handle_remove_match)
6690         (bus_driver_handle_add_match): send an ack reply from these
6691         method calls
6692
6693         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
6694         arguments, reported by Seth Nickell
6695
6696         * bus/config-parser.c (append_rule_from_element): support
6697         eavesdrop=true|false attribute on policies so match rules 
6698         can be prevented from snooping on the system bus.
6699
6700         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
6701         and "destination" in attribute names; fix some docs bugs; 
6702         add eavesdrop=true|false attribute
6703
6704         * bus/driver.c (bus_driver_handle_add_match)
6705         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
6706         messages
6707
6708         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
6709         rid of broadcast service concept, signals are just always broadcast
6710
6711         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
6712         mostly implement matching rules stuff (currently only exposed as signal
6713         connections)
6714
6715 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
6716
6717         * doc/dbus-specification.sgml: Change the header field name
6718         to be an enum and update the rest of the spec to reference
6719         the fields using the conventinal name.
6720
6721         * dbus/dbus-protocol.h: update to reflect the spec.
6722
6723         * doc/TODO: add item to remove the 4 byte alignment requirement.
6724         
6725         * dbus/dbus-message.c: Remove the code to generalise the
6726         header/body length and serial number header fields as named
6727         header fields so we can reference field names using the 
6728         protocol values.
6729         (append_int_field), (append_uint_field), (append_string_field):
6730         Append the field name as a byte rather than four chars.
6731         (delete_int_or_uint_field), (delete_string_field): reflect the
6732         fact that the field name and typecode now occupy 4 bytes instead
6733         of 8.
6734         (decode_string_field), (decode_header_data): update to reflect
6735         protocol changes and move the field specific encoding from
6736         decode_string_field() back into decode_header_data().
6737         
6738         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
6739         Add utility to aid debugging.
6740         
6741         * dbus/dbus-message-builder.c:
6742         (append_string_field), (_dbus_message_data_load): Update to
6743         reflect protocol changes; Change the FIELD_NAME directive
6744         to HEADER_FIELD and allow it to take the field's conventional
6745         name rather than the actual value.
6746         
6747         * test/data/*/*.message: Update to use HEADER_FIELD instead
6748         of FIELD_NAME; Always align the header on an 8 byte boundary
6749         *before* updating the header length.
6750
6751 2003-09-15  Havoc Pennington  <hp@pobox.com>
6752
6753         * dbus/dbus-pending-call.c: add the get/set object data
6754         boilerplate as for DBusConnection, etc. Use generic object data
6755         for the notify callback.
6756
6757         * glib/dbus-gparser.c (parse_node): parse child nodes
6758
6759         * tools/dbus-viewer.c: more hacking on the dbus-viewer
6760         
6761         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
6762         contain functions shared between the convenience lib and the
6763         installed lib
6764
6765         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
6766         -export-symbols-regex to the GLib library
6767
6768         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
6769         fix the locking in here, and add a default handler for
6770         Introspect() that just returns sub-nodes.
6771
6772 2003-09-14  Havoc Pennington  <hp@pobox.com>
6773
6774         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
6775         rather than gfoo consistent
6776
6777         * glib/dbus-gproxy.h: delete for now, move contents to
6778         dbus-glib.h, because the include files don't work right since we
6779         aren't in the dbus/ subdir.
6780         
6781         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
6782         (dbus_gproxy_end_call): finish
6783         (dbus_gproxy_begin_call): finish
6784
6785         * glib/dbus-gmain.c (dbus_set_g_error): new
6786
6787         * glib/dbus-gobject.c (handle_introspect): include information
6788         about child nodes in the introspection
6789
6790         * dbus/dbus-connection.c (dbus_connection_list_registered): new
6791         function to help in implementation of introspection
6792
6793         * dbus/dbus-object-tree.c
6794         (_dbus_object_tree_list_registered_and_unlock): new function
6795
6796 2003-09-12  Havoc Pennington  <hp@pobox.com>
6797
6798         * glib/dbus-gidl.h: add common base class for all the foo_info
6799         types
6800
6801         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
6802         similar to kdcop
6803
6804         * test/Makefile.am: try test srcdir -ef . in addition to test
6805         srcdir = ., one of them should work (yeah lame)
6806         
6807         * glib/Makefile.am: build the "idl" parser stuff as a convenience
6808         library
6809         
6810         * glib/dbus-gparser.h: make description_load routines return
6811         NodeInfo* not Parser*
6812
6813         * Makefile.am (SUBDIRS): build test dir after all library dirs
6814
6815         * configure.in: add GTK+ detection
6816
6817 2003-09-07  Havoc Pennington  <hp@pobox.com>
6818
6819         * Make Doxygen contented.
6820
6821 2003-09-07  Havoc Pennington  <hp@pobox.com>
6822
6823         * doc/dbus-specification.sgml: more updates
6824
6825 2003-09-06  Havoc Pennington  <hp@pobox.com>
6826
6827         * doc/dbus-specification.sgml: partial updates
6828
6829         * bus/dbus-daemon-1.1.in: fix the config file docs for the
6830         zillionth time; hopefully I edited the right file this time.
6831
6832         * bus/config-parser.c (append_rule_from_element): support
6833         send_type, send_path, receive_type, receive_path
6834
6835         * bus/policy.c: add message type and path to the list of things
6836         that can be "firewalled"
6837
6838 2003-09-06  Havoc Pennington  <hp@pobox.com>
6839
6840         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
6841         (dbus_connection_register_object_path): make this not handle
6842         messages to paths below the given path
6843
6844 2003-09-03  Havoc Pennington  <hp@pobox.com>
6845
6846         * test/glib/Makefile.am: add this with random glib-linked test
6847         programs
6848
6849         * glib/Makefile.am: remove the random test programs from here,
6850         leave only the unit tests
6851
6852         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
6853         uscore/javacaps conversion, and fix     
6854         (get_object_property, set_object_property): change to .NET
6855         convention for mapping props to methods, set_FooBar/get_FooBar, 
6856         since one language has such a convention we may as well copy it. 
6857         Plus real methods in either getFooBar or get_foo_bar style won't 
6858         collide with this convention.
6859
6860 2003-09-01  Havoc Pennington  <hp@pobox.com>
6861
6862         * glib/dbus-gparser.c: implement
6863
6864         * glib/dbus-gobject.c: start implementing skeletons support
6865
6866         * configure.in: when disabling checks/assert, also define
6867         G_DISABLE_ASSERT and G_DISABLE_CHECKS
6868
6869 2003-09-01  Havoc Pennington  <hp@pobox.com>
6870
6871         * glib/Makefile.am: rearrange a bunch of files and get "make
6872         check" framework set up
6873
6874 2003-08-31  Havoc Pennington  <hp@pobox.com>
6875
6876         * fix build with --disable-tests
6877
6878 2003-08-30  Havoc Pennington  <hp@pobox.com>
6879
6880         * dbus/dbus-connection.c: purge DBusMessageHandler
6881
6882         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
6883         use callbacks everywhere
6884
6885 2003-08-30  Havoc Pennington  <hp@pobox.com>
6886
6887         * test/data/valid-config-files/system.d/test.conf: change to 
6888         root for the user so warnings don't get printed
6889
6890         * dbus/dbus-message.c: add dbus_message_get_path,
6891         dbus_message_set_path
6892         
6893         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
6894         dispatching to a path
6895
6896         * dbus/dbus-string.c (_dbus_string_validate_path): add
6897
6898         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
6899         (_dbus_marshal_object_path): implement
6900
6901         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
6902         to contain the path to the target object
6903         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
6904         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
6905
6906 2003-08-30  Havoc Pennington  <hp@pobox.com>
6907
6908         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
6909
6910 2003-08-29  Havoc Pennington  <hp@pobox.com>
6911
6912         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
6913         registered
6914         (struct DBusObjectSubtree): shrink this
6915         a lot, since we may have a lot of them
6916         (_dbus_object_tree_free_all_unlocked): implement
6917         (_dbus_object_tree_dispatch_and_unlock): implement
6918
6919 2003-08-29  Havoc Pennington  <hp@pobox.com>
6920
6921         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
6922
6923 2003-08-28  Havoc Pennington  <hp@pobox.com>
6924
6925         purge DBusObjectID
6926         
6927         * dbus/dbus-connection.c: port to no ObjectID, create a
6928         DBusObjectTree, rename ObjectTree to ObjectPath in public API
6929
6930         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
6931         everything except UnregisterFunction and MessageFunction
6932         
6933         * dbus/dbus-marshal.c: port away from DBusObjectID, 
6934         add DBUS_TYPE_OBJECT_PATH
6935         
6936         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
6937         dbus/dbus-objectid.[hc]: remove these, we are moving to 
6938         path-based object IDs
6939
6940 2003-08-25  Havoc Pennington  <hp@pobox.com>
6941
6942         Just noticed that dbus_message_test is hosed, I wonder when I
6943         broke that. I thought make check was passing earlier...
6944         
6945         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
6946         container tree, will replace most of dbus-object-registry
6947
6948         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
6949         screwup
6950
6951 2003-08-19  Havoc Pennington  <hp@pobox.com>
6952
6953         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
6954         (dbus_message_is_error): fix this function
6955
6956         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
6957         match
6958
6959         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
6960         reflect clarified man page
6961         (bus_client_policy_check_can_send): ditto
6962         
6963         * bus/session.conf.in: fixup
6964
6965         * bus/system.conf.in: fixup
6966
6967 2003-08-18  Havoc Pennington  <hp@redhat.com>
6968
6969         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
6970
6971         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
6972         dumb bug created earlier (wrong order of args to
6973         decode_header_data())
6974         
6975         * tools/dbus-send.c: port
6976
6977         * tools/dbus-print-message.c (print_message): port
6978
6979         * test/data/*messages: port all messages over
6980         
6981         * dbus/dbus-message-builder.c: support including 
6982         message type
6983         
6984         * bus/driver.c: port over
6985         
6986         * bus/dispatch.c: port over to new stuff
6987
6988         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6989         rename disconnect signal to "Disconnected"
6990
6991 2003-08-17  Havoc Pennington  <hp@pobox.com>
6992
6993         This doesn't compile yet, but syncing up so I can hack on it from
6994         work. What are branches for if not broken code? ;-)
6995         
6996         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
6997         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
6998         DBUS_HEADER_FIELD_ERROR_NAME
6999         
7000         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7001         for the interface+member pairs
7002         (string_hash): change to use g_str_hash algorithm
7003         (find_direct_function, find_string_function): refactor these to
7004         share most code.
7005         
7006         * dbus/dbus-message.c: port all of this over to support 
7007         interface/member fields instead of name field
7008
7009         * dbus/dbus-object-registry.c: port over
7010         
7011         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7012         from _dbus_string_validate_name
7013
7014         * bus/dbus-daemon-1.1: change file format for the 
7015         <deny>/<allow> stuff to match new message naming scheme
7016
7017         * bus/policy.c: port over
7018
7019         * bus/config-parser.c: parse new format
7020         
7021 2003-08-16  Havoc Pennington  <hp@pobox.com>
7022
7023         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7024         broken assertion
7025
7026         * glib/dbus-gproxy.c: some hacking
7027
7028 2003-08-15  Havoc Pennington  <hp@redhat.com>
7029
7030         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7031
7032         * dbus/dbus-connection.c
7033         (dbus_connection_send_with_reply_and_block): factor out internals;
7034         change to convert any error replies to DBusError instead of 
7035         returning them as a message
7036
7037 2003-08-15  Havoc Pennington  <hp@pobox.com>
7038
7039         * dbus/dbus-connection.c, 
7040         dbus/dbus-pending-call.c: Finish the pending call stuff
7041
7042 2003-08-14  Havoc Pennington  <hp@redhat.com>
7043
7044         * dbus/dbus-pending-call.c: start on new object that will replace
7045         DBusMessageHandler and ReplyHandlerData for tracking outstanding
7046         replies
7047
7048         * dbus/dbus-gproxy.c: start on proxy object used to communicate
7049         with remote interfaces
7050
7051         * dbus/dbus-gidl.c: do the boring boilerplate in here
7052         
7053 2003-08-12  Havoc Pennington  <hp@pobox.com>
7054
7055         * bus/dispatch.c (bus_dispatch): make this return proper 
7056         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7057
7058         * dbus/dbus-errors.c (dbus_set_error): use
7059         _dbus_string_append_printf_valist
7060
7061         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7062         (_dbus_string_append_printf): new
7063
7064         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7065         UNKNOWN_METHOD
7066
7067         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7068         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7069         message is unhandled.
7070
7071 2003-08-11  Havoc Pennington  <hp@pobox.com>
7072
7073         * bus/test.c (client_disconnect_handler): change to return
7074         HANDLED (would have been REMOVE_MESSAGE)
7075
7076         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7077         HANDLED/NOT_YET_HANDLED instead of
7078         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
7079         should be used.
7080
7081 2003-08-10  Havoc Pennington  <hp@pobox.com>
7082
7083         * tools/dbus-send.c (main): add --type argument, for now
7084         supporting only method_call and signal types.
7085
7086         * tools/dbus-print-message.c: print message type
7087
7088         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7089         init connection->objects
7090
7091         * doc/dbus-specification.sgml: fix sgml
7092
7093         * bus/*.c: port over to object-instance API changes
7094
7095         * test/test-service.c: ditto
7096         
7097         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7098         name, we will have to fix up the rest of the code to also handle
7099         this
7100         (dbus_message_new): generic message-creation call
7101         (set_string_field): allow appending name field
7102
7103 2003-08-06  Havoc Pennington  <hp@pobox.com>
7104
7105         * dbus/dbus-object-registry.c: implement signal connection 
7106         and dispatch
7107
7108         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7109
7110         * dbus/dbus-internals.c (_dbus_memdup): new function
7111
7112 2003-08-02  Havoc Pennington  <hp@pobox.com>
7113
7114         * dbus/dbus-message.c (dbus_message_get_no_reply)
7115         (dbus_message_set_no_reply): add these and remove
7116         set_is_error/get_is_error
7117
7118         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
7119         remove the ERROR flag, since there's now an ERROR type
7120
7121 2003-08-01  Havoc Pennington  <hp@pobox.com>
7122
7123         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7124         implement
7125
7126         * dbus/dbus-message.c (dbus_message_get_type): new function
7127
7128         * doc/dbus-specification.sgml: add "type" byte to messages
7129
7130 2003-08-01  Havoc Pennington  <hp@pobox.com>
7131
7132         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7133         a message type enum to distinguish kinds of message
7134         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
7135         that need not be replied to
7136
7137 2003-08-01  Havoc Pennington  <hp@pobox.com>
7138
7139         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7140         (unpack_8_octets): fix no-64-bit-int bug
7141
7142         * dbus/dbus-object-registry.c (validate_id): validate the 
7143         connection ID bits, not just the instance ID.
7144
7145         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7146         the connection-global 33 bits of the object ID
7147
7148         * dbus/dbus-object-registry.c (info_from_entry): fill in 
7149         object ID in the new way
7150
7151         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
7152         define server/client/instance bits.
7153
7154 2003-07-30  Havoc Pennington  <hp@pobox.com>
7155
7156         * dbus/dbus-connection.c (dbus_connection_register_object): fix
7157         build
7158
7159 2003-07-13  Havoc Pennington  <hp@pobox.com>
7160
7161         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7162         fields to DBusObjectVTable and DBusObjectInfo
7163
7164 2003-07-12  Havoc Pennington  <hp@pobox.com>
7165
7166         * dbus/dbus-object-registry.c: implement unit test,
7167         fix bugs discovered in process
7168
7169         * dbus/dbus-connection.c: remove handler_table and
7170         register_handler(), add DBusObjectRegistry usage
7171
7172         * dbus/dbus-objectid.c (dbus_object_id_is_null)
7173         (dbus_object_id_set_null): new functions
7174
7175 2003-07-08  Havoc Pennington  <hp@pobox.com>
7176
7177         * dbus/dbus-object.c: implement some of this
7178
7179         * dbus/dbus-object-registry.c
7180         (_dbus_object_registry_add_and_unlock): fill in the object_id out
7181         param
7182         (_dbus_object_registry_new): handle OOM
7183
7184 2003-07-08  Havoc Pennington  <hp@pobox.com>
7185
7186         * dbus/dbus-object.h: sketch out an API for registering objects
7187         with a connection, that allows us to use as little as 24 bytes
7188         per object and lets application code represent an object in 
7189         any conceivable way.
7190
7191         * dbus/dbus-object-registry.c: implement the hard bits of the
7192         DBusConnection aspect of object API. Not yet wired up.
7193         
7194 2003-07-06  Havoc Pennington  <hp@pobox.com>
7195
7196         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7197         (_dbus_marshal_object_id): new
7198         (_dbus_demarshal_object_id): new
7199         (_dbus_marshal_get_arg_end_pos): support object ID type, and
7200         consolidate identical switch cases. Don't conditionalize handling
7201         of DBUS_TYPE_UINT64, need to handle the type always.
7202         (_dbus_marshal_validate_arg): consolidate identical cases, and
7203         handle DBUS_TYPE_OBJECT_ID
7204
7205         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7206
7207         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7208
7209 2003-09-28  Havoc Pennington  <hp@pobox.com>
7210
7211         * real 0.13 release
7212
7213 2003-09-28  Havoc Pennington  <hp@pobox.com>
7214
7215         * doc/Makefile.am (dbus-specification.html): testing a funky hack
7216         to work with Debian db2html
7217
7218 2003-09-28  Havoc Pennington  <hp@pobox.com>
7219
7220         * configure.in: 0.13
7221
7222         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7223         stylesheet-images for benefit of Debian
7224         
7225         Change back to using filesystem-linked sockets for the system
7226         bus, so only root can create the default system bus address.
7227         
7228         * bus/system.conf.in: change to use
7229         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7230
7231         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7232         from here.
7233
7234         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7235         here, and AC_DEFINE DBUS_SYSTEM_PATH
7236
7237 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7238
7239         * doc/TODO:
7240         * doc/busconfig.dtd:
7241         Add busconfig DTD.
7242         
7243 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7244
7245         * doc/dbus-specification.sgml:
7246         Add activation reply values.
7247         
7248 2003-08-05  Havoc Pennington  <hp@redhat.com>
7249
7250         * configure.in: 0.12
7251
7252 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
7253
7254         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7255         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7256         (add_watch), (remove_watch), (create_source):
7257         Refcount fds, fixes some reentrancy issues.
7258         
7259 2003-07-30  Havoc Pennington  <hp@redhat.com>
7260
7261         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7262         bus address to be abstract if we have abstract sockets
7263
7264         * NEWS: update
7265
7266 2003-07-28  Havoc Pennington  <hp@redhat.com>
7267
7268         * bus/messagebus.in: fix to avoid processname/servicename 
7269         confusion, from Michael Kearey
7270         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7271         
7272 2003-07-23  Havoc Pennington  <hp@pobox.com>
7273
7274         * dbus/dbus-message.c (dbus_message_iter_get_named): 
7275         fix from Andy Hanton to remove broken "+1"
7276
7277 2003-07-16  Havoc Pennington  <hp@pobox.com>
7278
7279         * tools/dbus-launch.c (babysit): close stdout/stderr in the
7280         babysitter process, as suggested by Thomas Leonard, so 
7281         an "eval `dbus-launch --exit-with-session`" will actually 
7282         return
7283
7284 2003-07-16  Havoc Pennington  <hp@pobox.com>
7285
7286         * configure.in: print out EXPANDED_* variables in the summary at
7287         the end; clean up the code that computes EXPANDED_ variables and
7288         get the ones using exec_prefix right. Should make things work
7289         when you build without --prefix
7290
7291 2003-06-29  Havoc Pennington  <hp@pobox.com>
7292
7293         * mono/Test.cs (class Test): fire up a main loop and run it
7294
7295         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
7296         done once, the app has to do it
7297
7298 2003-06-26  Havoc Pennington  <hp@pobox.com>
7299
7300         * mono/Connection.cs: set up connection with the glib main loop
7301
7302 2003-07-01  Havoc Pennington  <hp@redhat.com>
7303
7304         * doc/dbus-specification.sgml: clarify the format of a type code,
7305         change suggested by Jim Blandy
7306
7307 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
7308
7309         * doc/Makefile.am:
7310         * tools/Makefile.am: Don't assume srcdir == builddir.
7311
7312         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
7313         the allocated block.
7314         (_dbus_memory_test): New function.
7315         * dbus/dbus-test.h: Add _dbus_memory_test ().
7316         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
7317
7318         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
7319         of %c%c%c%c.
7320         (dbus_message_new): Remove obsolete @todo.
7321
7322         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
7323         (_dbus_marshal_set_uint64): Fix comment.
7324
7325         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
7326         hardcode FIELD_REPLY_SERIAL.
7327
7328         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
7329         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
7330
7331         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
7332         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
7333
7334 2003-06-24  Havoc Pennington  <hp@pobox.com>
7335
7336         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
7337
7338 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
7339
7340         * configure.in:
7341         * gcj/.cvsignore:
7342         * gcj/Hello.java:
7343         * gcj/Makefile.am:
7344         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
7345         * gcj/org/.cvsignore:
7346         * gcj/org/Makefile.am:
7347         * gcj/org/freedesktop/.cvsignore:
7348         * gcj/org/freedesktop/Makefile.am:
7349         * gcj/org/freedesktop/dbus/.cvsignore:
7350         * gcj/org/freedesktop/dbus/Makefile.am:
7351         * gcj/org/freedesktop/dbus/Message.java: (Message),
7352         (Message.Message):
7353         * gcj/org/freedesktop/dbus/natMessage.cc:
7354         Fix the build system.
7355
7356 2003-06-22  Havoc Pennington  <hp@pobox.com>
7357
7358         * mono/Connection.cs: add more bindings
7359
7360         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
7361         more than once.
7362
7363 2003-06-22  Havoc Pennington  <hp@pobox.com>
7364
7365         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
7366         Start wrapping more stuff.
7367
7368 2003-06-22  Havoc Pennington  <hp@pobox.com>
7369
7370         * mono/Message.cs: implement Message.Wrap() that ensures we only
7371         have a single C# wrapper per DBusMessage, assuming it works which
7372         it probably doesn't.
7373
7374         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
7375         (dbus_message_free_data_slot): new
7376         (dbus_message_set_data): new
7377         (dbus_message_get_data): new
7378
7379 2003-06-22  Havoc Pennington  <hp@pobox.com>
7380
7381         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
7382         (_dbus_data_slot_allocator_alloc): rework these to keep a
7383         reference count on each slot and automatically manage a global
7384         slot ID variable passed in by address
7385
7386         * bus/bus.c: convert to new dataslot API
7387
7388         * dbus/dbus-bus.c: convert to new dataslot API
7389
7390         * dbus/dbus-connection.c: convert to new dataslot API
7391
7392         * dbus/dbus-server.c: convert to new dataslot API
7393
7394         * glib/dbus-gmain.c: ditto
7395
7396         * bus/test.c: ditto
7397
7398         * bus/connection.c: ditto
7399
7400 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
7401
7402         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
7403         after the gcj checks so that the correct configuration tags
7404         will be added to libtool.
7405
7406         * dbus-glib-1.pc.in: No need to specify any includes since
7407         dbus-1.pc.in has those.
7408
7409 2003-06-22  Havoc Pennington  <hp@pobox.com>
7410
7411         * mono/*, gcj/*, configure.in, Makefile.am:
7412         Check in makefiles and subdirs for mono and gcj bindings.
7413         Neither binding actually exists, just trying to get through
7414         all the build and other boring bits.
7415
7416 2003-06-21  Philip Blundell  <philb@gnu.org>
7417
7418         * tools/dbus-monitor.1: Updated.
7419
7420         * tools/dbus-send.1: Likewise.
7421
7422 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
7423
7424         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
7425         for hangup and error after checking read so we won't discard
7426         pending data if both hangup and read are set.
7427
7428 2003-06-19  Philip Blundell  <philb@gnu.org>
7429
7430         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
7431
7432         * tools/dbus-send.c: Accept both --system and --session.
7433
7434         * tools/dbus-monitor.c: Same here.
7435
7436 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
7437
7438         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
7439         from C++ (Patch by Miloslav Trmac).
7440
7441 2003-06-15  Joe Shaw  <joe@assbarn.com>
7442
7443         * configure.in: Check for socklen_t.
7444
7445         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
7446
7447         * test/test-segfault.c: Add #include <sys/time.h>
7448
7449         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
7450         dbus-launch needs it.
7451
7452 2003-06-09  Havoc Pennington  <hp@redhat.com>
7453
7454         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
7455         SUN_LEN, it breaks abstract socket usage
7456
7457         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
7458         starts of lines.
7459
7460 2003-06-04  Havoc Pennington  <hp@pobox.com>
7461
7462         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
7463         using unix:abstract=/foo, and when listening in a tmpdir
7464         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
7465
7466         * dbus/dbus-transport.c (_dbus_transport_open): support
7467         unix:abstract=/foo
7468
7469         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7470         support abstract sockets
7471
7472         * dbus/dbus-transport-unix.c
7473         (_dbus_transport_new_for_domain_socket): support abstract sockets
7474
7475         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
7476         toggle as an argument, implement abstract namespace support
7477         (_dbus_listen_unix_socket): ditto
7478
7479         * configure.in: add --enable-abstract-sockets and implement
7480         a configure check for autodetection of the right value.
7481
7482 2003-06-01  Havoc Pennington  <hp@pobox.com>
7483
7484         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
7485         in /tmp (though on Linux this will end up being useless,
7486         when we add abstract namespace support)
7487
7488         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
7489         subst'ing it
7490
7491 2003-05-28  Colin Walters  <walters@verbum.org>
7492
7493         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
7494
7495 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
7496
7497         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
7498
7499 2003-05-17  Colin Walters  <walters@gnu.org>
7500
7501         * tools/dbus-send.c: Don't exit with an error code if --help was
7502         passed.  Default to using the session bus instead of the system
7503         one.
7504
7505         * tools/dbus-launch.c: Ditto.
7506
7507         * tools/dbus-monitor.c: Ditto.
7508
7509         * tools/dbus-send.1: Update with new arguments.
7510
7511         * tools/dbus-launch.c: Emit code to export variables.  New
7512         arguments -s and -c to specify shell syntax, and a bit of code to
7513         autodetect syntax.  Also, allow specifying a program to run.
7514
7515         * tools/dbus-launch.1: Update with new arguments.
7516
7517         * tools/dbus-send.1: Ditto.
7518
7519         * tools/dbus-monitor.1: Ditto.
7520
7521 2003-05-17  Havoc Pennington  <hp@pobox.com>
7522
7523         * bus/config-parser.c (merge_included): merge in policies from
7524         child configuration file.
7525
7526         * bus/policy.c (bus_policy_merge): function to merge two policies
7527         together
7528
7529 2003-05-16  Havoc Pennington  <hp@redhat.com>
7530
7531         * dbus/dbus-connection.c: disable verbose lock spew
7532
7533         * tools/dbus-send.c: add --print-reply command line option
7534
7535         * tools/dbus-print-message.h (print_message): new util function
7536         shared by dbus-send and dbus-monitor
7537
7538         * tools/dbus-monitor.c (handler_func): exit on disconnect
7539
7540         * dbus/dbus-transport-unix.c (do_reading): if the transport is
7541         disconnected, don't try to use the read_watch
7542
7543         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
7544         so we can find this bug more easily
7545
7546 2003-05-16  Havoc Pennington  <hp@redhat.com>
7547
7548         * bus/policy.c (free_rule_list_func): avoid a crash when passed
7549         NULL as DBusHashTable is annoyingly likely to do.
7550
7551 2003-05-16  Colin Walters  <walters@verbum.org>
7552
7553         * tools/dbus-monitor.c: Add --session argument and usage()
7554         function.
7555
7556         * tools/dbus-monitor.1: Update with new --session arg.
7557
7558         * bus/Makefile.am (install-data-hook): Create
7559         $(libdir)/dbus-1.0/services so that the session bus is happy.
7560
7561 2003-05-15  Havoc Pennington  <hp@redhat.com>
7562
7563         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
7564         on non-x86. ifdef's are evil.
7565
7566 2003-05-15  Havoc Pennington  <hp@redhat.com>
7567
7568         * configure.in: 0.11
7569
7570         * NEWS: update
7571
7572         * bus/Makefile.am (initddir): apparently we are supposed to put
7573         init scripts in /etc/rc.d/init.d not /etc/init.d
7574
7575         * bus/Makefile.am: remove the "you must --enable-tests to make
7576         check" as it broke distcheck
7577
7578         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
7579
7580 2003-05-13  James Willcox  <jwillcox@gnome.org>
7581
7582         * configure.in:
7583         * bus/activation.c: (bus_activation_service_created),
7584         (bus_activation_activate_service):
7585         * bus/driver.c: (bus_driver_send_service_deleted),
7586         (bus_driver_send_service_created), (bus_driver_send_service_lost),
7587         (bus_driver_send_service_acquired),
7588         (bus_driver_send_welcome_message),
7589         (bus_driver_handle_list_services):
7590         * bus/session.conf.in:
7591         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
7592         (dbus_bus_service_exists), (dbus_bus_activate_service):
7593         * dbus/dbus-bus.h:
7594
7595         Add some convenience API which lets you activate a service, and did a
7596         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
7597         and dbus_message_get_args()
7598
7599 2003-05-11  Havoc Pennington  <hp@pobox.com>
7600
7601         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
7602         calling _dbus_marshal_validate_arg() for every byte in a byte
7603         array, etc.
7604
7605         * dbus/dbus-message-handler.c: use atomic reference counting to
7606         reduce number of locks slightly; the global lock in here sucks
7607
7608         * dbus/dbus-connection.c
7609         (_dbus_connection_update_dispatch_status_and_unlock): variant of
7610         update_dispatch_status that can be called with lock held; then use
7611         in a couple places to reduce locking/unlocking
7612         (dbus_connection_send): hold the lock over the whole function
7613         instead of acquiring it twice.
7614
7615         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
7616
7617         * bus/connection.c (bus_connections_setup_connection): fix access
7618         to already-freed memory.
7619
7620         * dbus/dbus-connection.c: keep a little cache of linked list
7621         nodes, to avoid using the global linked list alloc lock in the
7622         normal send-message case. Instead we just use the connection lock
7623         that we already have to take.
7624
7625         * dbus/dbus-list.c (_dbus_list_find_last): new function
7626
7627         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
7628         change to use a struct for the atomic type; fix docs,
7629         they return value before increment, not after increment.
7630
7631         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
7632         (_dbus_string_append_8_aligned): new functions to try to
7633         microoptimize this operation.
7634         (reallocate_for_length): break this out of set_length(), to
7635         improve profile info, and also so we can consider inlining the
7636         set_length() part.
7637
7638         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
7639         strings with some preallocation, cuts down on our calls to realloc
7640         a fair bit. Though if we can get the "move entire string to empty
7641         string" optimization below to kick in here, it would be better.
7642
7643         * dbus/dbus-string.c (_dbus_string_move): just call
7644         _dbus_string_move_len
7645         (_dbus_string_move_len): add a special case for moving
7646         an entire string into an empty string; we can just
7647         swap the string data instead of doing any reallocs.
7648         (_dbus_string_init_preallocated): new function
7649
7650 2003-05-11  Havoc Pennington  <hp@pobox.com>
7651
7652         Write a "test-profile" that does echo client-server with threads;
7653         profile reveals lock contention, memcpy/realloc of buffers, and
7654         UTF-8 validation as hot spots. 20% of lock contention eliminated
7655         with dbus_atomic_inc/dec implementation on x86.  Much remaining
7656         contention is global mempool locks for GList and DBusList.
7657
7658         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
7659         x86 implementation
7660
7661         * dbus/dbus-connection.c (struct DBusConnection): use
7662         dbus_atomic_t for the reference count
7663
7664         * dbus/dbus-message.c (struct DBusMessage): declare
7665         dbus_atomic_t values as volatile
7666
7667         * configure.in: code to detect ability to use atomic integer
7668         operations in assembly, from GLib patch
7669
7670         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
7671         time, tired of it being wrong in threads and forked processes
7672
7673         * glib/test-profile.c: a little program to bounce messages back
7674         and forth between threads and eat CPU
7675
7676         * dbus/dbus-connection.c: add debug spew macros for debugging
7677         thread locks; include config.h at top; fix deadlock in
7678         dbus_connection_flush()
7679
7680 2003-05-08  Havoc Pennington  <hp@pobox.com>
7681
7682         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
7683         data from getting written, and there wasn't a good reason to
7684         use _exit really.
7685
7686         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
7687         dbus_verbose lines in test coverage
7688         (main): add list of functions sorted by # of untested blocks
7689         to the coverage report
7690
7691         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
7692
7693         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
7694
7695         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
7696         extend test coverage
7697
7698         * test/data/auth/cancel.auth-script: test canceling an
7699         authentication
7700
7701         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
7702         aren't used. in CVS history if we end up needing them.
7703
7704 2003-05-04  Havoc Pennington  <hp@pobox.com>
7705
7706         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
7707         unit test
7708
7709         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
7710         function, which assumed length was in # of strings, not bytes
7711
7712         * dbus/dbus-message.c (_dbus_message_test): add tests for some
7713         missing coverage
7714
7715         * dbus/dbus-connection.c
7716         (_dbus_connection_queue_received_message): disable function for
7717         now, we are only using it in test mode
7718
7719         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7720         remove a mistaken FIXME
7721
7722 2003-05-04  Havoc Pennington  <hp@pobox.com>
7723
7724         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
7725         unlock mutex on successful return, patch from Anders Gustafsson
7726
7727 2003-05-04  Havoc Pennington  <hp@pobox.com>
7728
7729         * dbus-glib-1.pc.in (Requires): fix dependencies, from
7730         Anders Gustafsson
7731
7732 2003-05-04  Havoc Pennington  <hp@pobox.com>
7733
7734         * tools/dbus-launch.c: implement
7735
7736         * bus/main.c (main), bus/bus.c (bus_context_new):
7737         implement --print-pid and --fork
7738
7739 2003-05-03  Havoc Pennington  <hp@redhat.com>
7740
7741         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
7742         the address had no value, and add to test suite. Fix and
7743         regression test from Miloslav Trmac
7744
7745 2003-05-03  Havoc Pennington  <hp@pobox.com>
7746
7747         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
7748         watch is invalid when handled
7749
7750         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
7751         dbus-launch utility to launch the bus from a shell script.  Didn't
7752         actually implement dbus-launch yet, it's just a placeholder still.
7753
7754 2003-05-03  Havoc Pennington  <hp@pobox.com>
7755
7756         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
7757         daemon; also documents daemon config file, so replaces
7758         doc/config-file.txt. Corrected some stuff from config-file.txt in
7759         the process of moving it.
7760
7761 2003-05-03  Havoc Pennington  <hp@pobox.com>
7762
7763         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
7764         add some man pages
7765
7766 2003-05-03  Colin Walters  <walters@verbum.org>
7767
7768         * dbus/dbus-sysdeps.c (fill_user_info): Test against
7769         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
7770
7771         * Makefile.am: Update to use new .pc versioning scheme.
7772
7773 2003-05-02  Havoc Pennington  <hp@redhat.com>
7774
7775         * bus/system.conf.in: allow send/receive to/from message bus
7776         service
7777
7778 2003-04-30  Havoc Pennington  <hp@redhat.com>
7779
7780         * configure.in: print a note when building with unit tests and
7781         without assertions
7782
7783 2003-04-30  Havoc Pennington  <hp@redhat.com>
7784
7785         * Makefile.am: add a check-local that complains if you didn't
7786         configure with --enable-tests
7787
7788 2003-04-29  Havoc Pennington  <hp@redhat.com>
7789
7790         * glib/dbus-gmain.c: docs cleanups
7791
7792         * dbus/dbus-types.h: add docs on int64 types
7793
7794         * dbus/dbus-memory.c: fix docs to avoid putting private API in
7795         public API docs section
7796
7797 2003-04-29  Havoc Pennington  <hp@redhat.com>
7798
7799         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
7800         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
7801         parallel install API version, not with the D-BUS package version.
7802
7803         * HACKING: move some of README over here
7804
7805         * README: updates, and document API/ABI policy
7806
7807         * configure.in: reindentation
7808
7809 2003-04-29  Havoc Pennington  <hp@redhat.com>
7810
7811         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
7812         to use this library" to be sure people have the right
7813         expectations.
7814
7815 2003-04-28  Havoc Pennington  <hp@redhat.com>
7816
7817         * configure.in: add --enable-docs which by default is auto yes if
7818         doxygen and db2html found, no otherwise; but can be forced on/off
7819
7820         * doc/Makefile.am: conditionalize whether to build docs on
7821         --enable-docs
7822
7823 2003-04-28  Havoc Pennington  <hp@redhat.com>
7824
7825         * configure.in: 0.10
7826
7827         * NEWS: update
7828
7829         * bus/system.conf.in: add <includedir>system.d</includedir>
7830
7831         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
7832         username was provided but not uid
7833
7834         * bus/config-parser.c (struct BusConfigParser): keep track of
7835         whether the parser is toplevel or was included; change some
7836         of the error handling if it's included.
7837
7838 2003-04-27  Havoc Pennington  <hp@pobox.com>
7839
7840         Unbreak my code...
7841
7842         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7843         report correct status if we finish processing authentication
7844         inside this function.
7845
7846         * bus/activation.c (try_send_activation_failure): use
7847         bus_transaction_send_error_reply
7848
7849         * bus/connection.c (bus_connection_get_groups): return an error
7850         explaining the problem
7851
7852         * bus/bus.c (bus_context_check_security_policy): implement
7853         restriction here that inactive connections can only send the
7854         hello message. Also, allow bus driver to send anything to
7855         any recipient.
7856
7857         * bus/connection.c (bus_connection_complete): create the
7858         BusClientPolicy here instead of on-demand.
7859         (bus_connection_get_policy): don't return an error
7860
7861         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
7862         sender field in message being replied to
7863
7864         * bus/bus.c (bus_context_check_security_policy): fix silly typo
7865         causing it to return FALSE always
7866
7867         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
7868         we checked sender rather than destination
7869
7870 2003-04-25  Havoc Pennington  <hp@redhat.com>
7871
7872         test suite is slightly hosed at the moment, will fix soon
7873
7874         * bus/connection.c (bus_connections_expire_incomplete): fix to
7875         properly disable the timeout when required
7876         (bus_connection_set_name): check whether we can remove incomplete
7877         connections timeout after we complete each connection.
7878
7879         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
7880         probably still broken.
7881
7882         * bus/services.c (bus_registry_acquire_service): implement max
7883         number of services owned, and honor allow/deny rules on which
7884         services a connection can own.
7885
7886         * bus/connection.c (bus_connection_get_policy): report errors here
7887
7888         * bus/activation.c: implement limit on number of pending
7889         activations
7890
7891 2003-04-25  Havoc Pennington  <hp@redhat.com>
7892
7893         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
7894         where we used >= 0 instead of != DBUS_UID_UNSET.
7895
7896 2003-04-25  Havoc Pennington  <hp@redhat.com>
7897
7898         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
7899         were toggled without add/remove, fix from Anders Gustafsson
7900
7901 2003-04-24  Havoc Pennington  <hp@redhat.com>
7902
7903         * test/data/valid-config-files/basic.conf: add <limit> tags to
7904         this test
7905
7906         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
7907         <limit> tag in configuration file.
7908
7909 2003-04-24  Havoc Pennington  <hp@redhat.com>
7910
7911         * bus/dispatch.c: somehow missed some name_is
7912
7913         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
7914         (_dbus_timeout_set_interval): new
7915
7916         * bus/connection.c (bus_connections_setup_connection): record time
7917         when each connection is first set up, and expire them after the
7918         auth timeout passes.
7919
7920 2003-04-24  Havoc Pennington  <hp@redhat.com>
7921
7922         * dbus/dbus-message.c (dbus_message_name_is): rename
7923         (dbus_message_service_is): rename
7924         (dbus_message_sender_is): rename
7925         (dbus_message_get_service): rename
7926
7927 2003-04-24  Havoc Pennington  <hp@redhat.com>
7928
7929         * configure.in: add --enable-checks
7930
7931         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
7932
7933         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
7934         to use thread locks.
7935         (_dbus_connection_handler_destroyed_locked): move some private
7936         functions into proper docs group
7937
7938         * dbus/dbus-internals.h: add _dbus_return_if_fail,
7939         _dbus_return_val_if_fail
7940
7941         Throughout: use dbus_return_if_fail
7942
7943 2003-04-23  James Willcox  <jwillcox@gnome.org>
7944
7945         * glib/dbus-glib.h:
7946         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
7947         (dbus_connection_setup_with_g_main),
7948         (dbus_server_setup_with_g_main):
7949         * glib/test-dbus-glib.c: (main):
7950         * glib/test-thread-client.c: (main):
7951         * glib/test-thread-server.c: (new_connection_callback), (main):
7952         * tools/dbus-monitor.c: (main):
7953
7954         Added a GMainContext argument to dbus_connection_setup_with_g_main()
7955         and dbus_server_setup_with_g_main().
7956
7957 2003-04-20  Havoc Pennington  <hp@pobox.com>
7958
7959         * doc/dbus-specification.sgml: document the restrictions on
7960         message and service names
7961
7962 2003-04-22  Havoc Pennington  <hp@redhat.com>
7963
7964         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
7965         support, and do some code cleanups to share more code and
7966         speed up array marshal/demarshal.
7967
7968         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
7969
7970         * configure.in: generate dbus-arch-deps.h
7971
7972         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
7973         64-bit typecodes
7974
7975 2003-04-22  Havoc Pennington  <hp@redhat.com>
7976
7977         * test/data/valid-messages/opposite-endian.message: fix test
7978         to use proper type for rply field
7979
7980         * test/data/invalid-messages: add tests for below validation
7981
7982         * dbus/dbus-message.c (decode_header_data): validate field types,
7983         and validate that named fields are valid names
7984         (decode_name_field): consider messages in the
7985         org.freedesktop.Local. namespace to be invalid.
7986
7987         * dbus/dbus-string.c (_dbus_string_validate_name): new
7988
7989 2003-04-19  Havoc Pennington  <hp@pobox.com>
7990
7991         * bus/driver.c (bus_driver_handle_hello): check limits and
7992         return an error if they are exceeded.
7993
7994         * bus/connection.c: maintain separate lists of active and inactive
7995         connections, and a count of each. Maintain count of completed
7996         connections per user. Implement code to check connection limits.
7997
7998         * dbus/dbus-list.c (_dbus_list_unlink): export
7999
8000         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8001         number of bytes in the message queue for a connection
8002
8003 2003-04-18  Havoc Pennington  <hp@pobox.com>
8004
8005         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8006
8007         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8008         memleaks
8009
8010         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8011         on realloc be sure to update the pointer in the keyring
8012
8013         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8014         offset to avoid writing to unallocated memory
8015
8016         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8017         try the next mechanism, so we properly handle OOM
8018
8019         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8020         on OOM.
8021         (_dbus_keyring_new): fix OOM bug
8022         (_dbus_keyring_new_homedir): always set error; impose a maximum
8023         number of keys we'll load from the file, mostly to speed up the
8024         test suite and make its OOM checks more useful, but also for
8025         general sanity.
8026
8027         * dbus/dbus-auth.c (process_error_server): reject authentication
8028         if we get an error from the client
8029         (process_cancel): on cancel, send REJECTED, per the spec
8030         (process_error_client): send CANCEL if we get an error from the
8031         server.
8032
8033 2003-04-18  Havoc Pennington  <hp@pobox.com>
8034
8035         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8036         debug spew
8037
8038         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8039         handling problem
8040
8041         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8042         about DBUS_TEST_HOMEDIR once
8043
8044         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8045         the environment
8046
8047         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8048         config file so we test the right thing
8049
8050         Throughout: assorted docs improvements
8051
8052 2003-04-18  Havoc Pennington  <hp@pobox.com>
8053
8054         * glib/dbus-gmain.c: adapt to watch changes
8055
8056         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8057
8058         * dbus/dbus-server.h: remove dbus_server_handle_watch
8059
8060         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8061
8062         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8063         like DBusTimeout, so we don't need dbus_connection_handle_watch
8064         etc.
8065
8066 2003-04-17  Havoc Pennington  <hp@redhat.com>
8067
8068         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8069         database usage so it all goes via the DBusUserDatabase cache.
8070
8071 2003-04-17  Havoc Pennington  <hp@redhat.com>
8072
8073         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8074         there was an OOM watch we skipped, we always return TRUE so we
8075         iterate again to have a look at it again. Fixes test suite hang.
8076         Code rearrangement also lets us lose some memset and only iterate
8077         over callbacks once.
8078
8079         * bus/driver.c (bus_driver_handle_message): sense of test for
8080         reply was backward
8081
8082 2003-04-16  Havoc Pennington  <hp@pobox.com>
8083
8084         * doc/dbus-specification.sgml: make spec say serials are unsigned
8085
8086         * dbus/dbus-message.h: change message serials to unsigned
8087
8088         * dbus/dbus-connection.c: adapt to message serials being unsigned
8089
8090 2003-04-15  Havoc Pennington  <hp@pobox.com>
8091
8092         * bus/bus.c: create and keep around a shared DBusUserDatabase
8093         object.
8094
8095         * bus/connection.c (bus_connection_get_groups): don't cache
8096         groups for user in the connection object, since user database
8097         object now does that.
8098
8099 2003-04-16  Havoc Pennington  <hp@redhat.com>
8100
8101         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8102         list of size counters
8103         (_dbus_message_loader_putback_message_link): put back a popped link
8104
8105         * dbus/dbus-connection.c
8106         (dbus_connection_set_max_live_messages_size): rename
8107         max_received_size
8108         (dbus_connection_get_outgoing_size): get size of outgoing
8109         queue
8110         (_dbus_connection_set_connection_counter): remove this cruft
8111
8112 2003-04-14  Havoc Pennington  <hp@redhat.com>
8113
8114         * dbus/dbus-userdb.c: user database abstraction, mostly to get
8115         caching, but at some point we might want to be able to use a
8116         different database.
8117
8118         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8119         SHA1 conf file to test the sha1 auth mechanism, since the regular
8120         test always uses EXTERNAL when available.
8121
8122         * configure.in,
8123         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8124         add conf file that requires use of sha1 auth
8125
8126 2003-04-13  Havoc Pennington  <hp@pobox.com>
8127
8128         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8129         from Philip Blundell to send messages and monitor them.
8130
8131 2003-04-13  Havoc Pennington  <hp@pobox.com>
8132
8133         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8134         callbacks
8135
8136         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8137         users
8138
8139         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8140         fix to only recover unused bytes if we're already authenticated
8141         (_dbus_transport_get_is_authenticated): fix to still mark us
8142         authenticated if there are unused bytes.
8143
8144         * bus/dispatch.c: implement security policy checking
8145
8146         * bus/connection.c (bus_transaction_send_from_driver): new
8147
8148         * bus/bus.c (bus_context_check_security_policy): new
8149
8150         * bus/dispatch.c (send_service_nonexistent_error): delete this,
8151         now we just set the DBusError and it gets converted to an error
8152         reply.
8153
8154         * bus/connection.c (allow_user_function): enable code using actual
8155         data from the config file
8156
8157         * bus/policy.c (list_allows_user): handle wildcard rules for
8158         user/group connection perms
8159
8160 2003-04-13  Havoc Pennington  <hp@pobox.com>
8161
8162         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8163
8164         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8165
8166         * bus/policy.c (bus_policy_append_mandatory_rule)
8167         (bus_policy_append_default_rule, bus_policy_append_user_rule)
8168         (bus_policy_append_group_rule): new functions
8169
8170 2003-04-12  Havoc Pennington  <hp@pobox.com>
8171
8172         * bus/config-parser.c (bus_config_parser_new): fix a memleak
8173
8174         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8175         the pid/gid/uid, just for paranoia.
8176
8177         * test/break-loader.c (randomly_do_n_things): find a byte
8178         containing a type code, and randomly change it to a different
8179         type code.
8180
8181 2003-04-12  Havoc Pennington  <hp@pobox.com>
8182
8183         * bus/policy.h: change BusPolicy to be the thing from the config
8184         file, and rename old BusPolicy to BusClientPolicy
8185
8186         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8187         match change in how policy works
8188
8189         * dbus/dbus-internals.h: mark assert_not_reached as
8190         __attribute((noreturn))__
8191
8192 2003-04-11  Havoc Pennington  <hp@redhat.com>
8193
8194         * doc/dbus-specification.sgml: fix a spot with the wrong name for
8195         the broadcast service. Use boolean return for ServiceExists.
8196
8197 2003-04-11  Havoc Pennington  <hp@redhat.com>
8198
8199         * configure.in: add another directory to look for qt in.
8200
8201 2003-04-11  Havoc Pennington  <hp@redhat.com>
8202
8203         * AUTHORS: add Colin Walters
8204
8205 2003-04-11  Havoc Pennington  <hp@redhat.com>
8206
8207         * NEWS: update
8208
8209         * configure.in: 0.9
8210
8211 2003-04-11  Havoc Pennington  <hp@redhat.com>
8212
8213         * bus/messagebus.in: remove pid file when stopping the
8214         message bus, since the bus won't have privileges to remove it
8215         itself.
8216
8217 2003-04-11  Havoc Pennington  <hp@redhat.com>
8218
8219         * bus/bus.c (bus_context_new): move credentials change after
8220         creating pidfile
8221
8222 2003-04-11  Havoc Pennington  <hp@pobox.com>
8223
8224         * test/decode-gcov.c: add "below average functions" to the
8225         coverage report, and change how some of the code works.
8226
8227         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8228         not in the coverage stats.
8229
8230         * test/test-service.c (main): use _dbus_verbose not fprintf in a
8231         couple places so running the test suite doesn't result in megaspam.
8232
8233 2003-04-11  Havoc Pennington  <hp@pobox.com>
8234
8235         * bus/dispatch.c (check_existent_service_activation): accept a no
8236         memory error in a place we didn't before
8237
8238         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8239         in case the first one failed," since the test suite is less
8240         broken now.
8241
8242 2003-04-10  Havoc Pennington  <hp@pobox.com>
8243
8244         * bus/dispatch.c (check_segfault_service_activation): add test
8245         for launching an executable that just crashes.
8246
8247         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8248         don't leave a million cores. We'll see how portable this is.
8249
8250 2003-04-10  Havoc Pennington  <hp@pobox.com>
8251
8252         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8253         the possible parent failures before we fork, so that we don't
8254         fail to create a babysitter after creating the child.
8255
8256         * bus/activation.c (bus_activation_activate_service): kill child
8257         if we don't successfully complete the activation.
8258
8259 2003-04-10  Havoc Pennington  <hp@redhat.com>
8260
8261         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8262         the connection if it's disconnected
8263
8264         * bus/activation.c (bus_activation_service_created): use new
8265         transaction features to roll back removal of pending activation if
8266         we don't successfully create the service after all. Don't remove
8267         pending activation if the function fails.
8268
8269         * dbus/dbus-list.c (_dbus_list_insert_before_link)
8270         (_dbus_list_insert_after_link): new code to facilitate
8271         services.c fixes
8272
8273         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8274         new functionality, so we can preallocate the ability to insert
8275         into a hash table.
8276
8277         * bus/connection.c (bus_transaction_add_cancel_hook): new function
8278         allowing us to put custom hooks in a transaction to be used for
8279         cancelling said transaction
8280
8281         * doc/dbus-specification.sgml: add some discussion of secondary
8282         service owners, and disallow zero-length service names
8283
8284         * bus/services.c (bus_registry_acquire_service): new function,
8285         splits out part of bus_driver_handle_acquire_service() and fixes
8286         a bug where we didn't remove the service doing the acquiring
8287         from the secondary queue if we failed to remove the current owner
8288         from the front of the queue.
8289
8290 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8291
8292         * doc/dbus-specification.sgml:
8293         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
8294
8295 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8296
8297         * bus/.cvsignore:
8298         * glib/.cvsignore:
8299         * test/.cvsignore:
8300         Added files to cvsignore
8301
8302         * dbus/dbus-message.h:
8303         * dbus/dbus-message.c: (dbus_message_iter_get_named):
8304         Make get_named() take two out argument and return a boolean.
8305         (dbus_message_iter_get_args_valist):
8306         Update usage of get_named().
8307         (dbus_message_iter_append_byte):
8308         Fix typo
8309         (dbus_message_iter_append_named)
8310         Fix typo
8311         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
8312         More tests.
8313
8314 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8315
8316         * dbus/dbus-marshal.[ch]:
8317         Add array_type_pos argument to _dbus_marshal_validate_arg.
8318         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
8319
8320         * dbus/dbus-message.[ch]:
8321         Multi-dimensional arrays have full type specification in the
8322         outermost array. Iter code re-arranged to handle this.
8323         Added some more iter tests.
8324
8325         * doc/dbus-specification.sgml:
8326         Add me to authors.
8327         Remove old FIXME.
8328         Update new array encoding description.
8329         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
8330
8331         * test/data/invalid-messages/array-with-mixed-types.message:
8332         * test/data/valid-messages/array-of-array-of-uint32.message:
8333         Change to the new array format.
8334
8335         * test/data/invalid-messages/too-short-dict.message:
8336         Fix bug in test.
8337
8338         * test/data/valid-messages/recursive-types.message:
8339         Fix up and extend test.
8340
8341 2003-04-10  Havoc Pennington  <hp@pobox.com>
8342
8343         * bus/dispatch.c: lots of fixes
8344
8345         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
8346         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
8347         that was crack, broke the test service.
8348
8349         * dbus/dbus-transport.c (_dbus_transport_open): fix error
8350         handling to avoid piling up errors if we get a failure on the
8351         first address.
8352
8353         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
8354         pid in assertion failures.
8355
8356         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
8357         to some fixed size of file descriptor array. Don't return TRUE
8358         anytime a timeout exists, that led to lots of busy loop silliness
8359         in the tests.
8360
8361 2003-04-09  Havoc Pennington  <hp@redhat.com>
8362
8363         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
8364         I'd checked this in earlier but hadn't.
8365
8366 2003-04-09  Havoc Pennington  <hp@redhat.com>
8367
8368         * bus/dispatch.c (bus_dispatch_test): get a bit further through
8369         the activation test (man this is getting old!)
8370
8371 2003-04-09  Havoc Pennington  <hp@redhat.com>
8372
8373         * test/test-utils.c: use dispatch status function to fix this up
8374
8375         * bus/connection.c (connection_watch_callback): don't dispatch
8376         from here
8377         (connection_timeout_callback): don't dispatch from here
8378         (bus_connections_setup_connection): set the dispatch status function
8379         (bus_connection_disconnected): unset it
8380
8381         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
8382         used to add a connection to be dispatched
8383         (_dbus_loop_iterate): do the dispatching at the end of each
8384         iteration
8385
8386         * dbus/dbus-connection.c
8387         (dbus_connection_set_dispatch_status_function): new function
8388         allowing us to fix up main loop usage
8389         (_dbus_connection_last_unref): free all the various function
8390         user data
8391         (dbus_connection_dispatch): call the DispatchStatusFunction
8392         whenever this function returns
8393         (dbus_connection_handle_watch): call DispatchStatusFunction
8394         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
8395         (reply_handler_timeout): call DispatchStatusFunction
8396         (dbus_connection_flush): call DispatchStatusFunction
8397
8398 2003-04-09  Havoc Pennington  <hp@redhat.com>
8399
8400         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
8401         a memory leak
8402
8403         * bus/dispatch.c (check_service_activated): fix bug in test
8404
8405         * dbus/dbus-mainloop.c (check_timeout): fix this up
8406
8407         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
8408         verbose output so we can sort out output from different processes,
8409         e.g. in the activation case.
8410
8411 2003-04-08  Colin Walters  <walters@gnu.org>
8412
8413         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
8414         the pid file.
8415         (bus_context_new): Set it.
8416         (bus_context_unref): Use it to delete the pid file.
8417
8418 2003-04-08  Havoc Pennington  <hp@redhat.com>
8419
8420         * test/data/invalid-messages/array-with-mixed-types.message:
8421         regression test that fails for the moment
8422
8423         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
8424         tests for convenience
8425
8426         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
8427         array of nil, it broke things.
8428
8429         * test/data/invalid-messages/array-of-nil.message: regression test
8430
8431         * test/data/valid-messages/array-of-array-of-uint32.message:
8432         happened to write this so added it to suite
8433
8434 2003-04-08  Havoc Pennington  <hp@redhat.com>
8435
8436         * bus/driver.c (bus_driver_handle_acquire_service): init
8437         retval/reply before checking name
8438
8439         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
8440         recursion depth argument
8441
8442         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
8443         in the public struct for future extension
8444
8445         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
8446         typo
8447
8448         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
8449         message
8450
8451         * doc/dbus-specification.sgml: fix typo
8452
8453 2003-04-08  Alexander Larsson  <alexl@redhat.com>
8454
8455         Implemented recursive types, named types and new-style iters
8456
8457         * bus/driver.c:
8458         * glib/test-thread-client.c: (thread_func):
8459         * glib/test-thread-server.c: (handle_test_message):
8460         * test/test-service.c: (handle_echo):
8461         Update to new api
8462
8463         * dbus/Makefile.am:
8464         * dbus/dbus-dict.c:
8465         * dbus/dbus-dict.h:
8466         * dbus/dbus.h
8467         Remove DBusDict
8468
8469         * dbus/dbus-internals.c: (_dbus_type_to_string):
8470         Update for new types.
8471
8472         * dbus/dbus-marshal.[ch]:
8473         Implement recursive types and the new marshalling format.
8474         Remove hardcoded dict marshalling.
8475         Marshal named types.
8476
8477         * dbus/dbus-message-builder.c:
8478         Add BYTE_ARRAY.
8479         Remove references to old types
8480
8481         * dbus/dbus-message.[ch]:
8482         New non-refcounted iter API that supports recursive iters.
8483         Use iters for appending, including support for recursive
8484         iters.
8485         Add byte and named type support.
8486         Update everything to new marshalling formats.
8487         Add tests for new API.
8488
8489         * dbus/dbus-protocol.h:
8490         Remove old array types.
8491         Add types: BYTE, ARRAY, DICT, NAMED
8492
8493         * dbus/dbus-string.c:
8494         * dbus/dbus-sysdeps.c:
8495         Make parse_double locale safe.
8496
8497         * dbus/dbus-test-main.c:
8498         Call setlocale.
8499
8500         * dbus/dbus-test.c:
8501         Kill dict test
8502
8503         * doc/dbus-specification.sgml:
8504         Update spec
8505
8506         * test/data/incomplete-messages/missing-body.message:
8507         * test/data/invalid-messages/bad-boolean.message:
8508         * test/data/invalid-messages/bad-boolean-array.message:
8509         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
8510         * test/data/invalid-messages/boolean-has-no-value.message-raw:
8511         * test/data/invalid-messages/too-short-dict.message:
8512         * test/data/valid-messages/dict-simple.message:
8513         * test/data/valid-messages/dict.message:
8514         * test/data/valid-messages/emptiness.message:
8515         * test/data/valid-messages/lots-of-arguments.message:
8516         * test/data/valid-messages/no-padding.message:
8517         * test/data/valid-messages/recursive-types.message:
8518         Add missing NAME fields
8519         Fix up dicts & arrays
8520
8521         * test/data/invalid-messages/dict-with-nil-value.message:
8522         Removed, this is not invalid anymore.
8523
8524         * test/data/valid-messages/recursive-types.message:
8525         Add new test for deeply recursive types.
8526
8527 2003-04-07  Havoc Pennington  <hp@pobox.com>
8528
8529         * bus/driver.c (bus_driver_handle_acquire_service): return an
8530         error if you try to acquire a service that starts with ':'
8531
8532 2003-04-07  Havoc Pennington  <hp@redhat.com>
8533
8534         * doc/dbus-specification.sgml: require that base service names
8535         start with ':' and that the base service is created/deleted
8536         as first and last things a connection does on the bus
8537
8538         * bus/dispatch.c (check_existent_service_activation): lots more
8539         work on the activation test; it doesn't fully pass yet...
8540
8541         * test/test-service.c (main): fix so we don't memleak the
8542         connection to the message bus
8543         (filter_func): accept a message asking us to exit
8544
8545 2003-04-06  Havoc Pennington  <hp@pobox.com>
8546
8547         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
8548         from Colin Walters
8549
8550         * configure.in: fixes to Qt detection from Colin Walters
8551
8552         * doc/Makefile.am: Only remove generated docbook dirs if they
8553         exist, from Colin Walters
8554
8555         * dbus/dbus-bus.c: change how we set well-known connections to
8556         NULL, so that it works if a single connection is stored in
8557         two well-known array slots.
8558
8559         * test/Makefile.am: remove a lot of stuff that isn't immediately
8560         useful, it's in CVS history if we want it.
8561
8562         * test/test-service.c: use dbus-mainloop instead of that
8563         watch.[hc] crack
8564
8565 2003-04-06  Havoc Pennington  <hp@pobox.com>
8566
8567         * dbus/Makefile.am: split lists of sources into stuff that goes in
8568         the library, util functions that go in the lib and are also used
8569         elsewhere, and util functions that are used in tests/daemon but
8570         don't go in the lib.
8571
8572         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
8573         here so it can be used in test binaries also
8574
8575 2003-04-06  Havoc Pennington  <hp@pobox.com>
8576
8577         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
8578         here in the parent process, so we can return an error if it
8579         fails. Also, move some of the code into the child so the parent
8580         is less hosed if we fail midway through.
8581
8582         * bus/bus.c (bus_context_new): move pidfile detection further up
8583         in the function, before we start overwriting sockets and such.
8584
8585         * bus/messagebus.in: adjust this a bit, not sure if it will work.
8586
8587         * configure.in: add --with-system-pid-file and --with-system-socket
8588
8589 2003-04-06  Colin Walters  <walters@verbum.org>
8590
8591         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
8592
8593         * bus/system.conf.in: Declare a pidfile.
8594
8595         * bus/bus.c (bus_context_new): Test for an existing pid file, and
8596         create one (if appropriate).
8597
8598         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
8599         (struct BusConfigParser) [pidfile]: New.
8600         (element_type_to_name, merge_included, start_busconfig_child)
8601         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
8602         (bus_config_parser_unref): Free it.
8603         (bus_config_parser_get_pidfile): New function.
8604
8605         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
8606
8607         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
8608
8609         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
8610
8611         * dbus/dbus-sysdeps.h: Prototype it.
8612
8613 2003-04-06  Havoc Pennington  <hp@pobox.com>
8614
8615         * bus/bus.c (bus_context_new): print the address in here, rather
8616         than in main(), because we need to do it before forking the daemon
8617
8618         * bus/dispatch.c (send_service_nonexistent_error): set the sender
8619         on the service nonexistent error
8620
8621         * bus/driver.c (bus_driver_handle_acquire_service): set the
8622         sender on the AcquireService reply
8623
8624         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
8625         server also listen on a UNIX socket so services can connect to it.
8626
8627 2003-04-06  Havoc Pennington  <hp@pobox.com>
8628
8629         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
8630         so it detects deadlocks and also we actually init threads when
8631         debugging.
8632
8633 2003-04-06  Havoc Pennington  <hp@pobox.com>
8634
8635         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8636         save the domain socket name, and unlink it when we disconnect the
8637         server. Means that at least when we exit normally, we won't leave
8638         a bunch of junk in /tmp
8639
8640         * dbus/dbus-transport-unix.c
8641         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
8642         memory management). (I was making a real change here but then
8643         didn't)
8644
8645 2003-04-06  Havoc Pennington  <hp@pobox.com>
8646
8647         * bus/bus.c (bus_context_new): fix wrong handling of
8648         server_data_slot_unref() in the error case.
8649
8650         * dbus/dbus-internals.h (_dbus_assert): change so it passes
8651         "(condition) != 0" to _dbus_real_assert so that
8652         "_dbus_assert (pointer)" doesn't cause a warning
8653
8654         * bus/main.c (main): accept --print-address option to print out
8655         the message bus address
8656
8657         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
8658
8659         * dbus/dbus-transport.c (_dbus_transport_open): special error for
8660         "tmpdir" option to unix: address on client side
8661
8662         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
8663         to unix: address
8664
8665         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
8666         we can use to create sockets in the test suite.
8667
8668         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
8669         cleanly. To be used for testing.
8670
8671         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
8672
8673         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
8674
8675         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8676         handle trying to call this when there's no servers active
8677
8678 2003-04-05  Havoc Pennington  <hp@pobox.com>
8679
8680         * NEWS: update
8681
8682         * configure.in: 0.8
8683
8684 2003-04-05  Havoc Pennington  <hp@pobox.com>
8685
8686         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
8687         crash on startup. Need to get "try starting the daemon"
8688         in the test suite I guess. ;-)
8689
8690         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
8691         tracked the number of open connections; it's better done in
8692         application-specific code as you want it to span all servers etc.
8693
8694 2003-04-05  Havoc Pennington  <hp@pobox.com>
8695
8696         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
8697         patch from Colin Walters
8698
8699 2003-04-05  Havoc Pennington  <hp@pobox.com>
8700
8701         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
8702         reality; in fact multiple mechanisms are allowed.
8703
8704         * dbus/dbus-internals.c (_dbus_real_assert)
8705         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
8706         _dbus_assert_not_reached() into functions, so that they don't show
8707         up in basic block counts for test coverage, and don't use up as
8708         much disk space. Does mean slower execution speed though, so
8709         assumes --disable-asserts is the normal production case.
8710
8711 2003-04-05  Havoc Pennington  <hp@pobox.com>
8712
8713         * test/Makefile.am (dist-hook): also dist *.in files
8714
8715         * NEWS: update
8716
8717         * configure.in: 0.7
8718
8719 2003-04-05  Havoc Pennington  <hp@pobox.com>
8720
8721         * dbus/dbus-string.c: docs warning
8722
8723         * dbus/dbus-spawn.c: missing docs
8724
8725         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
8726
8727 2003-04-05  Havoc Pennington  <hp@pobox.com>
8728
8729         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
8730         magic from GLib
8731
8732         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
8733         to -1 once we've reaped the babysitter
8734         (_dbus_babysitter_handle_watch): do as much work as we can, not
8735         just one go of it
8736
8737         * bus/activation.c: add code using DBusBabysitter so that we
8738         handle it when a service fails to start up properly.
8739         (bus_activation_service_created): don't remove the activation
8740         entries as we go, just let them get removed when we free the pending
8741         activation. Unref reply messages after sending them.
8742
8743 2003-04-05  Havoc Pennington  <hp@pobox.com>
8744
8745         * test/decode-gcov.c (main): print per-directory stats in the report
8746
8747         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
8748
8749 2003-04-05  Havoc Pennington  <hp@pobox.com>
8750
8751         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
8752
8753         * test/decode-gcov.c: hack up a little program to suck data
8754         out of gcov files. Yes this is sort of silly.
8755
8756         * configure.in: define something in config.h and do an
8757         AM_CONDITIONAL when gcov is enabled
8758
8759 2003-04-04  Havoc Pennington  <hp@redhat.com>
8760
8761         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
8762         return a "babysitter" object that is used to monitor the status of
8763         the spawned process and reap it when required.
8764
8765         * test/test-segfault.c, test/test-exit.c,
8766         test/test-sleep-forever.c: binaries that do various lame things,
8767         used in the test suite.
8768
8769         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
8770
8771 2003-04-03  Havoc Pennington  <hp@pobox.com>
8772
8773         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
8774         in preparation for modifying it, dbus-sysdeps is getting
8775         a bit unmanageable.
8776
8777 2003-04-03  Havoc Pennington  <hp@redhat.com>
8778
8779         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
8780         have multiple ones
8781
8782         * bus/*.[hc]: adapt to mainloop change
8783
8784 2003-04-03  Havoc Pennington  <hp@redhat.com>
8785
8786         * bus/activation.c (load_directory): fix up memleaks
8787         (bus_activation_entry_free): free the entry
8788
8789         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
8790         we get one from the message bus; fix memleaks.
8791
8792         * dbus/dbus-message.c (dbus_set_error_from_message): new function
8793
8794 2003-04-03  Havoc Pennington  <hp@pobox.com>
8795
8796         * bus/config-parser.c (bus_config_parser_unref): free
8797         list of mechanisms, bug discovered by test suite enhancements
8798         (putting system.conf and session.conf into suite)
8799
8800         * test/Makefile.am, test/test-service.c: add placeholder for a
8801         test service that we'll activate as part of test suite. Doesn't
8802         do anything yet.
8803
8804         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
8805         setting NULL value, and use system malloc not dbus_malloc()
8806         when we have unavoidable memleakage.
8807
8808         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
8809         didn't work, and support DBUS_BUS_ACTIVATION.
8810
8811         * bus/activation.c (child_setup): pass our well-known bus type to
8812         the child
8813
8814         * bus/config-parser.c: support <type> to specify well-known type
8815
8816         * doc/dbus-specification.sgml: document the env variables to
8817         locate well-known buses and find service activator
8818
8819 2003-04-02  Havoc Pennington  <hp@redhat.com>
8820
8821         * test/Makefile.am (all-local): add a rule to copy tests to
8822         builddir, so we can have generated tests. Use this to remove the
8823         silly hack for testing system.conf and session.conf. Will use this
8824         shortly to generate .service files pointing to test binaries.
8825
8826 2003-04-02  Havoc Pennington  <hp@redhat.com>
8827
8828         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
8829         current alloc and needed new length, not max of the doubled
8830         allocation and needed new length. Also, when building tests,
8831         don't do the double-allocation stuff, just realloc every time.
8832
8833 2003-04-02  Havoc Pennington  <hp@redhat.com>
8834
8835         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
8836         in error messages
8837         (_dbus_string_get_dirname): new
8838         (_dbus_sysdeps_test): new
8839         (_dbus_directory_open): include dirnames in error messages
8840
8841         * bus/config-parser.c: interpret <include> and <includedir> and
8842         <servicedir> relative to config file location if the given
8843         filename is not absolute.
8844
8845         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
8846
8847 2003-04-02  Havoc Pennington  <hp@redhat.com>
8848
8849         * bus/connection.c (bus_transaction_send_error_reply): set sender
8850         service for the error, and unref the reply on success
8851
8852         * bus/activation.c: convert to use BusTransaction so OOM can be
8853         handled correctly
8854         (bus_activation_service_created): set sender of the message
8855
8856 2003-04-01  Havoc Pennington  <hp@redhat.com>
8857
8858         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
8859         <includedir> (at least mostly)
8860
8861         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
8862         first, then the user ID
8863
8864 2003-04-01  Havoc Pennington  <hp@pobox.com>
8865
8866         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
8867         function
8868
8869         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
8870
8871         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
8872
8873         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
8874         socket 0777, and unlink any existing socket.
8875
8876         * bus/bus.c (bus_context_new): change our UID/GID and fork if
8877         the configuration file so specifies; set up auth mechanism
8878         restrictions
8879
8880         * bus/config-parser.c (bus_config_parser_content): add support
8881         for <fork> option and fill in code for <auth>
8882
8883         * bus/system.conf.in: add <fork/> to default configuration,
8884         and limit auth mechanisms to EXTERNAL
8885
8886         * doc/config-file.txt (Elements): add <fork>
8887
8888         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
8889         (_dbus_change_identity): new function
8890
8891 2003-03-31  Havoc Pennington  <hp@redhat.com>
8892
8893         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
8894         (_dbus_listen_unix_socket): fix off-by-one error in null
8895         termination spotted by Nalin
8896
8897 2003-03-31  Havoc Pennington  <hp@redhat.com>
8898
8899         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
8900         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
8901         having a real home directory available.
8902
8903 2003-03-31  Havoc Pennington  <hp@redhat.com>
8904
8905         * bus/Makefile.am (install-data-hook): create /var/run/dbus
8906
8907         * bus/messagebus.in: add init script for Red Hat /etc/init.d
8908
8909         * configure.in: add support for specifying a style of init script
8910         to install
8911
8912 2003-03-31  Havoc Pennington  <hp@redhat.com>
8913
8914         Fix some annoying DBusString API and fix all affected code.
8915
8916         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
8917         max_length argument
8918         (_dbus_string_get_data): change to return string instead of using
8919         an out param
8920         (_dbus_string_get_const_data): ditto
8921         (_dbus_string_get_data_len): ditto
8922         (_dbus_string_get_const_data_len): ditto
8923
8924 2003-03-31  Havoc Pennington  <hp@redhat.com>
8925
8926         * bus/main.c (main): fix up the command line arguments to be nicer
8927
8928 2003-03-31  Havoc Pennington  <hp@redhat.com>
8929
8930         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
8931         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
8932         final location that lands in the config file
8933
8934         * bus/config-loader-expat.c (bus_config_load): fix type of
8935         XML_Parser variable
8936
8937         * doc/TODO: remove TODO item for dbus_bus_get()
8938
8939         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
8940
8941 2003-03-31  Havoc Pennington  <hp@pobox.com>
8942
8943         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
8944         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
8945         argument since they are always client side
8946
8947         * dbus/dbus-server.c (dbus_server_get_address): new function
8948
8949         * bus/main.c (main): take the configuration file as an argument.
8950
8951         * test/data/valid-config-files/debug-allow-all.conf: new file to
8952         use with dispatch.c tests for example
8953
8954         * bus/test-main.c (main): require test data dir
8955
8956         * bus/bus.c (bus_context_new): change this to take a
8957         configuration file name as argument
8958
8959         * doc/config-file.txt (Elements): add <servicedir>
8960
8961         * bus/system.conf, bus/session.conf: new files
8962
8963         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
8964         well-known socket if none set
8965
8966         * configure.in: create system.conf and session.conf
8967
8968 2003-03-30  Havoc Pennington  <hp@pobox.com>
8969
8970         * bus/config-parser.c: hacking
8971
8972         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
8973         to shut down, since it could cause weirdness with the DBusList
8974         lock
8975
8976         * dbus/dbus-list.c (_dbus_list_test): add tests for the
8977         link-oriented stack routines
8978         (alloc_link): free the mempool if the first alloc from it fails
8979
8980         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
8981
8982         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
8983         from GLib
8984         (_dbus_string_skip_white): new
8985
8986         * doc/config-file.txt (Elements): add <includedir>
8987
8988 2003-03-28  Havoc Pennington  <hp@pobox.com>
8989
8990         * dbus/dbus-string.c (_dbus_string_copy_data_len)
8991         (_dbus_string_copy_data): new functions
8992
8993 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
8994
8995         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
8996         * dbus/dbus-bus.h:
8997         Add dbus_bus_get.
8998
8999         * dbus/dbus-memory.c:
9000         Fix a doc comment.
9001
9002 2003-03-28  Havoc Pennington  <hp@pobox.com>
9003
9004         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9005         I think it may have just been superstition. Not sure.
9006
9007         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9008         failures that were not being handled.
9009
9010         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9011
9012         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9013         row that will fail on out-of-memory.
9014
9015         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9016         function for testing out-of-memory handling.
9017
9018         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9019         allocation functions, they do map exactly to the expat ones.
9020
9021 2003-03-27  Havoc Pennington  <hp@redhat.com>
9022
9023         * bus/config-loader-libxml.c (bus_config_load): add another error
9024         check
9025
9026 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9027
9028         * doc/TODO:
9029         Add note about automatic service activation.
9030
9031         * doc/dbus-specification.sgml:
9032         Rename the specification and clarify a few things.
9033
9034 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9035
9036         * Doxyfile.in:
9037         * dbus/dbus-address.c:
9038         * dbus/dbus-dict.c:
9039         * dbus/dbus-marshal.c:
9040         * dbus/dbus-server-debug-pipe.c:
9041         * dbus/dbus-transport-unix.c:
9042         Fix documentation warnings.
9043
9044 2003-03-26  Havoc Pennington  <hp@pobox.com>
9045
9046         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9047         after every test so it's quick and easy to see which leaked, and
9048         so we test multiple dbus_shutdown() calls
9049
9050         * configure.in: change configure.in XML stuff to also support
9051         expat
9052
9053         * config-loader-libxml.c: some hacking
9054
9055         * config-loader-expat.c: some hacking
9056
9057         * config-parser.c: some hacking, plus tests
9058
9059 2003-03-25  Havoc Pennington  <hp@redhat.com>
9060
9061         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9062
9063         * configure.in: add --with-xml option to specify XML library,
9064         right now only libxml is supported.
9065
9066         * bus/config-loader-libxml.c, config-parser.c: sync some minor
9067         nonworking code between home and work, still just stubs
9068
9069 2003-03-24  Havoc Pennington  <hp@redhat.com>
9070
9071         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9072         file
9073
9074         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9075         NULL argument for "message" if the error is a well-known one,
9076         fill in a generic message in this case.
9077
9078         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9079         favor of DBusError
9080
9081         * bus/test.c (bus_test_flush_bus): add
9082
9083         * bus/policy.c (bus_policy_test): test code stub
9084
9085 2003-03-24  Havoc Pennington  <hp@pobox.com>
9086
9087         * bus/connection.c (bus_connections_setup_connection): set up
9088         the "can this user connect" function, but it always returns
9089         TRUE until we have a config file parser so we can have a config
9090         file that allows connections.
9091
9092 2003-03-23  Havoc Pennington  <hp@pobox.com>
9093
9094         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9095         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9096         the mutex, so we can check for proper memory management
9097         and OOM handling.
9098
9099         * dbus/dbus-dataslot.c: remove the mutex from
9100         DBusDataSlotAllocator and lock it manually when using it,
9101         to simplify fitting it into the global slots framework.
9102
9103         * dbus/dbus-threads.c (init_static_locks): rework how we're
9104         handling global locks so they are easily shut down.
9105
9106         * bus/policy.c (bus_policy_append_rule): fix
9107
9108         * bus/test-main.c (main): check for memleaks
9109
9110         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9111         test suite check for memleaks
9112
9113         * dbus/dbus-memory.c: add support in test mode for tracking
9114         number of outstanding blocks
9115
9116 2003-03-23  Havoc Pennington  <hp@pobox.com>
9117
9118         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9119         policies code
9120
9121         * dbus/dbus-hash.h: add ULONG hash keys
9122
9123         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9124         (_dbus_get_group_id): new function
9125
9126 2003-03-20  Havoc Pennington  <hp@redhat.com>
9127
9128         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9129         new function
9130         (dbus_connection_get_unix_user): new function
9131
9132 2003-03-20  Havoc Pennington  <hp@pobox.com>
9133
9134         * bus/connection.c (bus_connection_send_oom_error): assert that
9135         message has a sender
9136         (connection_execute_transaction): ditto
9137         (bus_connection_preallocate_oom_error): fix to set the sender, and
9138         set recipient to the destination service, not the bus driver
9139
9140         * bus/policy.c: hacking
9141
9142         * dbus/dbus-message.c (dbus_message_service_is): new function
9143         (dbus_message_sender_is): new
9144
9145 2003-03-19  Havoc Pennington  <hp@redhat.com>
9146
9147         * bus/policy.c: start sketching code for policy restrictions on
9148         what connections can do.
9149
9150 2003-03-18  Havoc Pennington  <hp@redhat.com>
9151
9152         * doc/TODO: some notes on high-level todo items. Little nitpick
9153         stuff is all in @todo, so no need to add it here.
9154
9155         * doc/config-file.txt: some notes on how config file might look
9156
9157 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
9158
9159         * configure.in: 0.6
9160
9161         * NEWS: Update.
9162
9163 2003-03-17  Havoc Pennington  <hp@redhat.com>
9164
9165         * dbus/dbus-internals.h: add gcc attributes so that
9166         our printf-style functions warn on bad arguments to
9167         format
9168
9169         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9170         format bug
9171
9172         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9173         printf format bug
9174
9175 2003-03-17  Havoc Pennington  <hp@redhat.com>
9176
9177         * bus/test-main.c (main): make it print something as it runs
9178         so make check doesn't look stuck
9179
9180         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9181         from CVS, now obsolete
9182
9183 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9184
9185         * bus/dispatch.c: (bus_dispatch):
9186         Refetch the service name since it may have been reallocated
9187         when dbus_message_set_sender was called.
9188
9189         * dbus/dbus-sysdeps.c: (_dbus_accept):
9190         Add address and address length variables and use them to stop
9191         valgrind from complaining.
9192
9193 2003-03-17  Havoc Pennington  <hp@pobox.com>
9194
9195         All tests pass, no memleaks, no valgrind complaints.
9196
9197         * bus/test.c: refcount handler_slot
9198
9199         * bus/connection.c (bus_connections_new): refcount
9200         connection_data_slot
9201
9202         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9203         bytes so that auth scripts pass.
9204
9205         * bus/dispatch.c: init message_handler_slot so it gets allocated
9206         properly
9207
9208         * bus/dispatch.c (message_handler_slot_ref): fix memleak
9209
9210         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9211         dealloc server_pipe_hash when no longer used for benefit of
9212         leak checking
9213
9214         * dbus/dbus-auth.c (process_command): memleak fix
9215
9216         * bus/dispatch.c (check_hello_message): memleak fix
9217
9218 2003-03-16  Havoc Pennington  <hp@pobox.com>
9219
9220         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9221
9222 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9223
9224         * bus/activation.c (bus_activation_activate_service): Append
9225         the pending activation entry to the list of pending activations.
9226
9227 2003-03-16  Havoc Pennington  <hp@pobox.com>
9228
9229         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9230         connections
9231
9232         * dbus/dbus-address.c (create_entry): fix OOM handling when
9233         failing to alloc entry->method
9234
9235 2003-03-16  Havoc Pennington  <hp@pobox.com>
9236
9237         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9238         the watch
9239
9240         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9241         add some missing dbus_set_result
9242
9243         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9244         alloc the DBusMessageHandler
9245
9246         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9247         the transport here, since we call this from the finalizer; it
9248         resulted in a double-finalize.
9249
9250         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9251         where we tried to use transport->connection that was NULL,
9252         happened when transport was disconnected early on due to OOM
9253
9254         * bus/*.c: adapt to handle OOM for watches/timeouts
9255
9256         * dbus/dbus-transport-unix.c: port to handle OOM during
9257         watch handling
9258
9259         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9260         reference to unused bytes instead of a copy
9261
9262         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9263         out of memory
9264
9265         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9266         FALSE on OOM
9267
9268         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9269         of memory
9270
9271 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9272
9273         * doc/dbus-specification.sgml:
9274         Document reply message for ActivateService.
9275
9276 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9277
9278         * bus/activation.c: (bus_pending_activation_entry_free),
9279         (bus_pending_activation_free), (bus_activation_new),
9280         (bus_activation_unref), (bus_activation_service_created),
9281         (bus_activation_activate_service):
9282         * bus/activation.h:
9283         * bus/bus.c: (bus_context_new):
9284         * bus/desktop-file.c: (new_section):
9285         * bus/driver.c: (bus_driver_send_service_deleted),
9286         (bus_driver_handle_activate_service):
9287         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9288         * bus/services.h:
9289         * dbus/dbus-connection.c:
9290         (dbus_connection_send_with_reply_and_block):
9291         * dbus/dbus-message.c: (dbus_message_append_args_valist):
9292         * dbus/dbus-protocol.h:
9293         Make activation work better. Now pending activations will be queued
9294         and the daemon won't try to activate services that are already registered.
9295
9296 2003-03-16  Havoc Pennington  <hp@pobox.com>
9297
9298         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
9299         connection data
9300
9301         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
9302         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
9303
9304 2003-03-16  Havoc Pennington  <hp@pobox.com>
9305
9306         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
9307         this. always run the test suite before commit...
9308
9309         * bus/*: adapt to DBusConnection API changes
9310
9311         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
9312         requires renaming stuff to avoid dbus_connection_dispatch name
9313         conflict.
9314
9315         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
9316         function
9317
9318         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9319         separate from _dbus_message_loader_return_buffer()
9320
9321         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
9322         this, because it's now always broken to use; the number of
9323         messages in queue vs. the number still buffered by the message
9324         loader is undefined/meaningless. Should use
9325         dbus_connection_get_dispatch_state().
9326         (dbus_connection_dispatch): rename from
9327         dbus_connection_dispatch_message
9328
9329 2003-03-16  Havoc Pennington  <hp@pobox.com>
9330
9331         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
9332         implementation
9333
9334 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9335
9336         * dbus/dbus-connection.c:
9337         (dbus_connection_send_with_reply_and_block):
9338         Decrease connection->n_incoming when removing an entry
9339         from the list.
9340         * dbus/dbus-dict.c: (dbus_dict_entry_free),
9341         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9342         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9343         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
9344         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
9345         (dbus_dict_get_byte_array):
9346         Handle NULL arrays and strings. Also add support for byte arrays.
9347
9348         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
9349         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
9350         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
9351         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
9352         (_dbus_demarshal_dict), (demarshal_and_validate_len),
9353         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
9354         * dbus/dbus-marshal.h:
9355         Add support for marshalling and demarshalling empty arrays and strings.
9356
9357         * dbus/dbus-message.c: (dbus_message_append_args_valist),
9358         (dbus_message_append_string_array),
9359         (dbus_message_iter_get_boolean),
9360         (dbus_message_iter_get_boolean_array),
9361         (dbus_message_iter_get_int32_array),
9362         (dbus_message_iter_get_uint32_array),
9363         (dbus_message_iter_get_double_array),
9364         (dbus_message_iter_get_byte_array),
9365         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
9366         (check_message_handling):
9367         Add support for getting empty arrays and dicts.
9368
9369         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
9370         Don't do any validation at all for now, that's better than just checking
9371         for ASCII.
9372
9373         * test/data/valid-messages/emptiness.message:
9374         New test message with lots of empty arrays.
9375
9376 2003-03-16  Havoc Pennington  <hp@pobox.com>
9377
9378         * dbus/dbus-connection.c
9379         (_dbus_connection_queue_received_message_link): new function that
9380         can't fail due to OOM
9381
9382         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
9383         new function pops a message together with a list link
9384         containing it.
9385
9386         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
9387         message queuing functions to avoid needing to alloc memory
9388
9389 2003-03-16  Havoc Pennington  <hp@pobox.com>
9390
9391         Oops - test code was only testing failure of around 30 of the
9392         mallocs in the test path, but it turns out there are 500+
9393         mallocs. I believe this was due to misguided linking setup such
9394         that there was one copy of dbus_malloc etc. in the daemon and one
9395         in the shared lib, and only daemon mallocs were tested. In any
9396         case, the test case now tests all 500+ mallocs, and doesn't pass
9397         yet, though there are lots of fixes in this patch.
9398
9399         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9400         this so that it doesn't need to allocate memory, since it
9401         has no way of indicating failure due to OOM (and would be
9402         annoying if it did).
9403
9404         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
9405
9406         * bus/Makefile.am: rearrange to create two self-contained
9407         libraries, to avoid having libraries with overlapping symbols.
9408         that was resulting in weirdness, e.g. I'm pretty sure there
9409         were two copies of global static variables.
9410
9411         * dbus/dbus-internals.c: move the malloc debug stuff to
9412         dbus-memory.c
9413
9414         * dbus/dbus-list.c (free_link): free list mempool if it becomes
9415         empty.
9416
9417         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
9418
9419         * dbus/dbus-address.c (dbus_parse_address): free list nodes
9420         on failure.
9421
9422         * bus/dispatch.c (bus_dispatch_add_connection): free
9423         message_handler_slot when no longer using it, so
9424         memory leak checkers are happy for the test suite.
9425
9426         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
9427
9428         * bus/bus.c (new_connection_callback): disconnect in here if
9429         bus_connections_setup_connection fails.
9430
9431         * bus/connection.c (bus_connections_unref): fix to free the
9432         connections
9433         (bus_connections_setup_connection): if this fails, don't
9434         disconnect the connection, just be sure there are no side
9435         effects.
9436
9437         * dbus/dbus-string.c (undo_alignment): unbreak this
9438
9439         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
9440         leaking
9441         (_dbus_auth_new): fix the order in which we free strings
9442         on OOM failure
9443
9444         * bus/connection.c (bus_connection_disconnected): fix to
9445         not send ServiceDeleted multiple times in case of memory
9446         allocation failure
9447
9448         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
9449         get the base service name
9450         (dbus_bus_register_client): don't return base service name,
9451         instead store it on the DBusConnection and have an accessor
9452         function for it.
9453         (dbus_bus_register_client): rename dbus_bus_register()
9454
9455         * bus/dispatch.c (check_hello_message): verify that other
9456         connections on the bus also got the correct results, not
9457         just the one sending hello
9458
9459 2003-03-15  Havoc Pennington  <hp@pobox.com>
9460
9461         Make it pass the Hello handling test including all OOM codepaths.
9462         Now to do other messages...
9463
9464         * bus/services.c (bus_service_remove_owner): fix crash when
9465         removing owner from an empty list of owners
9466         (bus_registry_ensure): don't leave service in the list of
9467         a connection's owned services if we fail to put the service
9468         in the hash table.
9469
9470         * bus/connection.c (bus_connection_preallocate_oom_error): set
9471         error flag on the OOM error.
9472
9473         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9474         handle _dbus_transport_set_connection failure
9475
9476         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
9477         to create watches up front and simply enable/disable them as
9478         needed.
9479         (unix_connection_set): this can now fail on OOM
9480
9481         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
9482         of enabling/disabling a watch or timeout.
9483
9484         * bus/loop.c (bus_loop_iterate): don't touch disabled
9485         watches/timeouts
9486
9487         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
9488
9489 2003-03-15  Havoc Pennington  <hp@pobox.com>
9490
9491         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
9492         write useful test code, after all that futzing around ;-)
9493
9494         Test does not yet pass because we can't handle OOM in
9495         _dbus_transport_messages_pending (basically,
9496         dbus_connection_preallocate_send() does not prealloc the write
9497         watch). To fix this, I think we need to add new stuff to
9498         set_watch_functions, namely a SetEnabled function so we can alloc
9499         the watch earlier, then enable it later.
9500
9501         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
9502         dbus-memory.c to the convenience lib
9503
9504         * bus/test.c: rename some static functions to keep them clearly
9505         distinct from stuff in connection.c. Handle client disconnection.
9506
9507 2003-03-14  Havoc Pennington  <hp@pobox.com>
9508
9509         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
9510         transport, tests more of the real codepath. Set up clients
9511         with bus_setup_debug_client.
9512
9513         * bus/test.c (bus_setup_debug_client): function to set up debug
9514         "clients" on the main loop
9515
9516         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
9517         support
9518
9519         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
9520         server type
9521
9522         * dbus/dbus-server-debug.c: support a debug server based on pipes
9523
9524         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
9525         (_dbus_close): new function
9526
9527         * configure.in: check for socketpair
9528
9529 2003-03-14  Havoc Pennington  <hp@redhat.com>
9530
9531         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
9532         cheesy hack
9533
9534         * dbus/dbus-transport-debug.c: rework this a good bit to be
9535         less complicated. hopefully still works.
9536
9537         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
9538         manually
9539
9540         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
9541         after running it
9542
9543         * dbus/dbus-message.c (dbus_message_copy): rename from
9544         dbus_message_new_from_message, fix it up to copy
9545         all the message fields, add test case
9546
9547         * bus/dispatch.c (bus_dispatch_test): add some more test code,
9548         not quite passing yet
9549
9550 2003-03-14  Havoc Pennington  <hp@pobox.com>
9551
9552         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
9553         until no work remains" in test code. (the large diff here
9554         is just code movement, no actual changes)
9555
9556         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
9557         1, no point waiting around for test code.
9558         (_dbus_server_debug_accept_transport): unref the timeout
9559         after adding it (right?)
9560
9561         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
9562
9563 2003-03-13  Havoc Pennington  <hp@redhat.com>
9564
9565         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
9566         out of memory
9567
9568         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
9569         of memory
9570
9571         * dbus/dbus-connection.h: Make AddWatchFunction and
9572         AddTimeoutFunction return a bool so they can fail on out-of-memory
9573
9574         * bus/bus.c (bus_context_new): set up timeout handlers
9575
9576         * bus/connection.c (bus_connections_setup_connection): set up
9577         timeout handlers
9578
9579         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
9580         can fail
9581
9582         * bus/bus.c (bus_context_new): adapt to changes
9583
9584         * bus/connection.c: adapt to changes
9585
9586         * test/watch.c: adapt to DBusWatch changes
9587
9588         * bus/dispatch.c (bus_dispatch_test): started adding this but
9589         didn't finish
9590
9591 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
9592
9593         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
9594
9595 2003-03-13  Havoc Pennington  <hp@pobox.com>
9596
9597         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
9598         set up a test framework as for the library
9599
9600 2003-03-12  Havoc Pennington  <hp@pobox.com>
9601
9602         Throughout: purge global variables, introduce BusActivation,
9603         BusConnections, BusRegistry, etc. objects instead.
9604
9605         * bus/bus.h, bus/bus.c: introduce BusContext as a global
9606         message bus object
9607
9608         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
9609         going to redo this a bit differently I think
9610
9611 2003-03-12  Havoc Pennington  <hp@redhat.com>
9612
9613         Mega-patch that gets the message bus daemon initially handling
9614         out-of-memory. Work still needed. Also lots of random
9615         moving stuff to DBusError instead of ResultCode.
9616
9617         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
9618
9619         * dbus/dbus-connection.c
9620         (dbus_connection_send_with_reply_and_block): use DBusError
9621
9622         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
9623         DBusResultCode
9624
9625         * dbus/dbus-connection.c (dbus_connection_send): drop the result
9626         code here, as the only failure possible is OOM.
9627
9628         * bus/connection.c (bus_connection_disconnect):
9629         rename bus_connection_disconnected as it's a notification only
9630
9631         * bus/driver.c (bus_driver_handle_acquire_service): don't free
9632         "name" on get_args failure, should be done by get_args;
9633         don't disconnect client for bad args, just return an error.
9634         (bus_driver_handle_service_exists): ditto
9635
9636         * bus/services.c (bus_services_list): NULL-terminate returned array
9637
9638         * bus/driver.c (bus_driver_send_service_lost)
9639         (bus_driver_send_service_acquired): send messages from driver to a
9640         specific client to the client's unique name, not to the broadcast
9641         service.
9642
9643         * dbus/dbus-message.c (decode_header_data): reject messages that
9644         contain no name field
9645         (_dbus_message_get_client_serial): rename to
9646         dbus_message_get_serial and make public
9647         (_dbus_message_set_serial): rename from set_client_serial
9648         (_dbus_message_set_reply_serial): make public
9649         (_dbus_message_get_reply_serial): make public
9650
9651         * bus/connection.c (bus_connection_foreach): allow stopping
9652         iteration by returning FALSE from foreach function.
9653
9654         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
9655         (dbus_connection_free_preallocated_send)
9656         (dbus_connection_preallocate_send): new API for sending a message
9657         without possibility of malloc failure.
9658         (dbus_connection_send_message): rename to just
9659         dbus_connection_send (and same for whole function family)
9660
9661         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
9662
9663         * dbus/dbus-sysdeps.c (_dbus_exit): new function
9664
9665         * bus/activation.c: handle/return errors
9666
9667         * dbus/dbus-errors.h: add more DBUS_ERROR #define
9668
9669         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
9670         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
9671         (_dbus_result_from_errno): move to this file
9672
9673 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
9674
9675         * dbus/dbus-marshal.c:
9676         (_dbus_marshal_set_string):
9677         Take a length argument so we can marshal the correct string
9678         length.
9679
9680         (_dbus_marshal_dict), (_dbus_demarshal_dict),
9681         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
9682         (_dbus_marshal_test):
9683         * dbus/dbus-marshal.h:
9684         Add support for marshalling and demarshalling dicts.
9685
9686         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9687         Add support for TYPE DICT.
9688
9689         * dbus/dbus-message.c: (set_string_field):
9690         Adjust header padding.
9691
9692         (dbus_message_append_args_valist), (dbus_message_append_dict),
9693         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
9694         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
9695         (check_message_handling), (check_have_valid_message):
9696         * dbus/dbus-message.h:
9697         Add functions for setting and getting dicts.
9698
9699         * dbus/dbus-protocol.h:
9700         Add DBUS_TYPE_DICT.
9701
9702         * dbus/dbus.h:
9703         Add dbus-dict.h
9704
9705         * doc/dbus-specification.sgml:
9706         Add information about how dicts are marshalled.
9707
9708         * test/data/invalid-messages/dict-with-nil-value.message:
9709         * test/data/invalid-messages/too-short-dict.message:
9710         * test/data/valid-messages/dict-simple.message:
9711         * test/data/valid-messages/dict.message:
9712         Add sample messages containing dicts.
9713
9714 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
9715
9716         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
9717
9718 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
9719
9720         * dbus/Makefile.am:
9721         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9722         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
9723         (dbus_dict_set_int32), (dbus_dict_set_uint32),
9724         (dbus_dict_set_double), (dbus_dict_set_string),
9725         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9726         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9727         (dbus_dict_set_string_array), (_dbus_dict_test):
9728         * dbus/dbus-dict.h:
9729         Fix according to comments from Havoc.
9730
9731 2003-03-06  Michael Meeks  <michael@server.home>
9732
9733         * configure.in: if we don't have kde-config, disable have_qt.
9734
9735 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
9736
9737         * dbus/Makefile.am:
9738         Add dbus-dict.[ch]
9739
9740         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9741         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
9742         (dbus_dict_remove), (dbus_dict_get_value_type),
9743         (dbus_dict_get_keys), (dbus_dict_put_boolean),
9744         (dbus_dict_put_int32), (dbus_dict_put_uint32),
9745         (dbus_dict_put_double), (dbus_dict_put_string),
9746         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
9747         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
9748         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
9749         (dbus_dict_get_int32), (dbus_dict_get_uint32),
9750         (dbus_dict_get_double), (dbus_dict_get_string),
9751         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
9752         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
9753         (dbus_dict_get_string_array), (_dbus_dict_test):
9754         * dbus/dbus-dict.h:
9755         Add DBusDict implementation
9756
9757         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
9758         * dbus/dbus-test.h:
9759         Add _dbus_dict_test
9760
9761 2003-03-04  Havoc Pennington  <hp@pobox.com>
9762
9763         * test/data/auth/*: adapt to changes
9764
9765         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
9766         USERID_BASE64 and change USERNAME_BASE64 to put in username not
9767         userid
9768
9769         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
9770         more stuff from being in a context name, to make the protocol
9771         simpler to deal with
9772
9773         * dbus/dbus-errors.c (dbus_error_has_name): new function
9774         (dbus_error_is_set): new function
9775
9776         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
9777         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
9778
9779         * dbus/dbus-connection.c (dbus_connection_flush): also read
9780         messages during a flush operation
9781
9782         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
9783
9784 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
9785
9786         * configure.in: Check for gethostbyname on Solaris.
9787
9788         * dbus/dbus-transport.c: (_dbus_transport_open):
9789         Remove duplicate "tcp" entry.
9790
9791         * doc/dbus-specification.sgml:
9792         Clarify some things.
9793
9794 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
9795
9796         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
9797         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
9798         (_dbus_keyring_test):
9799         * dbus/dbus-md5.c: (_dbus_md5_compute):
9800         * dbus/dbus-sha.c: (_dbus_sha_compute):
9801         Plug memory leaks.
9802
9803 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
9804
9805         * README: Add some things.
9806
9807 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
9808
9809         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
9810         after case DBUS_TYPE_BOOELAN.
9811
9812 2003-03-02  Havoc Pennington  <hp@pobox.com>
9813
9814         * test/break-loader.c (randomly_set_extreme_ints): add test that
9815         sets really huge and small integers
9816
9817         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
9818         that length of boolean array fits in the string, and that
9819         string has room for boolean value in single-bool case.
9820
9821         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
9822         optional value to "ALIGN" command which is what to fill the
9823         alignment with.
9824
9825         * test/data/valid-messages/no-padding.message: add regression
9826         test for the message padding problem
9827
9828 2003-03-02  Havoc Pennington  <hp@pobox.com>
9829
9830         * dbus/dbus-message.c (decode_header_data): fix to always init
9831         message_padding, from Benjamin Dauvergne
9832
9833 2003-03-02  Havoc Pennington  <hp@pobox.com>
9834
9835         * configure.in: 0.5
9836
9837         * NEWS: Update.
9838
9839 2003-03-01  Joe Shaw  <joe@assbarn.com>
9840
9841         * configure.in: Check for "struct cmsgcred" and try to access its
9842         members for BSD-like unices.
9843
9844         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
9845         _dbus_read_credentials_unix_socket().
9846         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
9847         read() for reading the credential byte off the unix socket.  Use
9848         struct cmsgcred on systems that support it.
9849
9850 2003-02-27  Alexander Larsson  <alexl@redhat.com>
9851
9852         * glib/Makefile.am:
9853         * configure.in:
9854         Make gthreads-2.0 dependency optional. Don't build thread test if
9855         its not found.
9856
9857 2003-02-27  Havoc Pennington  <hp@pobox.com>
9858
9859         * dbus/dbus-connection.c
9860         (dbus_connection_send_message_with_reply_and_block): fix doh!
9861         doh! doh! bug that resulted in never removing a reply from the
9862         queue, no wonder we called get_reply_serial so much ;-)
9863
9864         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
9865         and client serial instead of demarshaling them every time
9866
9867 2003-02-27  Havoc Pennington  <hp@pobox.com>
9868
9869         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
9870         more inlined, using dbus-string-private.h, speeds things up
9871         substantially
9872
9873         * dbus/dbus-string.c (_dbus_string_free): apply align offset
9874         when freeing the string
9875         (_dbus_string_steal_data): fix for align offset
9876         (undo_alignment): new function
9877
9878 2003-02-26  Havoc Pennington  <hp@redhat.com>
9879
9880         All kinds of audit fixes from Owen, plus initial attempt to
9881         handle unaligned memory returned from malloc.
9882
9883         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
9884         leave room for align_offset and nul byte
9885         (fixup_alignment): function to track an align_offset and
9886         ensure real->str is aligned
9887         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
9888         to allow a nul byte plus align offset
9889         (_dbus_string_lock): fix overflow issue
9890         (_dbus_string_init_const_len): add assertions on sanity of len,
9891         assign allocated to be ALLOCATION_PADDING larger than len
9892         (set_length): fixup the overflow handling
9893         (_dbus_string_get_data_len): fix overflow in assertion
9894         (open_gap): detect overflow in size of gap to be opened
9895         (_dbus_string_lengthen): add overflow check
9896         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
9897         (_dbus_string_append): add overflow check
9898         (_dbus_string_append_unichar): overflow
9899         (_dbus_string_delete): fix overflow in assertion
9900         (_dbus_string_copy_len): overflow in assertion
9901         (_dbus_string_replace_len): overflows in assertions
9902         (_dbus_string_find): change to implement in terms of
9903         _dbus_string_find_to
9904         (_dbus_string_find_to): assorted fixage
9905         (_dbus_string_equal_c_str): assert c_str != NULL,
9906         fix logic so the function works
9907         (_dbus_string_ends_with_c_str): fix overflow thingy
9908         (_dbus_string_base64_encode): overflow fix
9909         (_dbus_string_validate_ascii): overflow
9910         (_dbus_string_validate_nul): overflow
9911
9912 2003-02-26  Havoc Pennington  <hp@redhat.com>
9913
9914         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
9915
9916 2003-02-26  Alexander Larsson  <alexl@redhat.com>
9917
9918         * configure.in:
9919         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
9920
9921         * dbus/dbus-connection.c:
9922         * dbus/dbus-connection.h:
9923         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
9924         Add dbus_connection_set_wakeup_main_function and use it when queueing
9925         incoming and outgoing messages.
9926
9927
9928         * dbus/dbus-dataslot.c:
9929         Threadsafe usage of DBusDataSlotAllocator
9930
9931         * dbus/dbus-message.c: (dbus_message_get_args_iter):
9932         dbus_new can fail.
9933
9934         * dbus/dbus-server-unix.c:
9935         Add todo comment
9936
9937         * glib/dbus-gmain.c:
9938         Implement the new wakeup functions for glib.
9939
9940         * glib/Makefile.am:
9941         * glib/test-thread-client.c:
9942         * glib/test-thread-server.c:
9943         * glib/test-thread.h:
9944         Initial cut at some thread test code. Not really done yet.
9945
9946 2003-02-26  Havoc Pennington  <hp@pobox.com>
9947
9948         * dbus/dbus-connection.c
9949         (dbus_connection_send_message_with_reply_and_block): fix crash
9950         where we ref'd the outgoing message instead of the returned reply
9951
9952         * dbus/dbus-transport-unix.c (do_authentication): check read watch
9953         at the end of this function, so if we didn't need to read for
9954         authentication, we reinstall it for receiving messages
9955
9956         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
9957         a NULL sender for peer-to-peer case
9958
9959         * dbus/dbus-transport-unix.c (check_read_watch): handle
9960         !authenticated case correctly
9961
9962         * glib/dbus-gmain.c: add support for DBusServer
9963
9964         * dbus/dbus-server.c: add data slot support
9965
9966         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
9967         return values and handle errors
9968
9969         * dbus/dbus-dataslot.c: factor out the data slot stuff from
9970         DBusConnection
9971
9972         * Doxyfile.in (INPUT): add glib subdir
9973
9974         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
9975         setup_with_g_main instead of hookup_with_g_main; write docs
9976
9977 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
9978
9979         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
9980         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9981         * dbus/dbus-message.c: (dbus_message_append_boolean),
9982         (dbus_message_append_boolean_array),
9983         (dbus_message_get_args_valist), (_dbus_message_test):
9984         * dbus/dbus-message.h:
9985         * doc/dbus-specification.sgml:
9986         Various fixes as pointed out by Havoc.
9987
9988         * test/data/invalid-messages/bad-boolean-array.message:
9989         * test/data/invalid-messages/bad-boolean.message:
9990         Add invalid boolean value test cases.
9991
9992 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
9993
9994         * dbus/dbus-internals.c: (_dbus_type_to_string):
9995         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
9996         (_dbus_marshal_validate_arg):
9997         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9998         * dbus/dbus-message.c: (dbus_message_append_args_valist),
9999         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10000         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10001         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10002         (dbus_message_iter_get_double),
10003         (dbus_message_iter_get_boolean_array), (message_iter_test):
10004         * dbus/dbus-message.h:
10005         * dbus/dbus-protocol.h:
10006         * doc/dbus-specification.sgml:
10007         * test/data/valid-messages/lots-of-arguments.message:
10008         Add support for boolean and boolean array types.
10009
10010 2003-02-23  Havoc Pennington  <hp@pobox.com>
10011
10012         * dbus/dbus-keyring.c: finish most of this implementation and
10013         simple unit test
10014
10015         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10016         these barf if the error isn't cleared to NULL
10017
10018         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10019         (_dbus_create_directory): new function
10020
10021         * dbus/dbus-errors.c (dbus_set_error): fix warning
10022
10023         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10024         (_dbus_string_hex_decode): new function
10025         (test_hex_roundtrip): test code
10026
10027         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10028
10029         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10030
10031         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10032         the save-to-temp/rename trick to atomically write the new file
10033         (_dbus_string_parse_uint): new function
10034
10035 2003-02-22  Havoc Pennington  <hp@pobox.com>
10036
10037         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10038
10039 2003-02-22  Havoc Pennington  <hp@pobox.com>
10040
10041         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10042         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10043
10044         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10045
10046         * dbus/test/data/sha-1: add US government test suite for SHA-1
10047
10048 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10049
10050         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10051         Make string arrays NULL-terminated.
10052
10053         * dbus/dbus-memory.c: (dbus_free_string_array):
10054         * dbus/dbus-memory.h:
10055         New function for freeing NULL-terminated string arrays.
10056
10057         * dbus/dbus-message-builder.c: (append_quoted_string),
10058         (_dbus_message_data_load):
10059         Add support for array types.
10060
10061         * dbus/dbus-message.c: (check_message_handling):
10062         Add more types as test cases.
10063
10064         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10065         (_dbus_string_parse_double):
10066         Add the start offset to the end offset.
10067
10068         * test/data/valid-messages/lots-of-arguments.message:
10069         New test message with lots of arguments.
10070
10071 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10072
10073         * dbus/dbus-message.c: (dbus_message_append_nil),
10074         (dbus_message_append_int32), (dbus_message_append_uint32),
10075         (dbus_message_append_double), (dbus_message_append_string),
10076         (dbus_message_append_int32_array),
10077         (dbus_message_append_uint32_array),
10078         (dbus_message_append_double_array),
10079         (dbus_message_append_byte_array),
10080         (dbus_message_append_string_array):
10081         Fix all out-of-memory handling in these functions.
10082
10083 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10084
10085         * dbus/dbus-message.c: (dbus_message_append_nil):
10086         Fix a silly.
10087
10088 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10089
10090         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10091         (dbus_message_append_nil), (dbus_message_append_int32_array),
10092         (dbus_message_append_uint32_array),
10093         (dbus_message_append_double_array),
10094         (dbus_message_append_byte_array),
10095         (dbus_message_append_string_array), (dbus_message_get_args_valist),
10096         (dbus_message_iter_get_int32_array),
10097         (dbus_message_iter_get_uint32_array),
10098         (dbus_message_iter_get_double_array),
10099         (dbus_message_iter_get_byte_array),
10100         (dbus_message_iter_get_string_array):
10101
10102         * dbus/dbus-message.h:
10103         Add functions for appending and getting arrays.
10104
10105 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10106
10107         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10108         element size at least 8 bytes, fixes mempool tests on
10109         64-bit machines.
10110
10111 2003-02-20  Alexander Larsson  <alexl@redhat.com>
10112
10113         * dbus/dbus-transport-unix.c (unix_do_iteration):
10114         Unlock the connection mutex during a blocking select call.
10115         Add todo about how we need a way to wake up the select.
10116
10117         * dbus/dbus-connection-internal.h:
10118         * dbus/dbus-connection.c:
10119         Add _dbus_connection_lock and _dbus_connection_unlock.
10120
10121 2003-02-19  Havoc Pennington  <hp@pobox.com>
10122
10123         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10124         Doxyfile.in, not Doxyfile
10125
10126         * dbus/dbus-keyring.c: do some hacking on this
10127
10128         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10129
10130         * dbus/dbus-errors.c (dbus_set_error_const): do not call
10131         dbus_error_init
10132         (dbus_set_error): remove dbus_error_init, check for message ==
10133         NULL *before* we sprintf into it, and add @todo about including
10134         system headers in this file
10135
10136         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10137
10138         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10139
10140         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10141         get various bits of user information based on either username
10142         or user ID
10143         (_dbus_homedir_from_username): new function
10144
10145 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
10146
10147         * configure.in:
10148         Add check for nonposix getpwnam_r
10149
10150         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10151         Align the pool element size to a sizeof (void *) boundary.
10152
10153         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10154         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10155         General Solaris fixes.
10156
10157         * test/data/valid-messages/simplest-manual.message:
10158         Explicitly state that we want little-endian packing.
10159
10160 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
10161
10162         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10163
10164         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10165         Added to create a transport connecting using a tcp/ip socket.
10166
10167         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10168         to a tcp socket at given host and port.
10169         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10170         hostname and port.
10171
10172         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10173
10174         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10175         Added to create a server listening on a TCP/IP socket.
10176
10177 2003-02-19  Havoc Pennington  <hp@pobox.com>
10178
10179         Throughout: mop up all the Doxygen warnings and undocumented
10180         stuff.
10181
10182         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10183         to search any paths.
10184
10185         * dbus/dbus-threads.c: move global mutex initializers to
10186         dbus-internals.h, multiple prototypes was confusing doxygen
10187         besides being kind of ugly
10188
10189         * Doxyfile (PREDEFINED): have Doxygen define
10190         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10191         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10192         (do not abuse the feature! it's for stuff like the autogenerated
10193         macros in dbus-md5.c, not just for things you don't feel like
10194         documenting...)
10195
10196 2003-02-18  Havoc Pennington  <hp@pobox.com>
10197
10198         * dbus/dbus-string.c (_dbus_string_zero): new function
10199
10200         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10201         wrap it in some dbus-friendly API
10202
10203         * dbus/dbus-types.h: add 16-bit types
10204
10205 2003-02-18  Joe Shaw  <joe@assbarn.com>
10206
10207         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10208         credentials from our currently running process.
10209         (get_word): Fix a buglet where we were copying the entire length
10210         instead of relative to our position.
10211
10212         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10213         keys on the stack... it's 640k of data.
10214
10215         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10216         read the credentials byte off the socket, even if we don't have
10217         SO_PEERCRED.
10218         (_dbus_poll): Implement poll() using select() for systems which
10219         don't have it.
10220
10221         * glib/test-dbus-glib.c (main): Print out an error if no
10222         parameters are given.
10223
10224         * test/data/auth/fallback.auth-script: Added.  Tests that a client
10225         can fallback to a secondary auth mechanism if the first fails.
10226
10227 2003-02-18  Havoc Pennington  <hp@pobox.com>
10228
10229         * AUTHORS: add Alex
10230
10231 2003-02-17  Havoc Pennington  <hp@pobox.com>
10232
10233         * doc/dbus-specification.sgml: lots of cosmetic
10234         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10235         env variable to DBUS_BUS_ADDRESS, s/client/application/,
10236         s/server/bus/ (except in authentication section). Add a section
10237         "Message Bus Message Routing"
10238
10239 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
10240
10241         Release 0.4
10242
10243         * NEWS: Update
10244
10245 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10246
10247         * doc/dbus-specification.sgml:
10248         Specification updates.
10249
10250 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10251
10252         * bus/activation.c: (bus_activation_init), (child_setup),
10253         (bus_activation_activate_service):
10254         * bus/activation.h:
10255         * bus/main.c: (main):
10256         Set DBUS_ADDRESS environment variable.
10257
10258         * dbus/dbus-errors.c: (dbus_set_error):
10259         Don't use va_copy since that's a C99 feature.
10260
10261         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10262         (_dbus_spawn_async):
10263         * dbus/dbus-sysdeps.h:
10264         Add child_setup_func to _dbus_spawn_async.
10265
10266         * doc/dbus-specification.sgml:
10267         Update specification.
10268
10269         * test/spawn-test.c: (setup_func), (main):
10270         Fix test.
10271
10272 2003-02-17  Alexander Larsson  <alexl@redhat.com>
10273
10274         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10275         Added todo.
10276
10277 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10278
10279         * doc/.cvsignore:
10280         * doc/Makefile.am:
10281         * doc/dbus-test-plan.sgml:
10282         Add test plan document.
10283
10284         * test/Makefile.am:
10285         Fix distcheck.
10286
10287 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10288
10289         * dbus/dbus-message.c: (decode_header_data),
10290         (_dbus_message_loader_return_buffer):
10291         Set the header padding amount when loading a message.
10292
10293 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10294
10295         * bus/dispatch.c: (send_one_message):
10296         Only send broadcast messages to registered connections.
10297
10298         * dbus/dbus-message.c: (dbus_message_name_is):
10299         * dbus/dbus-message.h:
10300         New convenience function.
10301
10302         * dbus/dbus-transport-debug.c: (do_reading):
10303         Only dispatch one message per run.
10304
10305         * test/Makefile.am:
10306         * test/bus-test.c: (new_connection_callback), (die),
10307         (test_hello_client1_handler), (test_hello_client2_handler),
10308         (test_hello_replies), (main):
10309
10310         * test/bus-test-loop.[ch]:
10311         Add these.
10312
10313 2003-02-16  Havoc Pennington  <hp@pobox.com>
10314
10315         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10316         backward conditional
10317
10318 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10319
10320         * dbus/dbus-connection.c:
10321         Implement sent_message_with_reply. (with_reply_and block is still
10322         busted).
10323         Made dispatch_message not lose message if OOM.
10324
10325         * dbus/dbus-errors.h:
10326         Add NoReply error (for reply timeouts).
10327
10328 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10329
10330         * dbus/dbus-hash.c (_dbus_hash_table_unref):
10331         Actually free keys and values when destroying hashtable.
10332
10333 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10334
10335         * dbus/dbus-auth.c: (client_try_next_mechanism):
10336         Plug a leak.
10337
10338         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
10339         Return TRUE if there's no thread implementation around.
10340
10341         * glib/dbus-gmain.c: (free_source),
10342         (dbus_connection_hookup_with_g_main):
10343         Make sure to remove the GSource when the connection is finalized.
10344
10345 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10346
10347         * bus/dispatch.c: (bus_dispatch_message_handler):
10348         * dbus/dbus-errors.h:
10349         Return an error if someone tries to send a message to a service
10350         that doesn't exist.
10351
10352 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10353
10354         * bus/activation.c: (load_directory), (bus_activation_init),
10355         (bus_activation_activate_service):
10356         * bus/activation.h:
10357         * bus/driver.c:
10358         (bus_driver_handle_activate_service), (bus_driver_handle_message):
10359         More work on the activation handling.
10360
10361         * dbus/dbus-errors.h:
10362         Add some error messages
10363
10364         * dbus/dbus-message.c: (dbus_message_new_error_reply):
10365         * dbus/dbus-message.h:
10366         New function that creates an error message.
10367
10368         * dbus/dbus-protocol.h:
10369         Add ACTIVATE_SERVER message.
10370
10371         * dbus/dbus-server-unix.c: (unix_handle_watch),
10372         (_dbus_server_new_for_domain_socket):
10373         Call _dbus_fd_set_close_on_exec.
10374
10375         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
10376         (_dbus_spawn_async), (_dbus_disable_sigpipe),
10377         (_dbus_fd_set_close_on_exec):
10378         * dbus/dbus-sysdeps.h:
10379         Add _dbus_fd_set_close_on exec function. Also add function that checks
10380         that all open fds are set to close-on-exec and warns otherwise.
10381
10382         * dbus/dbus-transport-unix.c:
10383         (_dbus_transport_new_for_domain_socket):
10384         Call _dbus_fd_set_close_on_exec.
10385
10386 2003-02-16  Havoc Pennington  <hp@pobox.com>
10387
10388         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
10389         allow people to avoid setting SIGPIPE to SIG_IGN
10390         (_dbus_connection_new_for_transport): disable SIGPIPE unless
10391         we've been asked not to
10392
10393 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10394
10395         * dbus/dbus-list.c: (_dbus_list_append_link),
10396         (_dbus_list_prepend_link):
10397         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
10398         (dbus_realloc):
10399         Warning fixes.
10400
10401 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10402
10403         * bus/Makefile.am:
10404         * bus/activation.c: (bus_activation_entry_free),
10405         (add_desktop_file_entry), (load_directory), (bus_activation_init):
10406         * bus/activation.h:
10407         * bus/main.c: (main):
10408         Add simple activation support, doesn't work yet though.
10409
10410 2003-02-15   Zack Rusin  <zack@kde.org>
10411
10412         * qt/dbus-qthread.cpp:  small casting fix
10413
10414 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10415
10416         * dbus/dbus-errors.c: (dbus_set_error):
10417         * dbus/dbus-errors.h:
10418         Add a few errors and make dbus_set_error void.
10419
10420         * dbus/dbus-sysdeps.c:
10421         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
10422         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
10423         * dbus/dbus-sysdeps.h:
10424         Add _dbus_spawn_async.
10425
10426         * test/spawn-test.c: (main):
10427         Test for _dbus_spawn_async.
10428
10429 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10430
10431         * dbus/dbus-internals.h:
10432         Fix build without tests.
10433
10434         * dbus/dbus-list.c: (alloc_link):
10435         Fix a segfault when a malloc fails.
10436
10437         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
10438         (dbus_malloc0), (dbus_realloc):
10439         Add support for malloc debugging.
10440
10441 2003-02-15  Alexander Larsson  <alexl@redhat.com>
10442
10443         * dbus/dbus-threads.c:
10444         * dbus/dbus-threads.h:
10445         Add condvars. Remove static mutext from API.
10446         Implement static mutexes by initializing them from threads_init.
10447
10448         * glib/dbus-gthread.c:
10449         * qt/dbus-qthread.cpp:
10450         Update with the thread api changes.
10451
10452
10453         * dbus/dbus-list.c:
10454         * dbus/dbus-list.h:
10455         Turn StaticMutex into normal mutex + init function.
10456         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
10457         _dbus_list_append_link, _dbus_list_prepend_link
10458
10459
10460         * dbus/dbus-sysdeps.c:
10461         * dbus/dbus-sysdeps.h:
10462         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
10463         _dbus_atomic_dec. Only slow fallback implementation at the moment.
10464
10465         * dbus/dbus-protocol.h:
10466         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
10467
10468         * dbus/dbus-message.c:
10469         Make ref/unref atomic.
10470         Fix some docs.
10471
10472         * dbus/dbus-connection-internal.h:
10473         * dbus/dbus-connection.c:
10474         * dbus/dbus-connection.h:
10475         Make threadsafe.
10476         Change _peek to _borrow,_return & _steal_borrowed.
10477         Change disconnect callback to event.
10478         Make dbus_connection_dispatch_messages reentrant.
10479
10480         * dbus/dbus-transport.c:
10481         Don't ref the connection on calls to the transport
10482         implementation.
10483
10484         * dbus/dbus-message-handler.c:
10485         Make threadsafe.
10486
10487         * glib/dbus-gmain.c:
10488         Don't use peek_message anymore
10489
10490         * test/Makefile.am:
10491         * test/debug-thread.c:
10492         * test/debug-thread.h:
10493         Simple thread implementation that asserts() on deadlocks in
10494         single-threaded code.
10495
10496         * test/bus-test.c:
10497         (main) Call debug_threads_init.
10498
10499         * test/watch.c:
10500         Use disconnect message instead of disconnect callback.
10501
10502         * bus/connection.c:
10503         * bus/connection.h:
10504         Don't call dbus_connection_set_disconnect_function. Instead export
10505         bus_connection_disconnect.
10506
10507         * bus/dispatch.c:
10508         Call bus_connection_disconnect when we get a disconnected message.
10509
10510 2003-02-15  Havoc Pennington  <hp@pobox.com>
10511
10512         * dbus/dbus-message.c (dbus_message_new): fool around with the
10513         docs
10514
10515 2003-02-14  Havoc Pennington  <hp@pobox.com>
10516
10517         * dbus/dbus-mempool.c: fail if the debug functions so indicate
10518
10519         * dbus/dbus-memory.c: fail if the debug functions indicate we
10520         should
10521
10522         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
10523         (_dbus_decrement_fail_alloc_counter): debug functions to
10524         simulate memory allocation failures
10525
10526 2003-02-14  Havoc Pennington  <hp@pobox.com>
10527
10528         * dbus/dbus-errors.h (struct DBusError): add a word of padding
10529         to DBusError
10530
10531 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10532
10533         * bus/driver.c: (bus_driver_handle_hello):
10534         * bus/driver.h:
10535         * bus/services.c: (bus_service_lookup):
10536         Reorder message sending so we get a more sane order.
10537
10538         * test/bus-test.c: (message_handler):
10539         Fix tyop.
10540
10541 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10542
10543         * bus/driver.c: (bus_driver_send_service_deleted),
10544         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10545         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10546         (bus_driver_send_welcome_message),
10547         (bus_driver_handle_list_services),
10548         (bus_driver_handle_acquire_service),
10549         (bus_driver_handle_service_exists):
10550         * dbus/dbus-bus.c: (dbus_bus_register_client),
10551         (dbus_bus_acquire_service), (dbus_bus_service_exists):
10552         * dbus/dbus-errors.c: (dbus_result_to_string):
10553         * dbus/dbus-errors.h:
10554         * dbus/dbus-message.c: (dbus_message_append_args),
10555         (dbus_message_append_args_valist), (dbus_message_get_args),
10556         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
10557         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
10558         (dbus_message_iter_get_byte_array),
10559         (dbus_message_iter_get_string_array), (message_iter_test),
10560         (check_message_handling), (_dbus_message_test):
10561         * dbus/dbus-message.h:
10562         * test/bus-test.c: (main):
10563         Change fields to arguments in messages, so that they won't be
10564         confused with header fields.
10565
10566         * glib/test-dbus-glib.c: (main):
10567         Remove append_fields from hello message.
10568
10569 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10570
10571         * dbus/dbus-errors.c:
10572         * dbus/dbus-message.c:
10573         * dbus/dbus-string.c:
10574         Documentation fixes.
10575
10576 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10577
10578         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
10579         (remove_timeout):
10580         Implement support for timeouts in dbus-glib.
10581
10582 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10583
10584         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10585         * dbus/dbus-message.c: (process_test_subdir):
10586         * test/break-loader.c: (find_breaks_based_on):
10587         Plug some memory leaks.
10588
10589 2003-02-13  Richard Hult  <rhult@codefactory.se>
10590
10591         * bus/main.c: Fix build.
10592
10593         * dbus/dbus-errors.h:
10594         * dbus/dbus-errors.c: Fix copyright for Anders.
10595
10596 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10597
10598         * bus/Makefile.am:
10599         Add utils.[ch]
10600
10601         * bus/connection.c: (bus_connection_foreach):
10602         Fix a warning.
10603
10604         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
10605         (unescape_string), (new_section), (parse_section_start),
10606         (parse_key_value), (report_error), (bus_desktop_file_load),
10607         (bus_desktop_file_get_string):
10608         * bus/desktop-file.h:
10609         Use DBusError for error reporting.
10610
10611         * bus/dispatch.c: (send_one_message),
10612         (bus_dispatch_message_handler):
10613         * bus/driver.c: (bus_driver_send_service_deleted),
10614         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10615         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10616         (bus_driver_send_welcome_message),
10617         (bus_driver_handle_list_services),
10618         (bus_driver_handle_acquire_service),
10619         (bus_driver_handle_service_exists):
10620         * bus/loop.c: (bus_loop_run):
10621         * bus/main.c:
10622         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
10623
10624         * bus/utils.c: (bus_wait_for_memory):
10625         * bus/utils.h:
10626         New files with general utility functions.
10627
10628         * dbus/dbus-internals.h:
10629         Remove _DBUS_HANDLE_OOM.
10630
10631 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10632
10633         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
10634         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
10635         * dbus/dbus-errors.h:
10636         Add DBusError structure.
10637
10638 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10639
10640         * test/data/valid-messages/standard-acquire-service.message:
10641         * test/data/valid-messages/standard-hello.message:
10642         * test/data/valid-messages/standard-list-services.message:
10643         * test/data/valid-messages/standard-service-exists.message:
10644         Add some standard messages.
10645
10646 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10647
10648         * bus/driver.c: (bus_driver_send_welcome_message),
10649         (bus_driver_handle_list_services),
10650         (bus_driver_handle_acquire_service),
10651         (bus_driver_handle_service_exists), (bus_driver_handle_message):
10652         Update for API changes in libdbus.
10653
10654         * dbus/dbus-message.c: (dbus_message_new_reply):
10655         * dbus/dbus-message.h:
10656         Remove the name argument. The spec states that replies shouldn't
10657         have a name.
10658
10659 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10660
10661         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
10662         (report_error), (bus_desktop_file_load), (lookup_section),
10663         (lookup_line), (bus_desktop_file_get_raw),
10664         (bus_desktop_file_get_string):
10665         * bus/desktop-file.h:
10666         Some fixes, and new functions for getting a key value from a section.
10667
10668 2003-02-13  Havoc Pennington  <hp@pobox.com>
10669
10670         * test/data/auth/fail-after-n-attempts.auth-script: new test
10671
10672         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
10673         reject the client.
10674
10675 2003-02-13  Havoc Pennington  <hp@pobox.com>
10676
10677         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
10678         dbus_credentials_match were backward
10679
10680         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
10681         NO_CREDENTIALS and ROOT_CREDENTIALS
10682
10683         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
10684         into here. Never process more commands after we've reached an
10685         end state; store further data as unused bytes.
10686
10687         * test/data/auth/*: add more auth tests
10688
10689         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
10690         command to match exact string and EXPECT_UNUSED to match unused
10691         bytes
10692
10693         * test/Makefile.am (dist-hook): fix to dist all the test stuff
10694
10695 2003-02-12  Havoc Pennington  <hp@pobox.com>
10696
10697         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
10698         \r off of popped lines
10699
10700         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
10701         scripts
10702
10703         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
10704         SEND, append \r\n
10705
10706 2003-02-12  Havoc Pennington  <hp@pobox.com>
10707
10708         * dbus/Makefile.am: remove break-loader from the build, since it
10709         moved.
10710
10711         * configure.in: add --enable-gcov to turn on coverage profiling
10712         flags and disable optimization
10713
10714 2003-02-10  Havoc Pennington  <hp@pobox.com>
10715
10716         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
10717         initial cut at test framework for DBusAuth from laptop.
10718         Doesn't quite work yet but it compiles and I need to get
10719         it off the 266mhz laptop. ;-)
10720
10721         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
10722         fix a memleak in error case
10723
10724 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
10725
10726         * bus/Makefile.am:
10727         * bus/desktop-file.c:
10728         * bus/desktop-file.h:
10729         Add a desktop file parser.
10730
10731 2003-02-11  Zack Rusin  <zack@kde.org>
10732
10733         * qt/message.[h|cpp]: sample implementation
10734         of the KDE wrapper for DBusMessage
10735
10736 2003-02-09  Zack Rusin  <zack@kde.org>
10737
10738         * test/bus-test.c: make_it_compile
10739         * doc/dbus-specification.sgml: minimal semantic fix
10740
10741 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
10742
10743         Release 0.3
10744
10745         * NEWS: Update
10746
10747 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
10748
10749         * dbus/Makefile.am:
10750         * dbus/dbus-break-loader.c:
10751         * test/Makefile.am:
10752         * test/break-loader.c:
10753         Move dbus-break-loader to test/ and rename it to break-loader.
10754
10755 2003-02-02  Havoc Pennington  <hp@pobox.com>
10756
10757         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
10758         for code to manage cookies in your home directory
10759
10760         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
10761
10762         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
10763         to authenticate, then disconnect the client.
10764
10765 2003-02-03  Alexander Larsson  <alexl@redhat.com>
10766
10767         * dbus/dbus-message.c (dbus_message_append_fields):
10768         Correct docs.
10769
10770 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10771
10772         * doc/dbus-specification.sgml:
10773         Update address format section.
10774
10775 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10776
10777         * test/Makefile.am:
10778         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
10779         (message_handler), (new_connection_callback), (loop_quit),
10780         (loop_run), (main):
10781         Add bus test.
10782
10783 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10784
10785         * bus/driver.c: (bus_driver_handle_service_exists):
10786         Simplify the code a bit.
10787
10788         * dbus/dbus-bus.c: (dbus_bus_service_exists):
10789         Fix a silly.
10790
10791 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10792
10793         * bus/Makefile.am:
10794         Add libdbus-daemon.la and link to it.
10795
10796 2003-02-01  James Willcox  <jwillcox@gnome.org>
10797
10798         * bus/driver.c: (bus_driver_handle_own_service):
10799         Actually include the service reply code in the message.
10800
10801 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10802
10803         * bus/driver.c: (bus_driver_handle_service_exists):
10804         Don't unref the incoming message.
10805
10806 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10807
10808         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
10809
10810 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10811
10812         * dbus/dbus-server.c: (dbus_server_listen):
10813         * dbus/dbus-transport.c: (_dbus_transport_open):
10814         ifdef out the calls to the debug transport and server.
10815
10816 2003-02-02  Alexander Larsson  <alexl@redhat.com>
10817
10818         * dbus/dbus-watch.c (dbus_watch_get_flags):
10819         Add note in the docs that ERROR or HANGUP won't be returned
10820         and are assumed always on.
10821
10822         * glib/dbus-gmain.c (add_watch):
10823         Always add IO_ERR | IO_HUP
10824
10825         * dbus/dbus-message.h:
10826         Add semicolon after dbus_message_iter_get_string_array().
10827         Makes qt code build again
10828
10829 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
10830
10831         * bus/driver.c: (create_unique_client_name),
10832         (bus_driver_handle_hello):
10833         Don't take a name, just use a numeric id to identify
10834         each client.
10835
10836         * dbus/Makefile.am:
10837         * dbus/dbus-bus.c: (dbus_bus_register_client),
10838         (dbus_bus_acquire_service), (dbus_bus_service_exists):
10839         * dbus/dbus-bus.h:
10840         Add new convenience functions for communicating with the bus.
10841
10842         * dbus/dbus-message.h:
10843
10844         * dbus/dbus-protocol.h:
10845         Fix a typo.
10846
10847 2003-02-01  Alexander Larsson  <alexl@redhat.com>
10848
10849         * dbus/dbus-message.c (dbus_message_append_fields):
10850         Add some more doc comments.
10851
10852 2003-02-01  Havoc Pennington  <hp@pobox.com>
10853
10854         * dbus/dbus-break-loader.c (randomly_modify_length): change
10855         a 4-byte value in the message as if it were a length
10856
10857         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
10858         execute bit on saved files
10859
10860 2003-02-01  Havoc Pennington  <hp@pobox.com>
10861
10862         * dbus/dbus-break-loader.c (main): new program to find messages
10863         that break the loader.
10864
10865         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
10866         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
10867
10868         * dbus/dbus-string.c (_dbus_string_set_byte): new
10869
10870 2003-01-31  Havoc Pennington  <hp@pobox.com>
10871
10872         * dbus/dbus-message.c: refactor the test code to be more general,
10873         in preparation for writing a "randomly permute test cases to
10874         try to break the loader" program.
10875
10876 2003-01-31  Havoc Pennington  <hp@pobox.com>
10877
10878         * doc/dbus-specification.sgml: work on the specification
10879
10880         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
10881         the protocol version of the message.
10882
10883         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
10884         no longer specifies that.
10885         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
10886         1/2/3/4)
10887
10888         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
10889         "break" for DBUS_TYPE_NIL, remove @todo
10890
10891 2003-01-31  Havoc Pennington  <hp@pobox.com>
10892
10893         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
10894         just set_is_error/get_is_error as this is a commonly-used
10895         function, and write docs.
10896
10897 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
10898
10899         * dbus/dbus-address.c: (dbus_address_entry_free):
10900         Free key and value lists.
10901
10902         * dbus/dbus-internals.c: (_dbus_type_to_string):
10903         Add the types we didn't have.
10904
10905         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10906         (_dbus_marshal_validate_arg):
10907         Add NIL types.
10908
10909         * dbus/dbus-message.c: (dbus_message_set_sender):
10910         Remove todo about being able to set sender to NULL.
10911
10912         (dbus_message_set_is_error_reply),
10913         (dbus_message_get_is_error_reply):
10914         * dbus/dbus-message.h:
10915         New functions.
10916
10917         * dbus/dbus-protocol.h:
10918         Add error reply flag.
10919
10920         * test/data/valid-messages/opposite-endian.message:
10921         Add NIL type to test.
10922
10923 2003-01-31  Havoc Pennington  <hp@pobox.com>
10924
10925         * doc/dbus-specification.sgml: fully specify the header.  Add
10926         flags and major protocol version, and change header/body len to
10927         unsigned.
10928
10929         * dbus/dbus-message-builder.c (append_saved_length): append length
10930         as uint32
10931
10932         * dbus/dbus-message.c (dbus_message_create_header): change header
10933         length and body length to unsigned. Add the new fields from the
10934         spec
10935         (_dbus_message_loader_return_buffer): unsigned header/body len
10936
10937 2003-01-30  Havoc Pennington  <hp@pobox.com>
10938
10939         * dbus/dbus-auth.c: rework to use only REJECTED, no
10940         MECHANISMS
10941
10942         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
10943         use REJECTED, suggested by Mark McLoughlin
10944
10945 2003-01-30  Havoc Pennington  <hp@pobox.com>
10946
10947         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
10948         a better way to report errors here. e.g.  "unix address lacks
10949         path" or something. also "no such file" when the path doesn't
10950         exist, etc.
10951
10952         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
10953         leaking list nodes
10954         (dbus_parse_address): add @todo about documenting address format,
10955         and allowing , and ; to be escaped
10956
10957 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
10958
10959         * dbus/Makefile.am:
10960         Add dbus-address.[ch]
10961
10962         * dbus/dbus-address.c: (dbus_address_entry_free),
10963         (dbus_address_entries_free), (create_entry),
10964         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
10965         (dbus_parse_address), (_dbus_address_test):
10966         * dbus/dbus-address.h:
10967         New files for dealing with address parsing.
10968
10969         * dbus/dbus-connection.c:
10970         Document timeout functions.
10971
10972         * dbus/dbus-message.c:
10973         Document dbus_message_new_from_message.
10974
10975         * dbus/dbus-server-debug.c:
10976         Document.
10977
10978         * dbus/dbus-server.c: (dbus_server_listen):
10979         Parse address and use correct server implementation.
10980
10981         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
10982         * dbus/dbus-string.h:
10983         New function with test.
10984
10985         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
10986         * dbus/dbus-test.h:
10987         Add address tests.
10988
10989         * dbus/dbus-transport-debug.c:
10990         Document.
10991
10992         * dbus/dbus-transport.c: (_dbus_transport_open):
10993         Parse address and use correct transport implementation.
10994
10995 2003-01-30  Havoc Pennington  <hp@pobox.com>
10996
10997         * dbus/dbus-message.c: use message->byte_order instead of
10998         DBUS_COMPILER_BYTE_ORDER throughout.
10999         (dbus_message_create_header): pad header to align the
11000         start of the body of the message to 8-byte boundary
11001
11002         * dbus/dbus-marshal.h: make all the demarshalers take const
11003         DBusString arguments.
11004
11005         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11006         validate message args here, so we don't have to do slow validation
11007         later, and so we catch bad messages as they are incoming. Also add
11008         better checks on header_len and body_len. Also fill in
11009         message->byte_order
11010
11011         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11012         implemented properly)
11013         (_dbus_string_validate_nul): new function to check all-nul
11014
11015         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11016         get_arg_end_pos and remove all validation
11017         (_dbus_marshal_validate_arg): actually do validation here.
11018
11019 2003-01-29  Havoc Pennington  <hp@pobox.com>
11020
11021         * dbus/dbus-message.c (check_message_handling): fix assertion
11022         failure on set_client_serial
11023
11024 2003-01-28  Havoc Pennington  <hp@pobox.com>
11025
11026         * dbus/dbus-server-debug.c: Add doc section comments
11027
11028         * dbus/dbus-transport-debug.c: add doc section comments
11029
11030 2003-01-28  Havoc Pennington  <hp@redhat.com>
11031
11032         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11033         the reverse order from how I had it
11034         (_dbus_string_base64_encode): reverse encoding order. I was
11035         basically byteswapping everything during encoding.
11036
11037 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11038
11039         * dbus/dbus-connection-internal.h:
11040         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11041         (_dbus_connection_remove_timeout):
11042         Add functions for adding and removing timeouts.
11043
11044         * dbus/dbus-message.c: (dbus_message_new_from_message):
11045         Add new function that takes a message and creates an exact
11046         copy of it, but with the refcount set to 1.
11047         (check_message_handling):
11048         Fix build error.
11049
11050         * dbus/dbus-server-protected.h:
11051         * dbus/dbus-server.c: (_dbus_server_init_base),
11052         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11053         (dbus_server_set_timeout_functions):
11054         (_dbus_server_remove_timeout):
11055         New functions so that a server can add and remove timeouts.
11056
11057         (dbus_server_listen):
11058         Add commented out call to dbus_server_debug_new.
11059
11060         * dbus/dbus-timeout.c: (_dbus_timeout_new):
11061         Actually set the handler, doh.
11062
11063         * dbus/dbus-transport.c: (_dbus_transport_open):
11064         Add commented out call to dbus_transport_debug_client_new.
11065
11066         * dbus/Makefile.am:
11067         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11068
11069 2003-01-28  Havoc Pennington  <hp@pobox.com>
11070
11071         * dbus/dbus-message.c (check_message_handling): function to check
11072         on the loaded message, iterates over it etc.
11073
11074 2003-01-28  Havoc Pennington  <hp@pobox.com>
11075
11076         * test/Makefile.am (dist-hook): fix make distdir
11077
11078         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11079
11080 2003-01-27  Havoc Pennington  <hp@pobox.com>
11081
11082         * dbus/dbus-mempool.c (time_for_size): replace printf with
11083         _dbus_verbose
11084
11085         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11086         empty lines; fix the SAVE_LENGTH stuff to be
11087         START_LENGTH/END_LENGTH so it actually works; couple other
11088         bugfixes
11089
11090         * test/Makefile.am (dist-hook): add dist-hook for .message files
11091
11092         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11093         can be constant or locked.
11094         (_dbus_string_free): allow freeing a const string as
11095         documented/intended
11096
11097         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11098
11099         * dbus/dbus-test-main.c (main): take an argument which is the
11100         directory containing test data
11101
11102         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11103         argument to this and load all the messages in test/data/
11104         checking that they can be loaded or not loaded as appropriate.
11105
11106 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
11107
11108         * bus/dispatch.c: (bus_dispatch_message_handler):
11109         Dispatch messages sent to services.
11110
11111         * bus/driver.c: (bus_driver_send_service_deleted),
11112         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11113         (bus_driver_send_service_acquired):
11114         Add helper functions for sending service related messages.
11115
11116         (bus_driver_send_welcome_message):
11117         Send HELLO_REPLY instead of WELCOME.
11118
11119         (bus_driver_handle_list_services):
11120         Send LIST_SERVICES_REPLY instead of SERVICES.
11121
11122         (bus_driver_handle_own_service),
11123         (bus_driver_handle_service_exists):
11124         New message handlers.
11125
11126         (bus_driver_handle_message):
11127         Invoke new message handlers.
11128
11129         (bus_driver_remove_connection):
11130         Don't remove any services here since that's done automatically
11131         by bus_service_remove_owner now.
11132
11133         * bus/driver.h:
11134         New function signatures.
11135
11136         * bus/services.c: (bus_service_add_owner):
11137         Send ServiceAcquired message if we're the only primary owner.
11138
11139         (bus_service_remove_owner):
11140         Send ServiceAcquired/ServiceLost messages.
11141
11142         (bus_service_set_prohibit_replacement),
11143         (bus_service_get_prohibit_replacement):
11144         Functions for setting prohibit replacement.
11145
11146         (bus_service_has_owner):
11147         New function that checks if a connection is in the owner queue of
11148         a certain service.
11149
11150         * bus/services.h:
11151         Add new function signatures.
11152
11153         * dbus/dbus-list.c: (_dbus_list_test):
11154         Add tests for _dbus_list_remove_last and traversing the list backwards.
11155
11156         * dbus/dbus-list.h:
11157         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11158         go any further, so return NULL then.
11159
11160         * dbus/dbus-protocol.h:
11161         Add new messages, service flags and service replies.
11162
11163 2003-01-26  Havoc Pennington  <hp@pobox.com>
11164
11165         * dbus/dbus-message-builder.c: implement, completely untested.
11166
11167         * test/data/*: add data to be used in testing.
11168         ".message" files are our simple loadable text format.
11169         ".message-raw" will be binary dumps of messages.
11170
11171         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11172
11173 2003-01-26  Havoc Pennington  <hp@pobox.com>
11174
11175         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11176
11177         * dbus/dbus-errors.c (dbus_result_to_string): add
11178         file errors
11179
11180         * dbus/dbus-message-builder.c: new file, will contain code to load
11181         up messages from files. Not implemented yet.
11182
11183 2003-01-26  Havoc Pennington  <hp@pobox.com>
11184
11185         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11186         the sender by setting to NULL
11187
11188 2003-01-26  Havoc Pennington  <hp@pobox.com>
11189
11190         The unit tests pass, but otherwise untested.  If it breaks, the
11191         tests should have been better. ;-)
11192
11193         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11194         the connection.
11195
11196         * dbus/dbus-message.c: redo everything so we maintain
11197         message->header as the only copy of the various fields.
11198         This avoids the possibility of out-of-memory in some cases,
11199         for example dbus_message_lock() can't run out of memory anymore,
11200         and avoids extra copying. Figured I may as well go ahead and do
11201         this since it was busted for dbus_message_lock to not return
11202         failure on OOM, and dbus_message_write_header was totally
11203         unchecked for OOM. Also fixed some random other bugs.
11204
11205         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11206         that strings are nul-terminated. Also, end_pos can be equal
11207         to string length just not greater than, I think.
11208         (_dbus_marshal_set_int32): new function
11209         (_dbus_marshal_set_uint32): new function
11210         (_dbus_marshal_set_string): new function
11211
11212         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11213         a warning, init timeout_list to NULL
11214         (dbus_connection_send_message): don't use uninitialized variable
11215         "serial"
11216
11217         * dbus/dbus-string.c (_dbus_string_replace_len): new function
11218
11219 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11220
11221         * bus/driver.c: (bus_driver_handle_hello),
11222         (bus_driver_send_welcome_message):
11223         Plug leaks
11224
11225 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11226
11227         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11228         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11229         (dbus_connection_unref):
11230         * dbus/dbus-marshal.c: (_dbus_marshal_test):
11231         * dbus/dbus-message.c: (dbus_message_unref),
11232         Plug memory leaks.
11233
11234         (dbus_message_get_fields):
11235         Remove debugging printout.
11236
11237         (_dbus_message_loader_return_buffer):
11238         Don't store the header string.
11239
11240         (_dbus_message_test):
11241         Plug leaks.
11242
11243 2003-01-26  Richard Hult  <rhult@codefactory.se>
11244
11245         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11246         the file descriptor list, since it can change under us.
11247
11248 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11249
11250         * glib/dbus-gmain.c: (dbus_connection_prepare),
11251         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11252         (remove_watch), (dbus_connection_hookup_with_g_main):
11253         Rewrite the glib handling to use its own GSource instead of a
11254         GIOChannel so we can catch messages put in the queue while waiting
11255         for a reply.
11256
11257 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11258
11259         * bus/Makefile.am:
11260         * bus/connection.c: (connection_disconnect_handler),
11261         (connection_watch_callback), (bus_connection_setup):
11262         * bus/dispatch.c: (send_one_message),
11263         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11264         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11265         * bus/dispatch.h:
11266         * bus/driver.c: (bus_driver_send_service_deleted),
11267         (bus_driver_send_service_created), (bus_driver_handle_hello),
11268         (bus_driver_send_welcome_message),
11269         (bus_driver_handle_list_services), (bus_driver_remove_connection),
11270         (bus_driver_handle_message):
11271         * bus/driver.h:
11272         Refactor code, put the message dispatching in its own file. Use
11273         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11274         is disconnected.
11275
11276 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11277
11278         * dbus/dbus-internals.h:
11279         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11280
11281         * dbus/dbus-message.c: (dbus_message_get_sender):
11282         * dbus/dbus-message.h:
11283         Implement dbus_message_get_sender.
11284
11285         * dbus/dbus-protocol.h:
11286         Add message and service defines.
11287
11288 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11289
11290         * dbus/dbus-connection.c: (dbus_connection_send_message):
11291         * dbus/dbus-message-internal.h:
11292         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11293         (dbus_message_write_header):
11294         Remove _dbus_messag_unlock and don't set the client serial on a
11295         message if one already exists.
11296
11297 2003-01-24  Havoc Pennington  <hp@pobox.com>
11298
11299         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
11300         list_pool
11301
11302         * bus/driver.c (bus_driver_handle_list_services): fix a leak
11303         on OOM
11304
11305 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11306
11307         * dbus/dbus-list.c: (alloc_link), (free_link):
11308         Use a memory pool for the links.
11309
11310 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11311
11312         * bus/connection.c: (bus_connection_foreach):
11313         * bus/connection.h:
11314         Add new bus_connection_foreach function.
11315
11316         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
11317         Add function that broadcasts a message to all clients.
11318
11319         (bus_driver_send_service_created), (bus_driver_handle_hello),
11320         (bus_driver_send_welcome_message),
11321         (bus_driver_handle_list_services), (bus_driver_message_handler):
11322         Implement functions that take care of listing services, and notifying
11323         clients when new services are created.
11324
11325         * bus/services.c: (bus_services_list):
11326         * bus/services.h:
11327         Add new function that returns an array of strings with the currently
11328         registered services.
11329
11330         * glib/dbus-glib.h:
11331         * glib/dbus-gmain.c:
11332         Update copyright year.
11333
11334 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11335
11336         * dbus/dbus-connection.c: (dbus_connection_send_message):
11337         Unlock the message in case it was sent earlier.
11338
11339         (dbus_connection_send_message_with_reply_and_block):
11340         Remove the reply message from the list.
11341
11342         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11343         Set array_len and new_pos correctly.
11344
11345         (_dbus_marshal_test):
11346         Remove debug output.
11347
11348         * dbus/dbus-message-internal.h:
11349         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
11350         New function that returns the reply serial.
11351
11352         (_dbus_message_unlock):
11353         New function that unlocks a message and resets its header.
11354
11355         (dbus_message_append_string_array),
11356         (dbus_message_get_fields_valist),
11357         (dbus_message_iter_get_field_type),
11358         (dbus_message_iter_get_string_array),
11359         (dbus_message_get_fields),
11360         (dbus_message_append_fields_valist):
11361         Handle string arrays.
11362
11363         (dbus_message_set_sender):
11364         Make this function public since the bus daemon needs it.
11365
11366         (decode_header_data):
11367         Set the reply serial to -1 initially.
11368
11369         * dbus/dbus-message.h:
11370         Add dbus_message_set_sender.
11371
11372 2003-01-24  Havoc Pennington  <hp@pobox.com>
11373
11374         * doc/dbus-specification.sgml: add some stuff
11375
11376 2003-01-22  Havoc Pennington  <hp@pobox.com>
11377
11378         * doc/dbus-specification.sgml: Start to document the protocol.
11379
11380 2003-01-22  Havoc Pennington  <hp@pobox.com>
11381
11382         * dbus/dbus-connection.c
11383         (dbus_connection_send_message_with_reply_and_block): add some @todo
11384
11385         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
11386
11387 2003-01-21  Havoc Pennington  <hp@pobox.com>
11388
11389         (patch untested because can't compile)
11390
11391         * bus/driver.c (create_unique_client_name): make this function
11392         never recycle client names. Also, caller should initialize
11393         the DBusString.
11394
11395         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
11396
11397 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
11398
11399         * dbus/dbus-marshal.c: (_dbus_marshal_double),
11400         (_dbus_marshal_int32), (_dbus_marshal_uint32),
11401         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
11402         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
11403         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11404         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11405         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
11406         * dbus/dbus-marshal.h:
11407         * dbus/dbus-protocol.h:
11408         Add support for marshalling and demarshalling integer, double
11409         and string arrays.
11410
11411 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
11412
11413         * bus/Makefile.am:
11414         Add driver.[ch]
11415
11416         * bus/connection.c: (connection_disconnect_handler):
11417         Remove the connection from the bus driver's list.
11418
11419         (connection_watch_callback): Dispatch messages.
11420
11421         (free_connection_data): Free connection name.
11422
11423         (bus_connection_setup): Add connection to the bus driver's list.
11424         (bus_connection_remove_owned_service):
11425         (bus_connection_set_name), (bus_connection_get_name):
11426         Add functions for setting and getting the connection's name.
11427
11428         * bus/connection.h:
11429         Add function headers.
11430
11431         * bus/driver.c: (create_unique_client_name),
11432         (bus_driver_handle_hello_message),
11433         (bus_driver_send_welcome_message), (bus_driver_message_handler),
11434         (bus_driver_add_connection), (bus_driver_remove_connection):
11435         * bus/driver.h:
11436         * bus/main.c:
11437         * bus/services.c: (bus_service_free):
11438         * bus/services.h:
11439         New file that handles communication and registreation with the bus
11440         itself.
11441
11442 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
11443
11444         * dbus/dbus-connection.c: (dbus_connection_send_message):
11445         Add a new client_serial parameter.
11446
11447         (dbus_connection_send_message_with_reply):
11448         Remove a @todo since we've implemented the blocking function.
11449
11450         (dbus_connection_send_message_with_reply_and_block):
11451         New function that sends a message and waits for a reply and
11452         then returns the reply.
11453
11454         * dbus/dbus-connection.h:
11455         Add new functions.
11456
11457         * dbus/dbus-errors.c: (dbus_result_to_string):
11458         * dbus/dbus-errors.h:
11459         Add new DBUS_RESULT.
11460
11461         * dbus/dbus-message-internal.h:
11462         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
11463         (_dbus_message_set_sender), (dbus_message_write_header),
11464         (dbus_message_new_reply), (decode_header_data),
11465         (_dbus_message_loader_return_buffer), (_dbus_message_test):
11466         * dbus/dbus-message.h:
11467         Add new functions that set the reply serial and sender.
11468         Also marshal and demarshal them correctly and add test.
11469
11470         * dbus/dbus-protocol.h:
11471         Add new DBUS_MESSAGE_TYPE_SENDER.
11472
11473         * glib/dbus-glib.h:
11474         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
11475         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
11476         (dbus_connection_hookup_with_g_main):
11477         * glib/test-dbus-glib.c: (main):
11478         Rewrite to use GIOChannel and remove the GSource crack.
11479
11480         * test/echo-client.c: (main):
11481         * test/watch.c: (check_messages):
11482         Update for changed APIs
11483
11484 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
11485
11486         * dbus/Makefile.am: Add dbus-timeout.[cħ]
11487
11488         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
11489         Create a DBusTimeoutList.
11490         (dbus_connection_set_timeout_functions): Add new function to
11491         set timeout callbacks
11492
11493         * dbus/dbus-connection.h: Add public DBusTimeout API.
11494
11495         * dbus/dbus-message.c: (dbus_message_get_service):
11496         * dbus/dbus-message.h:  New function.
11497
11498         * dbus/dbus-server.c: Fix small doc typo.
11499
11500         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
11501
11502 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
11503
11504         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
11505         of the string, just as long as specified.
11506
11507 2003-01-19  Havoc Pennington  <hp@pobox.com>
11508
11509         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
11510         new function
11511
11512         * dbus/dbus-server.c (dbus_server_set_max_connections)
11513         (dbus_server_get_max_connections, dbus_server_get_n_connections):
11514         keep track of current number of connections, and add API for
11515         setting a max (but haven't implemented enforcing the max yet)
11516
11517 2003-01-18  Havoc Pennington  <hp@pobox.com>
11518
11519         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
11520         reading/writing if read_watch != NULL or write_watch != NULL.
11521
11522         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
11523         the message loader code to actually load message->header and
11524         message->body into the newly-created message.
11525
11526         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
11527         in OOM case
11528
11529         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
11530         (dbus_connection_get_max_message_size)
11531         (dbus_connection_set_max_live_messages_size)
11532         (dbus_connection_get_max_live_messages_size): implement some
11533         resource limitation functions
11534
11535         * dbus/dbus-resources.c: new file implementing some of the
11536         resource limits stuff
11537
11538         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
11539         missing docs, add @todo to handle OOM etc.
11540
11541         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
11542         docs
11543
11544 2003-01-18  Havoc Pennington  <hp@pobox.com>
11545
11546         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
11547         connection if it hasn't been already.
11548
11549         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
11550         replace with DisconnectFunction.
11551
11552 2003-01-18  Havoc Pennington  <hp@pobox.com>
11553
11554         Building --disable-verbose-mode --disable-asserts --disable-tests
11555         cuts the library from 112K to 45K or so
11556
11557         * configure.in: check for varargs macro support,
11558         add --enable-verbose-mode, --enable-asserts.
11559
11560         * dbus/dbus-internals.h (_dbus_assert): support
11561         DBUS_DISABLE_ASSERT
11562         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
11563
11564 2003-01-18  Havoc Pennington  <hp@pobox.com>
11565
11566         * dbus/dbus-test.c: include config.h so that tests actually run
11567
11568         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
11569         so the failure mode when that assumption fails will be plenty
11570         obvious.
11571
11572 2003-01-18  Havoc Pennington  <hp@pobox.com>
11573
11574         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
11575
11576         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
11577         the distribution
11578
11579         * test/Makefile.am: don't use special variable "TESTS" for echo-*
11580         since we don't want to use those in make check
11581
11582 2003-01-15  Havoc Pennington  <hp@redhat.com>
11583
11584         Release 0.2
11585
11586         * NEWS: update
11587
11588 2003-01-15  Havoc Pennington  <hp@redhat.com>
11589
11590         * test/Makefile.am: fix so that test source code ends up in the
11591         distribution on make distcheck
11592
11593 2003-01-15  Havoc Pennington  <hp@redhat.com>
11594
11595         Release 0.1.
11596
11597         * NEWS: update
11598
11599 2003-01-15  Havoc Pennington  <hp@redhat.com>
11600
11601         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
11602         fix build when --disable-tests
11603
11604         * Makefile.am (EXTRA_DIST): put HACKING in here
11605
11606         * HACKING: document procedure for making a tarball release.
11607
11608 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
11609
11610         * bus/connection.c: (connection_error_handler),
11611         (bus_connection_setup):
11612         * bus/main.c: (main):
11613         Make sure that the DBusConnectionData struct is NULLed
11614         out to prevent a segfault.
11615
11616         * dbus/dbus-errors.c: (dbus_result_to_string):
11617         * dbus/dbus-errors.h:
11618         * dbus/dbus-message.c: (dbus_message_get_fields),
11619         (dbus_message_get_fields_valist), (_dbus_message_test):
11620         * dbus/dbus-message.h:
11621         Make dbus_message_get_fields return a result code so we can
11622         track invalid fields as well as oom.
11623
11624 2003-01-11  Havoc Pennington  <hp@pobox.com>
11625
11626         * configure.in: change --enable-test/--enable-ansi action-if-given
11627         to enable_foo=$enableval instead of enable_foo=yes
11628
11629 2003-01-08  Havoc Pennington  <hp@pobox.com>
11630
11631         * dbus/dbus-string.c (_dbus_string_align_length): new function
11632
11633         * dbus/dbus-test-main.c: move main() for test app here
11634         * dbus/dbus-test.c
11635         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
11636         symbol to run tests, because dbus-test isn't in the main
11637         library
11638
11639         Code review nitpicks.
11640
11641         * dbus/dbus-message.c (dbus_message_write_header): add newlines
11642         for people with narrow emacs ;-). Assert client_serial was filled
11643         in. Assert message->name != NULL.
11644         (dbus_message_append_fields): have "first_field_type" arg separate
11645         from va list, needed for C++ binding that also uses varargs IIRC
11646         and helps with type safety
11647         (dbus_message_new): add @todo about using DBusString to store
11648         service/name internally
11649         (dbus_message_new): don't leak ->service and ->name on OOM later
11650         in the function
11651         (dbus_message_unref): free the service name
11652         (dbus_message_get_fields): same change to varargs
11653         i.e. first_field_type
11654         (_dbus_message_loader_return_buffer): assert that the message data
11655         is aligned (if not it's a bug in our code). Put in verbose griping
11656         about why we set corrupted = TRUE.
11657         (decode_header_data): add FIXME that char* is evil.  Was going to
11658         add FIXME about evil locale-specific string.h strncmp, but just
11659         switched to wacky string-as-uint32 optimization. Move check for
11660         "no room for field name" above get_const_data_len() to avoid
11661         assertion failure in get_const_data_len if we have trailing 2
11662         bytes or the like. Check for service and name fields being
11663         provided twice. Don't leak service/name on error. Require field
11664         names to be aligned to 4 bytes.
11665
11666         * dbus/dbus-marshal.c: move byte swap stuff to header
11667         (_dbus_pack_int32): uscore-prefix
11668         (_dbus_unpack_int32): uscore-prefix
11669         (_dbus_unpack_uint32): export
11670         (_dbus_demarshal_string): add @todo complaining about use of
11671         memcpy()
11672         (_dbus_marshal_get_field_end_pos): add @todo about bad error
11673         handling allowing corrupt data to go unchecked
11674
11675 2003-01-08  Havoc Pennington  <hp@redhat.com>
11676
11677         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
11678         to the select() as needed for authentication. (should be using
11679         _dbus_poll() not select, but for another day)
11680
11681         * dbus/dbus.h: include dbus/dbus-protocol.h
11682
11683 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
11684
11685         * dbus/Makefile.am (dbusinclude_HEADERS): Install
11686         dbus-connection.h
11687
11688 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
11689
11690         * dbus/dbus-internals.c: (_dbus_type_to_string):
11691         New function that returns a string describing a type.
11692
11693         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
11694         * dbus/dbus-marshal.h:
11695         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
11696         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
11697         (dbus_message_iter_get_byte_array):
11698         * dbus/dbus-message.h:
11699         Add new convenience functions for appending and getting message fields.
11700         Also add demarshalling routines for byte arrays.
11701
11702 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
11703
11704         * dbus/dbus-connection-internal.h:
11705         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11706         (_dbus_connection_get_next_client_serial),
11707         (dbus_connection_send_message):
11708         * dbus/dbus-internals.h:
11709         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
11710         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
11711         (_dbus_marshal_uint32), (_dbus_demarshal_double),
11712         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
11713         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
11714         (_dbus_verbose_bytes), (_dbus_marshal_test):
11715         * dbus/dbus-marshal.h:
11716         * dbus/dbus-message-internal.h:
11717         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
11718         (dbus_message_write_header), (_dbus_message_lock),
11719         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
11720         (dbus_message_get_name), (dbus_message_append_int32),
11721         (dbus_message_append_uint32), (dbus_message_append_double),
11722         (dbus_message_append_string), (dbus_message_append_byte_array),
11723         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
11724         (dbus_message_iter_unref), (dbus_message_iter_has_next),
11725         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
11726         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
11727         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
11728         (decode_header_data), (_dbus_message_loader_return_buffer),
11729         (message_iter_test), (_dbus_message_test):
11730         * dbus/dbus-message.h:
11731         * dbus/dbus-protocol.h:
11732         * dbus/dbus-test.c: (main):
11733         * dbus/dbus-test.h:
11734         * glib/test-dbus-glib.c: (message_handler), (main):
11735         * test/echo-client.c: (main):
11736         * test/watch.c: (check_messages):
11737         Make messages sendable and receivable for real.
11738
11739 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
11740
11741         * dbus/dbus-marshal.c: (_dbus_marshal_double),
11742         (_dbus_marshal_string), (_dbus_marshal_byte_array):
11743         * dbus/dbus-message.c: (dbus_message_append_int32),
11744         (dbus_message_append_uint32), (dbus_message_append_double),
11745         (dbus_message_append_string), (dbus_message_append_byte_array):
11746         Handle OOM restoration.
11747
11748 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
11749
11750         * dbus/dbus-marshal.c: (_dbus_marshal_string),
11751         (_dbus_demarshal_string), (_dbus_marshal_test):
11752         * dbus/dbus-marshal.h:
11753         * dbus/dbus-message.c: (dbus_message_get_name),
11754         Document these functions.
11755
11756         (dbus_message_append_int32), (dbus_message_append_uint32),
11757         (dbus_message_append_double), (dbus_message_append_string),
11758         (dbus_message_append_byte_array):
11759         * dbus/dbus-message.h:
11760         Add functions for adding message fields of different types.
11761
11762         * dbus/dbus-protocol.h:
11763         Add the different types.
11764
11765 2003-01-05  Havoc Pennington  <hp@pobox.com>
11766
11767         * bus/connection.c: implement routines for handling connections,
11768         first thing is keeping a list of owned services on each connection
11769         and setting up watches etc.
11770
11771         * bus/services.c: implement a mapping from service names to lists
11772         of connections
11773
11774         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
11775
11776         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
11777         to use static mutexes for global data
11778
11779         * dbus/dbus-connection.c (dbus_connection_set_data): add new
11780         collection of functions to set/get application-specific data
11781         on the DBusConnection.
11782
11783 2003-01-04  Havoc Pennington  <hp@pobox.com>
11784
11785         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
11786         (_dbus_poll): new function
11787
11788         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
11789         copied from GLib
11790
11791         * bus/loop.c: initial code for the daemon main loop
11792
11793 2003-01-04  Havoc Pennington  <hp@pobox.com>
11794
11795         * test/watch.c (error_handler): make it safe if the error handler
11796         is called multiple times (if we s/error handler/disconnect
11797         handler/ we should just guarantee it's called only once)
11798
11799         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
11800         error handler on disconnect (it's quite possible we should
11801         just change the error handler to a "disconnect handler," I'm
11802         not sure we have any other meaningful errors)
11803
11804         * configure.in: check for getpwnam_r
11805
11806         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
11807         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
11808         mechanism as in SASL spec, using socket credentials
11809
11810         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
11811         (_dbus_send_credentials_unix_socket): new function
11812
11813         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
11814         dbus_accept()
11815         (_dbus_write): only check errno if <0 returned
11816         (_dbus_write_two): ditto
11817
11818 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
11819
11820         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
11821         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
11822         (_dbus_marshal_test):
11823         * dbus/dbus-marshal.h:
11824         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
11825         to _dbus_marshal_utf8_string. Also fix some tests.
11826
11827 2002-12-28  Harri Porten  <porten@kde.org>
11828
11829         * configure.in: added check for C++ compiler and a very cheesy
11830         check for the Qt integration
11831
11832         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
11833
11834         * qt/Makefile.am: added
11835
11836         * qt/.cvsignore: added
11837
11838         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
11839         latter, added #ifdef QT_THREAD_SUPPORT guard.
11840
11841         * dbus/Makefile.am: added missing headers for make dist
11842
11843 2002-12-28  Kristian Rietveld  <kris@gtk.org>
11844
11845         * dbus/Makefile.am: fixup export-symbols-regex.
11846
11847 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
11848
11849         * acinclude.m4: Add this file and put the
11850         PKG_CHECK_MODULE macro in it.
11851
11852 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
11853
11854         * dbus/dbus-marshal.c: (_dbus_marshal_string),
11855         (_dbus_demarshal_double), (_dbus_demarshal_int32),
11856         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11857         (_dbus_marshal_test):
11858         Make the demarshalling routines align the pos argument.
11859         Add string marshalling tests and fix the obvious bugs
11860         discovered.
11861
11862 2002-12-26  Havoc Pennington  <hp@pobox.com>
11863
11864         * dbus/dbus-auth.c: fixes fixes fixes
11865
11866         * dbus/dbus-transport-unix.c: wire up support for
11867         encoding/decoding data on the wire
11868
11869         * dbus/dbus-auth.c (_dbus_auth_encode_data)
11870         (_dbus_auth_decode_data): append to target string
11871         instead of nuking it.
11872
11873 2002-12-26  Havoc Pennington  <hp@pobox.com>
11874
11875         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
11876         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
11877         doh
11878
11879         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
11880         avoid swap_bytes() overhead (ignoring possible assembly stuff for
11881         now). Main point is because I wanted unpack_uint32 to implement
11882         _dbus_verbose_bytes
11883         (_dbus_verbose_bytes): new function
11884
11885         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
11886
11887         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
11888         mechanism to handle a corrupt message stream
11889         (_dbus_message_loader_new): fix preallocation to only prealloc,
11890         not prelengthen
11891
11892         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
11893         (_dbus_string_test): enhance tests for copy/move and fix the
11894         functions
11895
11896         * dbus/dbus-transport-unix.c: Hold references in more places to
11897         avoid reentrancy problems
11898
11899         * dbus/dbus-transport.c: ditto
11900
11901         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
11902         leak reference count in no-message case
11903
11904         * test/watch.c (do_mainloop): handle adding/removing watches
11905         during iteration over the watches. Also, ref the connection/server
11906         stored on a watch, so we don't try to mangle a destroyed one.
11907
11908         * dbus/dbus-transport-unix.c (do_authentication): perform
11909         authentication
11910
11911         * dbus/dbus-auth.c (get_state): add a state
11912         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
11913         (_dbus_auth_get_unused_bytes): append the unused bytes
11914         to the passed in string, rather than prepend
11915
11916         * dbus/dbus-transport.c (_dbus_transport_init_base): create
11917         the auth conversation DBusAuth
11918
11919         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
11920         (_dbus_transport_new_for_domain_socket): when creating a
11921         transport, pass in whether it's a client-side or server-side
11922         transport so we know which DBusAuth to create
11923
11924 2002-12-03  Havoc Pennington  <hp@pobox.com>
11925
11926         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
11927         _after_ finalizing the derived members
11928         (unix_connection_set): unref watch if we fail to add it
11929
11930         * dbus/dbus-connection.c (dbus_connection_unref): delete the
11931         transport first, so that the connection owned by the
11932         transport will be valid as the transport finalizes.
11933
11934         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
11935         if necessary, and remove watches from the connection.
11936
11937         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
11938
11939 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
11940
11941         * dbus/dbus-marshal.c: (_dbus_marshal_string),
11942         (_dbus_demarshal_double), (_dbus_demarshal_int32),
11943         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11944         (_dbus_marshal_test):
11945         * dbus/dbus-marshal.h:
11946         Add string marshal functions and have the demarshal functions
11947         return the new position.
11948
11949 2002-12-25  Havoc Pennington  <hp@pobox.com>
11950
11951         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
11952         it is a simple protocol that just maps directly to SASL.
11953
11954         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
11955         initial implementation, not actually used yet.
11956
11957         * dbus/dbus-string.c (_dbus_string_find): new function
11958         (_dbus_string_equal): new function
11959         (_dbus_string_base64_encode): new function
11960         (_dbus_string_base64_decode): new function
11961
11962 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
11963
11964         * dbus/Makefile.am:
11965         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
11966         (_dbus_marshal_int32), (_dbus_marshal_uint32),
11967         (_dbus_demarshal_double), (_dbus_demarshal_int32),
11968         (_dbus_demarshal_uint32), (_dbus_marshal_test):
11969         * dbus/dbus-marshal.h:
11970         * dbus/dbus-protocol.h:
11971         * dbus/dbus-test.c: (main):
11972         * dbus/dbus-test.h:
11973         Add un-optimized marshalling/demarshalling routines.
11974
11975 2002-12-25  Harri Porten  <porten@kde.org>
11976
11977         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
11978
11979 2002-12-24  Zack Rusin  <zack@kde.org>
11980
11981         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
11982         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
11983         main loop stuff
11984
11985 2002-12-24  Havoc Pennington  <hp@pobox.com>
11986
11987         * glib/dbus-gthread.c: fix include
11988
11989         * glib/dbus-glib.h: rename DBusMessageHandler for now.
11990         I think glib API needs to change, though, as you don't
11991         want to use DBusMessageFunction, you want to use the
11992         DBusMessageHandler object. Probably
11993         dbus_connection_open_with_g_main_loop()
11994         and dbus_connection_setup_g_main_loop() or something like that
11995         (but think of better names...) that just create a connection
11996         that has watch/timeout functions etc. already set up.
11997
11998         * dbus/dbus-connection.c
11999         (dbus_connection_send_message_with_reply): new function just to
12000         show how the message handler helps us deal with replies.
12001
12002         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12003
12004         * dbus/dbus-string.c (_dbus_string_test): free a string that
12005         wasn't
12006
12007         * dbus/dbus-hash.c: use memory pools for the hash entries
12008         (rebuild_table): be more paranoid about overflow, and
12009         shrink table when we can
12010         (_dbus_hash_test): reduce number of sprintfs and write
12011         valid C89. Add tests for case where we grow and then
12012         shrink the hash table.
12013
12014         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12015
12016         * dbus/dbus-connection.c (dbus_connection_register_handler)
12017         (dbus_connection_unregister_handler): new functions
12018
12019         * dbus/dbus-message.c (dbus_message_get_name): new
12020
12021         * dbus/dbus-list.c: fix docs typo
12022
12023         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12024         an object representing a handler for messages.
12025
12026 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12027
12028         * glib/dbus-glib.h:
12029         * glib/dbus-gthread.c: (dbus_gthread_init):
12030         Don't use the gdbus prefix for public functions.
12031
12032 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12033
12034         * Makefile.am:
12035         * configure.in:
12036         Add GLib checks and fixup .pc files
12037
12038         * glib/Makefile.am:
12039         * glib/dbus-glib.h:
12040         * glib/dbus-gmain.c: (gdbus_connection_prepare),
12041         (gdbus_connection_check), (gdbus_connection_dispatch),
12042         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12043         (dbus_connection_gsource_new):
12044         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12045         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12046         * glib/test-dbus-glib.c: (message_handler), (main):
12047         Add GLib support.
12048
12049 2002-12-15  Harri Porten  <porten@kde.org>
12050
12051         * autogen.sh: check for libtoolize before attempting to use it
12052
12053         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12054         struct.
12055
12056         * .cvsignore: ignore more stamp files
12057
12058         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12059
12060         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12061         without make install.
12062
12063 2002-12-15  Havoc Pennington  <hp@pobox.com>
12064
12065         * dbus/dbus-threads.c: add thread stubs that a higher library
12066         layer can fill in. e.g. the GLib wrapper might fill them in with
12067         GThread stuff. We still need to use this thread API to
12068         thread-safe-ize the library.
12069
12070 2002-12-12  Havoc Pennington  <hp@pobox.com>
12071
12072         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12073         below new interfaces and include fewer system headers.
12074
12075         * dbus/dbus-sysdeps.c (_dbus_read): new function
12076         (_dbus_write): new function
12077         (_dbus_write_two): new function
12078         (_dbus_connect_unix_socket): new function
12079         (_dbus_listen_unix_socket): new function
12080
12081         * dbus/dbus-message-internal.h: change interfaces to use
12082         DBusString
12083
12084 2002-12-11  Havoc Pennington  <hp@pobox.com>
12085
12086         * dbus/dbus-types.h: add dbus_unichar
12087
12088         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12089
12090         * dbus/dbus-connection.c (dbus_connection_send_message): return
12091         TRUE on success
12092
12093         * dbus/dbus-transport.c: include dbus-watch.h
12094
12095         * dbus/dbus-connection.c: include dbus-message-internal.h
12096
12097         * HACKING: add file with coding guidelines stuff.
12098
12099         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12100         handling here, for security purposes (as in vsftpd). Not actually
12101         using this class yet.
12102
12103         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12104         system/libc usage here, as in vsftpd, for ease of auditing (and
12105         should also simplify portability). Haven't actually moved all the
12106         system/libc usage into here yet.
12107
12108 2002-11-25  Havoc Pennington  <hp@pobox.com>
12109
12110         * dbus/dbus-internals.c (_dbus_verbose): fix to not
12111         always print the first verbose message.
12112
12113 2002-11-24  Havoc Pennington  <hp@pobox.com>
12114
12115         * test/echo-client.c, test/echo-server.c: cheesy test
12116         clients.
12117
12118         * configure.in (AC_CHECK_FUNCS): check for writev
12119
12120         * dbus/dbus-message.c (_dbus_message_get_network_data): new
12121         function
12122
12123         * dbus/dbus-list.c (_dbus_list_foreach): new function
12124
12125         * dbus/dbus-internals.c (_dbus_verbose): new function
12126
12127         * dbus/dbus-server.c, dbus/dbus-server.h: public object
12128         representing a server that listens for connections.
12129
12130         * dbus/.cvsignore: create
12131
12132         * dbus/dbus-errors.h, dbus/dbus-errors.c:
12133         public API for reporting errors
12134
12135         * dbus/dbus-connection.h, dbus/dbus-connection.c:
12136         public object representing a connection that
12137         sends/receives messages. (Same object used for
12138         both client and server.)
12139
12140         * dbus/dbus-transport.h, dbus/dbus-transport.c:
12141         Basic abstraction for different kinds of stream
12142         that we might read/write messages from.
12143
12144 2002-11-23  Havoc Pennington  <hp@pobox.com>
12145
12146         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12147         _DBUS_INT_MAX
12148
12149         * dbus/dbus-test.c (main): add list test, and include
12150         dbus-test.h as intended
12151
12152         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12153         (_dbus_hash_table_remove_int): return value indicates
12154         whether the entry existed to remove
12155
12156         * dbus/dbus-list.c: add linked list utility class,
12157         with docs and tests
12158
12159         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12160         array sometimes.
12161
12162 2002-11-23  Havoc Pennington  <hp@pobox.com>
12163
12164         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12165         DBUS_END_DECLS to nothing, that should fix this once and for all
12166
12167         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12168
12169         * dbus/dbus-message.c, dbus/dbus-hash.c:
12170         add some missing @brief
12171
12172 2002-11-23  Havoc Pennington  <hp@pobox.com>
12173
12174         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12175         to avoid confusing Doxygen
12176
12177         * dbus/dbus-hash.c: @} not }@
12178
12179         * dbus/dbus-message.c (struct DBusMessage): split out
12180         internals docs
12181
12182 2002-11-23  Havoc Pennington  <hp@pobox.com>
12183
12184         * configure.in: pile on more warning flags if using gcc
12185
12186         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12187         to document static functions
12188
12189         * configure.in: add summary to end of configure so it
12190         looks nice and attractive
12191
12192         * dbus/dbus-hash.c: finish implementation and write unit
12193         tests and docs
12194
12195         * configure.in: add --enable-tests to enable unit tests
12196
12197         * dbus/dbus-test.c: test program to run unit tests
12198         for all files in dbus/*, initially runs a test for
12199         dbus-hash.c
12200
12201         * dbus/dbus-internals.h: file to hold some internal utility stuff
12202
12203 2002-11-22  Havoc Pennington  <hp@redhat.com>
12204
12205         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12206         "ported" away from Tcl
12207
12208         * dbus/dbus-types.h: header for types such as dbus_bool_t
12209
12210 2002-11-22  Havoc Pennington  <hp@redhat.com>
12211
12212         * dbus/dbus.h: fixups for doc warnings
12213
12214         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12215         macros
12216         (QUIET): make it quiet so we can see warnings
12217
12218         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12219
12220 2002-11-22  Havoc Pennington  <hp@redhat.com>
12221
12222         * Makefile.am: include "Doxyfile" target in all-local
12223
12224         * configure.in: generate the Doxyfile
12225
12226         * Doxyfile.in: move Doxyfile here, so we can use
12227         configure to generate a Doxyfile with the right
12228         version number etc.
12229
12230 2002-11-22  Havoc Pennington  <hp@redhat.com>
12231
12232         * dbus/dbus-message.c: move inline docs into .c file
12233
12234         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12235         so all docs are under doc/
12236         (MAN_EXTENSION): generate man pages. Use extension
12237         ".3dbus" which matches ".3qt" on my system,
12238         I guess this is OK, I don't know really.
12239         (FILE_PATTERNS): look for .c files not .h, makes sense
12240         for plain C I think
12241
12242 2002-11-22  Havoc Pennington  <hp@pobox.com>
12243
12244         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12245         because any app can be a server, and any app can be a client,
12246         the bus is a special kind of server.
12247
12248 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
12249
12250         * Doxyfile : adding. Still needs Makefile rules to be generated
12251         automatically (just run "doxygen" in the toplevel dir for now to
12252         generate docs)
12253
12254         * dbus/dbus-message.h : Adding sample docs (javadoc since
12255         resembles gtk-doc a little more)
12256
12257         * dbus/dbus.h : Adding sample docs
12258
12259 2002-11-21  Havoc Pennington  <hp@redhat.com>
12260
12261         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12262         so we can allow ourselves to include files directly,
12263         instead of having to use dbus.h
12264
12265         * dbus/dbus.h: fill in
12266
12267         * dbus/dbus-message.h: sketch out a sample header file.
12268         Include griping if you include it directly instead of
12269         via dbus.h
12270
12271         * dbus/dbus-macros.h: new file with macros for extern "C",
12272         TRUE/FALSE, NULL, etc.
12273
12274         * doc/file-boilerplate.c: put include guards in here
12275
12276 2002-11-21  Havoc Pennington  <hp@redhat.com>
12277
12278         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12279
12280         * COPYING: include the GPL as well, and license code
12281         under both AFL and GPL.
12282
12283 2002-11-21  Havoc Pennington  <hp@redhat.com>
12284
12285         * acconfig.h: get rid of this
12286
12287         * autogen.sh (run_configure): add --no-configure option
12288
12289         * configure.in: remove AC_ARG_PROGRAM to make
12290         autoconf complain less. add AC_PREREQ.
12291         add AC_DEFINE third arg.
12292
12293 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
12294
12295         * doc/Makefile.am:
12296         Fix references so we can distcheck.
12297
12298 2002-11-21  Havoc Pennington  <hp@redhat.com>
12299
12300         * Initial module creation
12301