Don't leak messages when calling methods
[platform/upstream/dbus.git] / ChangeLog
1 2005-07-15  Ross Burton  <ross@openedhand.com>
2
3         * glib/dbus-gproxy.c:
4         Fix a leak when calling methods via the proxy.
5
6 2005-07-15  Colin Walters  <walters@verbum.org>
7
8         * bus/selinux.c (bus_selinux_append_context): Wrap in
9         HAVE_SELINUX.
10
11 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
12
13         * python/_dbus.py (Bus::remove_signal_receiver):
14         don't add a callback to the match if none has been passed in
15         
16         * python/matchrules.py (SignalMatchTree::remove): if the rule
17         being matched does not have a callback treat it as a wildcard
18         fix matching logic
19
20         * doc/dbus-tutorial.xml: Add Python tutorial
21
22 2005-07-14  Colin Walters  <walters@verbum.org>
23
24         * bus/driver.c
25         (bus_driver_handle_get_connection_unix_security_context): New function.
26         (message_handlers): Add.
27
28         * bus/selinux.c (bus_selinux_append_context): New function; appends
29         security context to message.
30
31         * bus/selinux.h: Prototype.
32
33         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
34
35 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
36
37         * bus/activation.c: clean up all tabs to be 8 spaces 
38         (bus_activation_activate_service): make sure we clean up
39         if activation fails
40
41         * bus/dispatch.c: clean up all tabs to be 8 spaces 
42         (check_shell_fail_service_auto_start): New function
43         tests to make sure we get fail properly when trying to auto start a service
44         with a faulty command line
45         (check_shell_service_success_auto_start): New function tests to make sure
46         auto started services get the arguments on the command line
47
48         * test/test-shell-service.c: Added service for testing auto-starting with 
49         command line arguments
50
51         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
52         test/data/valid-service-files/debug-shell-echo-success.service.in:
53         Added service files for testing auto-starting with command line arguments
54
55         * */.cvsignore: added a bunch of generated files to various .cvsignore files
56
57 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
58
59         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
60         
61         * dbus/Makefile.am: added new files to build.
62
63         * bus/activation.c (bus_activation_activate_service): support
64         activation commands with parameters.
65
66         * test/shell-test.c: added test program for the shell parsing
67         code.
68
69 2005-07-13  David Zeuthen  <davidz@redhat.com>
70
71         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
72         64 bit signed and unsigned parameters
73
74 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
75
76         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
77
78         * python/service.py (class Name): renamed BusName to make it clearer
79         what the object is for (a name on the bus)
80
81         * python/examples/example-service.py,
82         python/examples/example-signal-emitter.py: change the Name object to
83         BusName
84
85 2005-07-12  Colin Walters  <walters@verbum.org>
86
87         Patch from Jim Gettys <Jim.Gettys@hp.com>.
88
89         * tools/dbus-launch.c: Include sys/select.h.
90
91 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
92         * python/dbus_bindings.pyx.in: removed
93
94         * python/dbus_bindings.pyx: Added.
95         - Fixed some memleaks (patch from 
96         Sean Meiners <sean.meiners@linspireinc.com>)
97         - Broke out the #include "dbus_h_wrapper.h" and put it in its
98         own pxd file (Pyrex definition)
99         - Broke out glib dependancies into its own pyx module
100         
101         * python/dbus_bindings.pdx: Added.
102         - Defines C class Connection for exporting to other modules
103
104         * python/dbus_glib_bindings.pyx: Added.
105         - New module to handle lowlevel dbus-glib mainloop integration
106
107         * python/glib.py: Added.
108         - Registers the glib mainloop when you import this module
109
110         * python/services.py: Removed (renamed to service.py)
111         
112         * python/service.py: Added.
113         - (class Server): renamed Name
114
115         * python/__init__.py: Bump ro version (0,41,0)
116         -don't import the decorators or service module
117         by default.  These now reside in the dbus.service namespace
118
119         * python/_dbus.py (Bus::__init__): Add code run the main loop 
120         setup function on creation 
121
122         * python/examples/example-service.py,
123         python/examples/example-signal-emitter.py: update examples
124
125         * python/examples/gconf-proxy-service.py,
126         python/examples/gconf-proxy-service2.py: TODO fix these up
127
128         * doc/TODO: Addition
129         - Added a Python Bindings 1.0 section
130         - added "Add match on args or match on details to match rules"
131
132
133 2005-07-12  Colin Walters  <walters@verbum.org>
134
135         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
136         (statemachine-glue.h): 
137         * glib/examples/Makefile.am (example-service-glue.h) 
138         (example-signal-emitter-glue.h): 
139         * glib/Makefile.am (dbus-glib-error-switch.h): 
140         Add libtool --mode=execute so we use the built library instead
141         of any installed one.
142
143 2005-07-11  Colin Walters  <walters@verbum.org>
144
145         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
146         (dbus_g_value_types_init): Remove assertion.
147         (dbus_g_value_get_g_type, dbus_g_value_open)
148         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
149         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
150         functions related to DBusGValue.  Now we marshal/demarshal
151         structures as GValueArray.
152         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
153         structures.
154         (signature_iter_to_g_type_array): Don't call
155         signature_iter_to_g_type_struct.
156         (signature_iter_to_g_type_struct): Delete.
157         (dbus_gvalue_to_signature): Delete.
158         (dbus_gvalue_to_signature): New function with same name as other
159         one; we can convert structures to signatures.
160         (demarshal_valuearray): New function.
161         (get_type_demarshaller): Use it.
162         (demarshal_recurse): Delete.
163         (marshal_proxy): New function.
164         (marshal_map): Warn if we can't determine signature from type.
165         (marshal_collection_ptrarray): Ditto.
166         (marshal_collection_array): Ditto.
167         (get_type_marshaller): Use marshal_valuearray.
168         (marshal_recurse): Delete.
169         (_dbus_gvalue_test): Add some tests.
170
171         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
172         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
173         (dbus_g_value_open, dbus_g_value_iterator_get_value)
174         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
175         (dbus_g_value_free): Remove prototypes.
176
177         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
178         G_TYPE_VALUE_ARRAY.
179
180         * glib/examples/example-service.c:
181         * glib/examples/example-client.c: Implement GetTuple.
182
183         * test/glib/test-dbus-glib.c:
184         * test/glib/test-service-glib.c:
185         * test/glib/test-service-glib.xml: Add structure tests.
186
187 2005-07-10  Colin Walters  <walters@verbum.org>
188
189         * doc/TODO: Knock off some GLib items with this patch.
190
191         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
192         (_dbus_gvalue_signals_error): New functions.
193
194         * glib/dbus-gvalue-utils.h: Prototype them.
195
196         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
197         and change to not output const/retval flags for input args.  All
198         callers updated.
199         (invoke_object_method): Refactor to handle return values.  Add
200         some more comments in various places.  Remove debug g_print.
201
202         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
203
204         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
205         Handle G_TYPE_NONE.
206         (compute_gsignature): New function; refactored from code from
207         compute_marshaller and compute_marshaller_name.  Enhance to
208         handle return values and async ops more cleanly.  Update for
209         async ops returning NONE instead of BOOLEAN.
210         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
211         and output appropriate string.
212         (generate_glue): Handle return value annotation.  Also don't dump
213         constness flag for input arguments.
214
215         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
216         files shared between installed library and utilities.
217         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
218         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
219         binding tool can access gtype utility functions.
220
221         * test/glib/test-service-glib.c: 
222         * test/glib/test-service-glib.xml: 
223         * test/glib/test-dbus-glib.c: Add some tests for return values.
224
225 2005-07-09  Colin Walters  <walters@verbum.org>
226
227         * glib/dbus-gparser.c (parse_annotation): Add annotations to
228         argument if available, not method.
229
230         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
231         (invoke_object_method): First, remove some redundant
232         GValues (object_value, error_value) in favor of working on
233         array directly.  Second, rework constness to be less buggy.
234         Now we iterate directly over the argument metadata instead
235         of parallel iterating over output signature and metadata.
236
237         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
238
239         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
240         annotation on input args.
241         
242 2005-07-09  Colin Walters  <walters@verbum.org>
243
244         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
245         Define.
246
247         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
248         annotation.
249
250         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
251         (method_dir_signature_from_object_info): Handle arg_iterate change.
252         (write_interface): Ditto.
253         (lookup_object_info): Don't barf if format_version is > 0.
254         (invoke_object_method): Handle arg constness.
255
256         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
257         (arg_info_new): Create.
258         (arg_info_unref): Destroy.
259         (arg_info_get_annotations, arg_info_get_annotation) 
260         (arg_info_add_annotation): New functions.
261
262         * glib/dbus-gidl.h: Prototype them.
263
264         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
265         args, disallow them in properties.
266         (parse_annotation): Handle arg annotations.
267
268         * test/glib/test-service-glib.xml: 
269         * test/glib/test-service-glib.c: Update to make some methods
270         const.
271
272 2005-07-08  Colin Walters  <walters@verbum.org>
273
274         * test/glib/test-service-glib.xml: 
275         * test/glib/test-service-glib.c:
276         * test/glib/test-dbus-glib.c: Test a{sv}.
277
278         * glib/examples/statemachine/statemachine.c:
279         * glib/examples/statemachine/statemachine-server.c:
280         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
281         add progress bar, etc.
282
283         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
284         needed anymore due to generic array/map marshalling.
285         (dbus_g_value_types_init): Don't register basic arrays or the
286         string/string hash.
287         (dbus_gtype_from_signature_iter): Don't try to recurse into
288         variants.
289         (dbus_gtype_to_signature): Check collection/map before type
290         metadata.
291         (demarshal_garray_basic): Renamed to demarshal_collection_array.
292         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
293         generic map creation/append functions instead of hash table
294         specifically.
295         (get_type_demarshaller): Handle maps.
296         (demarshal_collection): Dispatch on collection type to either
297         demarshal_collection_ptrarray or demarshal_collection_array.
298         (get_type_marshaller): Handle maps.
299         (marshal_collection): Dispatch collection type to either
300         marshal_collection_ptrarray or marshal_collection_array.
301         (_dbus_gvalue_test): New test.
302
303         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
304         (hash_free_from_gtype): Use it to free GValues.
305         (hashtable_append): New function.
306         (ptrarray_append): Fix prototype.
307         (slist_append): Ditto.
308         (_dbus_gvalue_utils_test): Extend tests.
309
310         * glib/dbus-gtype-specialized.c
311         (dbus_g_type_specialized_init_append): Renamed from
312         dbus_g_type_specialized_collection_init_append.  Remove const from
313         value, since we steal it.
314         (dbus_g_type_specialized_map_append): New function.
315
316         * glib/dbus-gtype-specialized.h: Update prototypes.
317         Add DBusGTypeSpecializedMapAppendFunc.
318
319         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
320         _dbus_gvalue_test.
321         
322         * glib/dbus-gtest.h: Prototype it.
323
324 2005-07-08  Ross Burton  <ross@openedhand.com>
325
326         * dbus/dbus-glib.h:
327         Add DBysGAsyncData for the async bindings.
328
329         * glib/dbus-binding-tool-glib.c:
330         Re-enable the async bindings.
331
332         * test/glib/test-dbus-glib.c:
333         Add a test for the generated async bindings.
334
335 2005-07-08  Colin Walters  <walters@verbum.org>
336
337         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
338         connection concept.
339         
340 2005-07-08  Colin Walters  <walters@verbum.org>
341         
342         * tools/Makefile.am: Kill of print-introspect in favor of using
343         dbus-send --print-reply=literal.
344
345         * test/glib/test-service-glib.xml: 
346         * test/glib/test-service-glib.c (my_object_get_objs): New test
347         for "ao".
348
349         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
350         (main): Test GetObjs.
351
352         * glib/examples/statemachine/Makefile.am:
353         * glib/examples/statemachine/sm-marshal.list:
354         * glib/examples/statemachine/statemachine-client.c:
355         * glib/examples/statemachine/statemachine-server.c:
356         * glib/examples/statemachine/statemachine-server.xml:
357         * glib/examples/statemachine/statemachine.c:
358         * glib/examples/statemachine/statemachine.h:
359         * glib/examples/statemachine/statemachine.xml:
360
361         New example.
362
363         * glib/examples/example-service.c (main): Move invocation
364         of dbus_g_object_type_install_info earlier, to emphasize it
365         should only be done once.
366
367         * glib/examples/example-signal-emitter.c (main): Ditto.
368
369         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
370
371         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
372         (dbus_gvalue_marshal): Update prototypes.
373
374         * glib/dbus-gvalue.c: Update all marshalling functions to take
375         const GValue instead of GValue.
376         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
377         types.
378         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
379         change.
380         (dbus_gtype_to_signature): Handle generic collecitons and maps.
381         Return a newly-allocated string.
382         (demarshal_proxy, demarshal_object_path, demarshal_object)
383         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
384         we get the wrong types from message.
385         (get_type_demarshaller): New function, extracted from
386         dbus_gvalue_demarshal.
387         (demarshal_collection): New function, demarshals generic
388         collection.
389         (dbus_gvalue_demarshal): Just invoke result of
390         get_type_demarshaller.  Throw error if we don't have one.
391         (marshal_garray_basic): Abort on OOM.
392         (get_type_marshaller): New function, extracted from
393         dbus_gvalue_marshal.
394         (collection_marshal_iterator, marshal_collection): New functions;
395         implements generic marshalling for an iteratable specialized
396         collection.
397         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
398
399         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
400         G_TYPE_STRING.
401         (ptrarray_value_from_gvalue): Ditto.
402         (ptrarray_append, ptrarray_free): New functions.
403         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
404         (slist_append, slist_end_append, slist_free): New functions.
405         (dbus_g_type_specialized_builtins_init): Add append fuctions
406         for GPtrArray and GSList.  Register GSList.
407         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
408
409         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
410         New.
411         (dbus_g_type_specialized_collection_init_append)
412         (dbus_g_type_specialized_collection_append)
413         (dbus_g_type_specialized_collection_end_append): Prototype.
414         (DBusGTypeSpecializedCollectionVtable): Add append_func and
415         end_append_func.
416
417         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
418         (dbus_g_type_specialized_collection_append) 
419         (dbus_g_type_specialized_collection_end_append): New functions.
420         (dbus_g_type_map_value_iterate): Take const GValue.
421         (dbus_g_type_collection_value_iterate): Ditto.
422
423         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
424         _dbus_gvalue_utils_test.
425         
426         * glib/dbus-gtest.h: Prototype it.
427
428         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
429         using uninitialized owner_list.
430         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
431         public API.
432         (dbus_g_proxy_end_call_internal): Update to use error set
433         from dbus_gvalue_demarshal instead of setting it here.
434         (dbus_g_proxy_begin_call): Move return_if_fail here.
435
436         * glib/dbus-gobject.c (write_interface): Update for
437         dbus_gtype_to_signature returning new string.
438
439         * configure.in: Add glib/examples/statemachine.
440
441 2005-07-08  Joe Shaw  <joeshaw@novell.com>
442
443         * configure.in: Add a configure option, --with-console-auth-dir
444         
445         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
446         new setting.  Patch from Kay Sievers.
447
448 2005-07-06  Colin Walters  <walters@verbum.org>
449
450         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
451         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
452         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
453         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
454         Delete in favor of dbus_g_proxy_begin_call and
455         dbus_g_proxy_cancel_call.
456         (DBusGProxyCall, DBusGProxyCallNotify): New.
457         (dbus_g_proxy_begin_call): Change prototype to take callback, user
458         data, and destroy function.  This replaces
459         dbus_g_pending_call_set_notify.
460         (dbus_g_proxy_cancel_call): Prototype.
461         (DBusGAsyncData): Delete, shouldn't be needed anymore.
462
463         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
464         pending_calls map.
465         (struct _DBusGProxyManager): Add bus_proxy member, which is an
466         internal proxy for calls to the bus. Remove
467         pending_nameowner_calls, now the internal proxy keeps track.
468         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
469         pending_nameowner_calls.
470         (got_name_owner_cb): Update prototype, and use
471         dbus_g_proxy_end_call.
472         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
473         (dbus_g_proxy_manager_register): Delete directly libdbus code in
474         favor of using internal proxy.
475         (dbus_g_proxy_manager_unregister): Update to use
476         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
477         (dbus_g_proxy_init): Initialize pending calls map.
478         (dbus_g_proxy_constructor): New.
479         (dbus_g_proxy_class_init): Add get/set property functions,
480         constructor, and add NAME, PATH, and INTERFACE properties.
481         (cancel_pending_call): New function.
482         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
483         cancel them.
484         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
485         (GPendingNotifyClosure): New structure.
486         (d_pending_call_notify, d_pending_call_free): Moved here from
487         dbus-glib.c.
488         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
489         ordering.
490         (manager_begin_bus_call): New internal function for talking to
491         internal bus proxy.
492         (dbus_g_proxy_new): Construct object using GObjet properties.
493         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
494         Create closure of same, and insert call into map of pending calls.
495         (dbus_g_proxy_end_call_internal): Take call id instead of pending
496         call.  Look up pending call in current set.  Remove it when we've
497         completed.
498         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
499         (dbus_g_proxy_begin_call): Change API to take callback, user data,
500         and destroy function directly.
501         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
502         (dbus_g_proxy_call): Invoke with NULL callback.
503         (dbus_g_proxy_cancel_call): New function, replaces
504         dbus_g_pending_call_cancel.
505
506         * glib/dbus-gparser.c (validate_signature): Fix call to
507         dbus_set_g_error.
508
509         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
510         New quark for attaching metadata to GType.
511         (info_hash): Delete.
512         (lookup_object_info): Look up using quark.
513         (dbus_g_object_type_install_info): Check that a type is classed,
514         not that it's an object.  Also just install type data using quark
515         instead of using global hash.
516
517         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
518         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
519         (GPendingNotifyClosure): Delete.
520         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
521         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
522
523         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
524         client method generation until we can fix it...
525         
526         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
527         (load_from_service_thread_func): Ditto.
528
529         * tools/dbus-names-model.c (struct NamesModel): Hold
530         DBusGProxyCall.
531         (have_names_notify): Update prototype, use
532         dbus_g_proxy_cancel_call.
533         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
534
535         * tools/dbus-monitor.c (filter_func): Update for print_message
536         API change.
537
538         * test/glib/test-dbus-glib.c: Add more tests for async
539         invocations.  Update many begin_call/end_call pairs to just use
540         dbus_g_proxy_call.
541
542         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
543         allows us to dump print-introspect.c.
544
545         * tools/dbus-print-message.h (print_message): Add literal argument
546         to print_message which is intended to allow printing arguments without
547         metadata like "string=".
548
549         * tools/dbus-print-message.c (print_iter): Add literal argument.
550         (print_message): Allow printing string messages literally.
551
552 2005-07-05  Colin Walters  <walters@verbum.org>
553
554         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
555         Remove value refcount leak, original patch from Jorn Baayen
556         <jorn@openedhand.com>.  Also remove useless extra value in favor
557         of prepending to value array directly.
558
559 2005-07-02  Colin Walters  <walters@verbum.org>
560
561         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
562
563 2005-07-01  Colin Walters  <walters@verbum.org>
564
565         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
566         
567         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
568         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
569         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
570         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
571
572 2005-06-30  Colin Walters  <walters@verbum.org>
573
574         * test/glib/test-dbus-glib.c:
575         * test/glib/test-service-glib.c:
576         * test/glib/test-service-glib.xml: Update tests for new error
577         setting bits, also add async tests (patch from Ross Burton).
578
579         * test/glib/Makefile.am (test_service_glib_LDADD): Add
580         DBUS_GLIB_THREADS_LIBS.
581
582         * glib/dbus-gproxy.c (get_name_owner)
583         (dbus_g_pending_call_end_valist): Ditto.
584
585         * glib/dbus-gobject.c (error_metadata): New mapping from GError
586         domain (GQuark) to DBusGErrorInfo.  
587         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
588         quark in error_metadata.  Take message interface as default
589         error message interface.
590         (gerror_to_dbus_error_message): Pass message interface.
591         (dbus_set_g_error): Resurrected.
592         (dbus_g_error_info_free): New function.
593         (dbus_g_object_type_install_info): Use g_type_class_ref instead
594         of _peek to actually create the object class if it hasn't been
595         created yet.
596         (dbus_g_error_domain_register): New function.
597
598         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
599
600         * glib/dbus-gparser.c (validate_signature): Ditto.
601
602         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
603         (dbus_g_error_domain_register): Prototype.
604
605         * glib/dbus-glib.c (dbus_g_error_set): Delete.
606         Update tests.
607
608 2005-06-29  Colin Walters  <walters@verbum.org>
609
610         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
611         DBUS_TYPE_G_OBJECT_PATH.
612
613         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
614         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
615         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
616         (dbus_g_object_path_get_g_type): New function.
617         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
618         to DBUS_TYPE_G_OBJECT_PATH by default.
619         (demarshal_proxy): Remove unused name variable.
620         (demarshal_object_path, marshal_object_path): New functions.
621         (demarshal_proxy_array, marshal_proxy_array): Delete.
622         
623         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
624         DBUS_TYPE_G_OBJECT_PATH to char *.
625         (dbus_g_type_get_lookup_function): Map builtin
626         DBUS_TYPE_G_OBJECT_PATH.
627
628         * test/glib/test-dbus-glib.c
629         * test/glib/test-service-glib.c (my_object_objpath): 
630         Adapt tests to new object path marshalling.
631
632 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
633
634         * configure.in: force check for Python >= 2.4
635
636 2005-06-29  Colin Walters  <walters@verbum.org>
637         
638         Patch from Ross Burton <ross@openedhand.com>
639         
640         * glib/dbus-gobject.c (invoke_object_method): Unset object
641         value in all cases, not only in async case.
642
643 2005-06-29  Colin Walters  <walters@verbum.org>
644
645         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
646         name_call for keeping track of any outgoing GetNameOwner call.
647         Also add for_owner and associated.
648         (struct _DBusGProxyManager): Add owner_names, which is hash table
649         that maps a base name to a list of names it owns (that we're
650         interested in).  Add pending_nameowner_calls which is a list of
651         all outstanding GetNameOwner; avoids us having to iterate over
652         every proxy.  Add unassociated_proxies which keeps track of name
653         proxies with no associated name owner.
654         (dbus_g_proxy_manager_unref): Destroy owner_names.
655         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
656         name refcounts.
657         (find_name_in_info, name_owner_foreach)
658         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
659         (dbus_g_proxy_manager_monitor_name_owner)
660         (dbus_g_proxy_manager_unmonitor_name_owner)
661         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
662         New functions; they manipulate the owner_names mapping.
663         (got_name_owner_cb): New function.
664         (get_name_owner): New function, extracted from
665         dbus_g_proxy_new_for_name_owner.
666         (dbus_g_proxy_manager_register): For now we need to keep track of
667         all NameOwnerChanged.  Also if the proxy is for a name, if we
668         don't already know the name owner, queue a new GetNameOwner
669         request and add it to our list of unassociated proxies.  Otherwise
670         inc the refcount.
671         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
672         cancel any pending GetNameOwner call, etc.
673         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
674         the owner_names mapping to look up the current names for the
675         signal source, and dispatch to any proxies for that name.
676         (dbus_g_proxy_new): Initialize new members.
677         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
678         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
679         (dbus_g_pending_call_end_valist): New function, extracted from
680         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
681         but want to use the GLib infrastructure.  Also note how many
682         arguments in reply were over.
683         (dbus_g_pending_call_end): New function, just call
684         dbus_g_pending_call_end_valist.
685         (dbus_g_proxy_end_call_internal): Just call
686         dbus_g_pending_call_end_valist.
687
688         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
689         of builtin marshaller for STRING_STRING_STRING.
690
691         * test/glib/test-dbus-glib.c: 
692         * test/glib/test-service-glib.c:
693         * test/glib/test-service-glib.xml:
694         Extend tests to cover name proxies, destruction of owner proxies,
695         etc.
696         
697         * glib/examples/example-signal-recipient.c
698         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
699         
700         * tools/dbus-send.c (main): Print D-BUS error name in addition
701         to message.
702
703 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
704
705         * python/dbus_bindings.pyx.in (cunregister_function_handler,
706         cmessage_function_handler): Patch from 
707         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
708         by using the Py_GILState_Ensure/Release to synchronize with the
709         python runtime.
710         
711 2005-06-28  Ray Strode  <rstrode@redhat.com>
712
713         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
714         babysitter helper process on last unref, bug #2813.
715
716 2005-06-27  Colin Walters  <walters@verbum.org>
717
718         * test/glib/test-dbus-glib.c: 
719         * test/glib/test-service-glib.c:
720         * test/glib/test-service-glib.xml:
721         Test hash table signal emitting.
722
723         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
724         types to their fundamental basis types, since this is what
725         marshallers operate on.  Also add an entry for VOID__BOXED.
726         (dbus_g_object_register_marshaller_array): Convert to fundamental.
727
728 2005-06-26  Havoc Pennington  <hp@redhat.com>
729
730         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
731         from Don Park
732
733 2005-06-26  Colin Walters  <walters@verbum.org>
734
735         * glib/dbus-glib.c (dbus_set_g_error): Delete.
736         (dbus_g_error_set): New public function from its ashes; used by
737         both service-side method implementation and GLib bindings
738         internals.
739         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
740         (_dbus_glib_test): Add some tests.
741
742         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
743
744         * test/glib/test-service-glib.c (my_object_throw_error): Use
745         dbus_g_error_set.
746
747         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
748         errors thrown by dbus_g_error_set.
749
750         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
751
752         * glib/dbus-gparser.c (validate_signature): Ditto.
753
754         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
755         (dbus_g_proxy_end_call_internal): Ditto.
756
757         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
758         converts DBUS_ERROR_x to DBUS_GERROR_x.
759         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
760
761         * doc/TODO: Remove error TODO.
762
763         * doc/dbus-tutorial.xml: Update with documentation about error
764         handling.
765
766         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
767         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
768         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
769
770 2005-06-22  Colin Walters  <walters@verbum.org>
771         
772         Patch from Ross Burton <ross@openedhand.com>
773
774         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
775
776 2005-06-20  Colin Walters  <walters@verbum.org>
777
778         * configure.in: Add glib/examples.
779
780         * glib/Makefile.am: Add examples/
781
782         * glib/examples/.cvsignore
783         * glib/examples/Makefile.am
784         * glib/examples/example-client.c
785         * glib/examples/example-service.c
786         * glib/examples/example-service.xml
787         * glib/examples/example-signal-emitter.c
788         * glib/examples/example-signal-emitter.xml
789         * glib/examples/example-signal-recipient.c:
790         New files; GLib binding examples, ported from
791         python/examples.
792
793 2005-06-20  Colin Walters  <walters@verbum.org>
794
795         * dbus/dbus-glib.h: 
796         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
797         dbus_g_proxy_call.
798
799         * glib/dbus-binding-tool-glib.c: 
800         * doc/dbus-tutorial.xml: 
801         * test/glib/test-dbus-glib.c: Update for rename.
802         
803 2005-06-20  Colin Walters  <walters@verbum.org>
804
805         Patch suggested by Ross Burton <ross@openedhand.com>
806
807         * glib/dbus-gobject.c (export_signals): Free signal name.
808         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
809         memory leak.  Add a bit of documentation.
810         (dbus_g_method_return_error): Free context, and note we do
811         so.
812
813 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
814
815         * dbus/dbus-glib.h:
816         * glib/dbus-gobject.c:
817         * glib/dbus-gproxy.c:
818         * glib/dbus-gvalue.c: Predeclare structs as 
819         typedef struct _Something Something instead of 
820         typedef struct Something Something, so we can 
821         redeclare the prototypes. Other GNOME libraries 
822         do this already.
823
824 2005-06-17  Colin Walters  <walters@verbum.org>
825
826         * tools/dbus-names-model.c (have_names_notify): Fix call
827         to dbus_g_proxy_end_call.
828         
829 2005-06-17  Colin Walters  <walters@verbum.org>
830
831         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
832         spew warnings if we get malformed remote signals.
833
834         * glib/dbus-gobject.c (propsig_iterate): New function.
835         (lookup_object_info): New function, extracted from
836         lookup_object_and_method.
837         (introspect_properties, introspect_signals): Delete; these
838         are merged into write_interface.
839         (write_interface): Write out signals and properties here;
840         dump the org.gtk.object stuff and use the interface given
841         in the introspection data blob.  Also fix up property XML.
842         (lookup_values): New function.
843         (introspect_interfaces): Gather a mapping from interface to a
844         list of its methods, signals, and properties, then write out
845         each interface.
846         (lookup_object_and_method): Use lookup_object_info.
847         (struct DBusGSignalClosure): Add interface.
848         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
849         we can just use the constant data.
850         (dbus_g_signal_closure_finalize): Don't free signal name.
851         (signal_emitter_marshaller): Use interface from signal closure.
852         (export_signals): Only export signals mentioned in introspection
853         blob.
854         (dbus_g_connection_register_g_object): Warn if we have no
855         introspection data for an object.
856         (funcsig_equal): Remove unused variable.
857         (dbus_g_object_register_marshaller): Take varargs instead of
858         list.
859         (dbus_g_object_register_marshaller_array): New function,
860         extracted from old dbus_g_object_register_marshaller.
861
862         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
863         signals and property data.
864         (write_quoted_string): New function, extracted from generate_glue.
865         (generate_glue): Write signals and properties to introspection
866         blob.
867
868         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
869         exported_signals and exported_properties.
870         (dbus_g_object_register_marshaller): Update prototype.
871         (dbus_g_object_register_marshaller_array): Prototype.
872         
873         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
874
875         * test/glib/test-service-glib.c: Add new test signals and method
876         to emit them.
877
878         * test/glib/test-service-glib.xml: Add some test signals.
879
880         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
881         and my-object-marshal.h
882         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
883         my-object-marshal.c.
884         (my-object-marshal.c, my-object-marshal.h): Implement.
885
886         * test/glib/.cvsignore: Update.
887
888         * doc/TODO: Remove two GLib TODO items fixed by this
889         patch.
890
891 2005-06-16  Colin Walters  <walters@verbum.org>
892
893         * doc/TODO: Update for GLib bindings.
894         
895 2005-06-16  Colin Walters  <walters@verbum.org>
896
897         * glib/dbus-binding-tool-glib.c:
898         * glib/dbus-gobject.c:
899         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
900         from Ross Burton, for his GLib bindings work.
901
902 2005-06-16  Colin Walters  <walters@verbum.org>
903
904         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
905         to iterate instead of walking to G_TYPE_INVALID.
906
907         Patch based on a patch from Ryan Gammon.
908
909 2005-06-16  Colin Walters  <walters@verbum.org>
910
911         * bus/bus.c (bus_context_new): Set parser to NULL
912         after we unref it (Patch from Chris Boscolo, #2174).
913         
914 2005-06-16  Colin Walters  <walters@verbum.org>
915
916         * python/dbus_bindings.pyx.in: Import size_t,
917         __int64_t, __uint64_t, and __signed.
918
919         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
920         Define cmsg struct, output it.
921         (_dbus_read_credentials_unix_socket):
922         Use cmsg struct.
923         
924         Patch from Joe Markus Clarke for FreeBSD support.
925         
926 2005-06-16  Colin Walters  <walters@verbum.org>
927
928         * tools/dbus-send.c (append_array): Use strtok.
929         (append_dict): New function.
930         (type_from_name): New function, extracted from main.
931         (main): Handle sending dicts.
932
933         * tools/dbus-print-message.c (print_iter): Print dict
934         entries.
935         
936 2005-06-16  Colin Walters  <walters@verbum.org>
937
938         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
939         values as the empty string (#2948).
940         
941 2005-06-16  Colin Walters  <walters@verbum.org>
942
943         * dbus/Makefile.am:
944         * mono/doc/Makefile.am:
945         * test/glib/Makefile.am:
946
947         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
948
949 2005-06-16  Colin Walters  <walters@verbum.org>
950
951         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
952         header byte order from expected byte order (Patch from Chris Wilson, #3475).
953
954         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
955         Increment pointer after swapping fixed array.  Add assertion
956         for array length.
957                 
958 2005-06-15  Colin Walters  <walters@verbum.org>
959
960         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
961         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
962         
963 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
964
965         * NEWS: Update to 0.34
966
967 2005-06-15  David Zeuthen  <davidz@redhat.com>
968
969         * configure.in (LT_CURRENT): Revert back to 1 as the library
970         hasn't changed and we've certainly not committed to protocol
971         stability yet.  All this does is to break ABI. See commit note
972         from hp@redhat.com 2005-05-05 for details.
973         
974 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
975
976         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
977         (_dbus_connection_run_builtin_filters): New method
978         (dbus_connection_dispatch): Run the builtin filters which in turn
979         runs the peer filter which handles Ping messages.
980
981         * doc/TODO: 
982          - Ping isn't handled: This patch fixes it
983          
984          - Add a test case for the Ping message: added TODO item
985
986 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
987
988         * dbus/dbus-message.c:
989         (dbus_message_has_path): New method
990         (dbus_message_has_interface): New method
991         (dbus_message_has_member): New method
992
993         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
994         New method
995
996         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
997         the keyring directory is private to the user
998
999         * doc/TODO:
1000          - The convenience functions in dbus-bus.h should perhaps have
1001          the signatures that they would have if they were autogenerated
1002          stubs. e.g. the acquire service function. We should also evaluate
1003          which of these functions to include, in light of the fact that
1004          GLib/Qt native stubs will probably also exist.: Punted
1005
1006          - add dbus_message_has_path(), maybe has_member/interface:
1007          fixed in this patch
1008
1009          - in dbus-keyring.c, enforce that the keyring dir is not
1010          world readable/writable: Fixed in this patch
1011
1012 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1013
1014         * dbus/dbus-marshal-validate.h: Added a new validation
1015         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
1016         out of memory errors when validating signitures
1017
1018         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
1019         in places where we previously used DBUS_VALID and a FALSE return 
1020         value to indicate OOM
1021         
1022         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
1023         Use a stack to track the number of elements inside containers.  The 
1024         stack values are then used to validate that dict entries have only two
1025         elements within them.
1026         (validate_body_helper): check the reason for failure when validating
1027         varients
1028         
1029         * dbus/dbus-message.c (load_message): use 
1030         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
1031         DBUS_VALID and a FALSE return value to indicate OOM
1032
1033         * doc/TODO: remove "- validate dict entry number of fields" as this
1034         patch fixes it
1035
1036 2005-06-14  David Zeuthen  <davidz@redhat.com>
1037
1038         * bus/bus.c (process_config_every_time): Drop existing conf-dir
1039         watches (if applicable) and add new watches
1040
1041         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
1042         (main): Setup SIGIO signal handler if using D_NOTIFY
1043
1044         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
1045
1046         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
1047         (merge_included): Also merge conf_dirs list
1048         (bus_config_parser_unref): Clear conf_dirs list
1049         (include_dir): Add directory to conf_dirs list
1050         (bus_config_parser_get_conf_dirs): New function
1051
1052         * bus/dir-watch.[ch]: New files
1053
1054         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
1055
1056         * configure.in: Add checks for D_NOTIFY on Linux
1057
1058 2005-06-14  Colin Walters  <walters@verbum.org>
1059
1060         * glib/dbus-binding-tool-glib.c:
1061         * glib/dbus-gobject.c:
1062         * glib/dbus-gvalue.c: Fix indentation and brace style.
1063         
1064 2005-06-14  Ross Burton <ross@openedhand.com>.
1065
1066         * glib/dbus-glib.h: Make DBusGMethodInvocation
1067         a private structure.  Rearrange prototypes a bit.
1068         
1069         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
1070         documentation for first_arg_type.
1071         
1072         * glib/dbus-gobject.c: Move DBusGMethodInvocation
1073         here, add documentation.  Move dbus_g_method_return
1074         and dbus_g_method_return_error into public API
1075         section.
1076
1077 2005-06-14  Colin Walters  <walters@verbum.org>
1078
1079         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
1080         Add missing return statements, noticed by Ross Burton.
1081         
1082 2005-06-13  Ross Burton <ross@openedhand.com>.
1083
1084         * glib/dbus-gobject.c: Handle errors on message
1085         demarshalling by sending error message back.
1086         * glib/dbus-gvalue.c: Initialize return variables.
1087
1088 2005-06-13  Colin Walters  <walters@verbum.org>
1089
1090         * glib/Makefile.am: Fix thinko in last patch.
1091
1092 2005-06-13  Colin Walters  <walters@verbum.org>
1093
1094         * glib/Makefile.am: Move dbus-gtype-specialized.c
1095         and dbus-gtype-specialized.h into a _HEADERS variable,
1096         install them.
1097
1098 2005-06-12  Colin Walters  <walters@verbum.org>
1099
1100         Async signals and various bugfixes and testing by
1101         Ross Burton <ross@openedhand.com>.
1102
1103         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
1104         (dbus_gvalue_genmarshal_name_from_type)
1105         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
1106         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
1107         (dbus_g_value_types_init, dbus_gtype_from_signature)
1108         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
1109         (dbus_gtypes_from_arg_signature): New function prototypes.
1110         (dbus_gvalue_demarshal): Take context and error arguments.
1111         (dbus_gvalue_demarshal_variant): New function.
1112         (dbus_gvalue_demarshal_message): New function.
1113         (dbus_gvalue_store): Delete.
1114
1115         * glib/dbus-gvalue.c:
1116
1117         File has been almost entirely rewritten; now we special-case
1118         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
1119         hash tables correctly, etc.  Full support for recursive values
1120         is not yet complete.
1121
1122         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
1123         argument of signal to G_TYPE_POINTER since we now pass a
1124         structure.
1125         (lookup_g_marshaller): Delete in favor of
1126         _dbus_gobject_lookup_marshaller.
1127         (marshal_dbus_message_to_g_marshaller): Use
1128         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
1129         to handle remote signal callbacks.
1130         (dbus_g_proxy_new_from_proxy): New function; creates a new
1131         DBusGProxy by copying an existing one.
1132         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
1133         (dbus_g_proxy_get_path): New functions.
1134         (dbus_g_proxy_marshal_args_to_message): New function;
1135         factored out of existing code.
1136         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
1137         from a varargs array.
1138         (dbus_g_proxy_begin_call_internal): New function.
1139         (dbus_g_proxy_end_call_internal): New function.
1140         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
1141         as arguments; simply invoke dbus_g_proxy_begin_call_internal
1142         after collecting args into value array.
1143         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
1144         invoke dbus_g_proxy_end_call_internal.
1145         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
1146         end_call_internal.
1147         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
1148         types.
1149         (array_free_all): New function.
1150         (dbus_g_proxy_add_signal): Take GTypes.
1151
1152         * glib/dbus-gobject.h:
1153         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1154         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
1155         Prototype.
1156
1157         * glib/dbus-gobject.c: Add a global marshal_table hash which
1158         stores mappings from type signatures to marshallers.  Change lots
1159         of invocations of dbus_gtype_to_dbus_type to
1160         dbus_gtype_to_signature.
1161         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1162         (introspect_signals): Fix test for query.return_type.
1163         (set_object_property): Update invocation of dbus_gvalue_demarshal.
1164         (invoke_object_method): Many changes.  Handle asynchronous
1165         invocations.  Convert arguments with
1166         dbus_gvalue_demarshal_message.  Handle errors.  Use
1167         DBusSignatureIter instead of strlen on args. Handle all arguments
1168         generically.  Special-case variants.
1169         (dbus_g_method_return, dbus_g_method_return_error): New function.
1170         (DBusGSignalClosure): New structure, closes over signal
1171         information.
1172         (dbus_g_signal_closure_new): New function.
1173         (dbus_g_signal_closure_finalize): New function.
1174         (signal_emitter_marshaller): New function; is special marshaller
1175         which emits signals on bus.
1176         (export_signals): New function; introspects object signals and
1177         connects to them.
1178         (dbus_g_object_type_install_info): Take GType instead of
1179         GObjectClass.
1180         (dbus_g_connection_register_g_object): Invoke export_signals.
1181         (dbus_g_connection_lookup_g_object): New function.
1182         (DBusGFuncSignature) New structure; used for mapping type
1183         signatures to marshallers.
1184         (funcsig_hash): New function; hashes DBusGFuncSignature.
1185         (funcsig_equal): New function; compares DBusGFuncSignature.
1186         (_dbus_gobject_lookup_marshaller): New function.
1187         (dbus_g_object_register_marshaller): New function; used to
1188         register a marshaller at runtime for a particular signature.
1189
1190         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
1191
1192         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
1193         which notes a server method implementation should be
1194         asynchronous.
1195
1196         * glib/dbus-binding-tool-glib.c
1197         (dbus_binding_tool_output_glib_server): Call
1198         dbus_g_value_types_init.
1199         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
1200         variants specially.
1201         (dbus_g_type_get_lookup_function): Turn GType into an invocation
1202         of a lookup function.
1203         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
1204         (write_untyped_out_args): New method; write output arguments.
1205         (write_formal_declarations_for_direction): Function for
1206         writing prototypes.
1207         (write_formal_parameters_for_direction): Function for
1208         writing implementations.
1209         (write_typed_args_for_direction): Function for writing
1210         arguments prefixed with GTypes.
1211         (write_async_method_client): Write out async version
1212         of method.
1213
1214         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
1215         (dbus_g_type_get_marshal_name): Move mapping from GType
1216         to marshal name into here.
1217         (dbus_g_type_get_c_name): Move into here.
1218         (compute_marshaller): Convert signature to type with
1219         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
1220         (compute_marshaller_name): Ditto.
1221         (compute_marshaller): Handle async signal annotations.
1222         (gather_marshallers): Return if we don't have a known
1223         prefix.
1224         (generate_glue): Collect introspection blob here, and
1225         write all of the blob at the end.  This allows an object
1226         with multiple interfaces to work.
1227         Mark async methods in introspection blob.
1228
1229         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
1230         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
1231         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
1232
1233         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
1234         avoids people accidentally using DBUS_TYPE_* which should
1235         not be necessary anymore.
1236         Do include dbus-gtype-specialized.h, which are utilities
1237         for GLib container types.
1238         Add various #defines for types such as
1239         DBUS_TYPE_G_BOOLEAN_ARRAY.
1240         (DBusGValueIterator, DBusGValue): Define, not fully used
1241         yet.
1242         (dbus_g_value_get_g_type): Type for recursive value.
1243         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1244         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1245         (dbus_g_value_free): Prototypes.
1246         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
1247         (dbus_g_proxy_set_interface): Prototype.
1248         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
1249         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
1250         types.
1251         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
1252         Accessors.
1253         (DBusGAsyncData, DBusGMethodInvocation): Structures for
1254         doing async invocations.
1255         (dbus_g_method_return, dbus_g_method_return_error):
1256         Prototypes.
1257         * doc/dbus-tutorial.xml: Update GLib section.
1258         
1259         * tools/dbus-viewer.c (load_child_nodes): Update
1260         for new invocation type of dbus_g_proxy_end_call.
1261         (load_from_service_thread_func): Ditto.
1262
1263         * tools/print-introspect.c (main): Ditto.
1264
1265         * tools/dbus-names-model.c (have_names_notify)
1266         (names_model_reload, names_model_set_connection)
1267         Use GTypes.
1268
1269         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
1270         needed since Python bindings use GLib bindings.
1271
1272         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
1273         Add --prefix argument.
1274
1275         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
1276         unneeded --ignore-unsupported arg.
1277         
1278         * test/glib/test-service-glib.c: 
1279         * test/glib/test-service-glib.xml:
1280         * test/glib/test-dbus-glib.c: Add many more tests.
1281
1282 2005-06-06  David Zeuthen  <davidz@redhat.com>
1283
1284         * doc/TODO: Add item about need to remove deprecated functions.
1285
1286         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
1287
1288         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
1289         to repair the ABI which was broken with the last commit.
1290
1291 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
1292
1293         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
1294         (dbus_connection_disconnect): renamed to dbus_connection_close 
1295         for API symmetry with dbus_connection_open
1296         (_dbus_connection_open_internal): 
1297         s/dbus_connection_disconnect/dbus_connection_close
1298
1299         * dbus/dbus-bus.c (dbus_bus_get):
1300         s/dbus_connection_disconnect/dbus_connection_close
1301
1302         * bus/connection.c (bus_connections_unref, 
1303         bus_connections_setup_connection, bus_connections_expire_incomplete):
1304         s/dbus_connection_disconnect/dbus_connection_close
1305
1306         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
1307         kill_client_connection_unchecked, check_hello_connection):
1308         s/dbus_connection_disconnect/dbus_connection_close
1309
1310         * bus/bus.c (new_connection_callback):
1311         s/dbus_connection_disconnect/dbus_connection_close
1312
1313         * tools/dbus-send.c (main):
1314         s/dbus_connection_disconnect/dbus_connection_close
1315
1316         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
1317         s/dbus_connection_disconnect/dbus_connection_close
1318         
1319         * test/test-service.c (path_message_func, filter_func):
1320         s/dbus_connection_disconnect/dbus_connection_close
1321         
1322         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
1323         
1324 2005-05-25  Colin Walters  <walters@verbum.org>
1325
1326         * dbus/dbus-protocol.h: Move various bus service #defines such
1327           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
1328           dbus/dbus-shared.h.
1329         * dbus/dbus-shared.h: Various defines moved here.
1330         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
1331
1332 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
1333
1334         * python/__init__.py: Python bindings deserve a minor version
1335         update.  Upped to (0, 40, 2)
1336
1337 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
1338
1339         * python/decorators.py: add explicitly_pass_message decorator
1340         for passing in the dbus message as keyword for edge case signal
1341         handling
1342
1343         * python/matchrules.py (SignalMatchRule.__repr__): fix output
1344         to conform with what dbus expects for match rules
1345         (SignalMatchRule.execute): add the dbus message as a keyword
1346         if the signal handler has requested it
1347
1348         * python/examples/example/signal-recipient.py: added some more
1349         examples on how to hook up to signals
1350
1351 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
1352
1353         * python/decorators.py: import dbus_bindings
1354
1355         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
1356         SignalMatchNode): new classes that implement wildcard signal
1357         callback matching using a tree lookup. Heavily modified from a
1358         patch sent by Celso Pinto (fd.o bug #3241)
1359
1360         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
1361         use new match classes to handle signals.
1362
1363 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
1364         
1365         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
1366
1367 2005-05-18  Havoc Pennington  <hp@redhat.com>
1368
1369         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
1370         gettext. Not really worth requiring yet perhaps, but any
1371         production quality 1.0 would require it so we should go ahead and
1372         get things set up. We do have a couple token calls to
1373         bindtextdomain in the code already.
1374
1375 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
1376
1377         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
1378         when using recursive g_main_loops
1379
1380         * python/_dbus.py (class Bus): add the ProxyObjectClass
1381         alias for ProxyObject to make it easier for the Twisted 
1382         networking framework to integrate dbus.
1383
1384         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
1385         alias for ProxyMethod to make it easier for the Twisted 
1386         networking framework to integrate dbus. 
1387
1388 2005-05-11  Ross Burton  <ross@openedhand.com>
1389
1390         * glib/dbus-glib-tool.c: Add --prefix argument.
1391         * glib/dbus-binding-tool-glib.h: Add prefix argument.
1392         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
1393         Add prefix argument.
1394         (generate_glue): Pass prefix argument down.
1395         (dbus_binding_tool_output_glib_server): Pass prefix to
1396         glib-genmarshal.
1397         
1398 2005-05-11  Colin Walters  <walters@verbum.org>
1399
1400         * tools/dbus-send.c (append_array): New function.
1401         (append_arg): Broken out from main.
1402         (main): Add cheesy hack to send arrays and variants.
1403         (usage): Update.
1404         * tools/dbus-print-message.c (print_iter): Broken out
1405         from main.
1406
1407 2005-05-11  Colin Walters  <walters@verbum.org>
1408
1409         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
1410         New function, returns signature string for signature iter.
1411         * dbus/dbus-signature.h: Prototype it.
1412         * dbus/dbus-message.c (dbus_message_iter_get_signature):
1413         New function, returns signature string for message iter.
1414         (dbus_message_iter_get_array_len): New function, returns
1415         length of array.
1416         (dbus_message_iter_get_fixed_array): Fix assertion; this
1417         function should be used when the iter is pointing to the
1418         contents of an array
1419         * dbus/dbus-message.h: Prototypes.
1420         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
1421         New function; returns length of an array.
1422         * dbus/dbus-marshal-recursive.h: Prototype it.
1423         
1424 2005-05-11  Colin Walters  <walters@verbum.org>
1425
1426         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
1427         compilation error.
1428         
1429 2005-05-08  Havoc Pennington  <hp@redhat.com>
1430
1431         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
1432         daemon's pid, not the parent's pid, to the file descriptor.
1433         Reported by Taj Morton.
1434
1435 2005-05-05  Havoc Pennington  <hp@redhat.com>
1436
1437         * configure.in (LT_*): add notes on how the libtool versioning
1438         works to save thinking. Increment soname to indicate protocol
1439         breakage (though really the library interface hasn't changed I
1440         guess)
1441
1442         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1443         verify the GUID received from server matches what we were
1444         expecting, if we had an expectation
1445
1446         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
1447         (_dbus_auth_get_guid_from_server): new function
1448         (send_begin): parse the OK args
1449
1450         * doc/dbus-specification.xml: add GUID to the auth protocol
1451
1452 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
1453
1454         * Fix my name in previous changelog ;)
1455
1456         * python/proxies.py (ProxyObject.__getattr__): add further patch
1457         from Anthony Baxter to throw an AttributeError when python 
1458         __special__ functions are called instead of marshling them over 
1459         the bus (Bug#1685 comment 3).
1460
1461 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
1462
1463         * python/Makefile.am: changed to use pyexecdir for the binding
1464         shared libraries (Bug#2494)
1465
1466         * python/exceptions.py: bring exceptions over from the bindings
1467         so they can be used in applications (Bug#2036)
1468         Make all exceptions derive from DBusException
1469
1470         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
1471         of classes so that print obj doesn't throw an exception (Bug #1685)
1472
1473 2005-05-03  Ross Burton  <ross@openedhand.com>
1474
1475         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
1476         Return if we get an error during registration.  Set up a
1477         weak reference on object to unregister if object is destroyed.
1478         (unregister_gobject): New function.
1479         
1480 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
1481
1482         * python/dbus_bindings.pyx.in: 
1483         - added new type classes for hinting to the marashaler what type 
1484         to send over the wire
1485         - added int16 and uint16 marshalers
1486         - Fixed a bug in the type constants that caused int32 to go out
1487         as uint16 over the wire
1488         * python/dbus.py: split up into different files and renamed _dbus.py
1489         * python/__init__.py, python/_util.py, python/decorators.py, 
1490         python/exceptions.py, python/proxies.py, python/services.py,
1491         python/types.py: new files split off from dbus.py
1492         * python/Makefile.am: Add new files, remove dbus.py and 
1493         install all python files to <python module dir>/dbus
1494         * python/examples/*: Added #!/usr/bin/env python to the top of
1495         every example.  Patch provided by Tatavarty Kalyan
1496
1497 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
1498
1499         * NEWS: Update to 0.33
1500
1501 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
1502
1503         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
1504         method for doing async calls
1505         (_pending_call_notification): New C function for handling pendning call
1506         callbacks
1507         (set_notify): New method for setting pending call notification
1508         
1509         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
1510         Async capabilities added to remote method calls
1511         (Sender): class removed
1512         (RemoteService): class removed
1513         (ObjectTree): class removed for now
1514         (RemoteObject): Renamed to ProxyObject
1515         (RemoteMethod): Renamed to ProxyMethod
1516         (method): Decorator added for decorating python methods as dbus methods
1517         (signal): Decorator added for decorating python methods as signal emitters
1518         (ObjectType): Metaclass added for generating introspection data and the
1519         method callback vtable
1520         (Interface): Wrapper class added to wrap objects in a dbus interface
1521         (Object): Uses ObjectType as its metaclass and exports Introspect
1522         of the org.freedesktop.DBus.Introspectable interface
1523         (ValidationException, UnknownMethodException): new exceptions
1524
1525         * python/examples/*: Modified to fit with the new bindings
1526
1527 2005-04-23  Havoc Pennington  <hp@redhat.com>
1528
1529         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
1530         reported by Tony Houghton
1531
1532         * test/test-service.c (main): test
1533         dbus_connection_get_object_path_data()
1534
1535         * dbus/dbus-object-tree.c (find_handler): be sure we always init
1536         the exact_match
1537         (_dbus_object_tree_get_user_data_unlocked): new function used by
1538         dbus_connection_get_object_path_data()
1539         (do_register): add assertion test for get_user_data_unlocked
1540         (object_tree_test_iteration): more tests
1541
1542         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
1543         new function from Dan Reed to let you get the user data from 
1544         dbus_connection_register_object_path()
1545
1546 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
1547
1548         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
1549         in numerous places that did not account for the NULL terminator
1550         (signature_from_seed): changed the manual string copy loop to 
1551         just use strcpy instead
1552         make check should now pass
1553
1554 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
1555
1556         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
1557         so that it allows messages that are not signals to pass in 
1558         NULL as the interface.
1559
1560 2005-04-18  David Zeuthen  <davidz@redhat.com>
1561
1562         * glib/dbus-gmain.c (io_handler_destroy_source): 
1563         (timeout_handler_destroy_source, connection_setup_free): 
1564         Also unref the source to avoid memory leaks.
1565
1566 2005-04-13  David Zeuthen  <davidz@redhat.com>
1567
1568         * bus/config-parser.c (bus_config_parser_new): Bump this to a
1569         more reasonable, yet still totally arbitrary, value :-). 
1570
1571 2005-04-13  David Zeuthen  <davidz@redhat.com>
1572
1573         * doc/TODO: Added an "important for 1.0" item about selinux
1574         allow/deny messages
1575
1576 2005-04-13  David Zeuthen  <davidz@redhat.com>
1577
1578         * bus/selinux.c: Add c-file-style to top of file
1579         (log_audit_callback): Don't free the data here anymore
1580         (bus_selinux_check): Don't take spid and tpid since appending
1581         that to auxdata may OOM.
1582         (bus_selinux_allows_acquire_service): Handle OOM and signal back
1583         to the caller if we are OOM by taking an error object.
1584         (bus_selinux_allows_send): -do-
1585
1586         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
1587         and bus_selinux_allows_send
1588
1589         * bus/bus.c (bus_context_check_security_policy): Pass error and
1590         pass on OOM thrown by bus_selinux_allows_send()
1591
1592         * bus/services.c (bus_registry_acquire_service): Pass error and
1593         pass on OOM thrown by bus_selinux_allows_acquire_service()
1594
1595 2005-04-13  Havoc Pennington  <hp@redhat.com>
1596
1597         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
1598         message at a time to avoid monopolizing the main loop, bug 
1599         #2953 from Benjamin Otte
1600
1601 2005-04-09  Havoc Pennington  <hp@redhat.com>
1602
1603         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
1604         possible overlap, fix from Daniel Reed
1605         (fixup_alignment): fix signedness warnings
1606         (_dbus_string_append_unichar): ditto
1607
1608 2005-04-09  Havoc Pennington  <hp@redhat.com>
1609
1610         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
1611
1612         * glib/dbus-glib-tool.c (main): fix warning
1613
1614         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
1615
1616         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
1617         add a new function that can be used in simple applications that
1618         don't have a main loop and are willing to block
1619
1620 2005-04-05  David Zeuthen  <davidz@redhat.com>
1621
1622         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
1623
1624         * glib/dbus-gmain.c:
1625         (io_handler_destroy_source): Remove from list of IO handlers
1626         of the ConnectionSetup object
1627         (timeout_handler_destroy_source): -do- for timeout handlers
1628         (io_handler_source_finalized): Don't remove from list since
1629         we now do that in io_handler_destroy_source(). Renamed from
1630         io_handler_source_destroyed
1631         (timeout_handler_source_destroyed): -do- for timeout handlers
1632         (connection_setup_free): It is now safe to iterate over all
1633         IO and timeout handlers as the _destroy_source removes them
1634         from the list synchronously
1635
1636 2005-03-30  Havoc Pennington  <hp@redhat.com>
1637
1638         * configure.in: change check to gtk 2.4
1639
1640         * tools/dbus-viewer.c (name_combo_changed_callback): remove
1641         gtk_combo_box_get_active_text() usage to decrement GTK requirement
1642         to 2.4
1643
1644 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
1645
1646         * News: Update 0.32
1647
1648         * HACKING: Fixed realease instructions.  configure.in should be updated to
1649           the next release by the person who made the last release.
1650
1651 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
1652
1653         * python/lvalue_cast_post_process.py - removed.  Patch has been
1654           submitted to Pyrex maintainers that fixes gcc4.0 errors
1655
1656         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
1657
1658 2005-03-24  Daniel Reed  <n@ml.org>
1659
1660         * tools/Makefile.am: Make print-introspect and
1661         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
1662
1663 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
1664
1665         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
1666
1667         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
1668           had in Red Hat packages for a while but for some reason never 
1669           got merged upstream
1670           (_dbus_is_a_number): New checks if a string
1671           can be converted to a number and does the conversion if it can
1672           (_dbus_user_database_lookup): Add check to see if the given username
1673           is a udi.  This allows udi's to be used instead of usernames in the
1674           config file.
1675           (_dbus_user_database_lookup_group): Add check to see if the given groupname
1676           is a gdi.  This allows gdi's to be used instead of groupnames in the
1677           config file.
1678
1679 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
1680
1681         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
1682           code so that it compiles with gcc4.0
1683
1684         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
1685           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
1686           results back to dbus_binding.c
1687
1688 2005-03-20  Colin Walters  <walters@verbum.org>
1689
1690         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
1691
1692         * configure.in: Require GTK+ 2.6.
1693         
1694 2005-03-20  Colin Walters  <walters@verbum.org>
1695
1696         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
1697
1698 2005-03-17  Tom Parker  <palfrey@tevp.net>
1699
1700         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
1701         print DBUS_UID_UNSET; instead print passed username.  Also
1702         be sure to actually use gid looked up in cache.
1703         
1704         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
1705         for DBUS_GID_UNSET and groupname.
1706
1707 2005-03-17  Colin Walters  <walters@verbum.org>
1708
1709         * bus/print-introspect.c: Move to tools/.
1710         * bus/run-with-tmp-session-bus.sh: Ditto.
1711         
1712         * glib/Makefile.am (dbus-glib-bindings.h): Move
1713         generation to tools/Makefile.am.
1714
1715         * test/glib/run-test.sh: Update to handle move
1716         of run-with-tmp-session-bus.sh.
1717
1718         * test/glib/test-service-glib.c: Update to handle
1719         move of dbus-glib-bindings.h.
1720
1721         * tools/print-introspect.c: Moved here
1722         from bus/, and ported to GLib bindings.
1723
1724         * tools/run-with-tmp-session-bus.sh: Moved here
1725         from bus/.
1726
1727         * tools/Makefile.am: Generate dbus-glib-bindings.h
1728         and dbus-bus-introspect.xml here.
1729
1730         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
1731         Update.
1732
1733 2005-03-17  Colin Walters  <walters@verbum.org>
1734
1735         * bus/driver.c (write_args_for_direction): Use
1736         _dbus_string_get_const_data to retrieve string;
1737         _dbus_string_get_const_data_len doesn't actually return
1738         a NULL-terminated substring.
1739
1740         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
1741         (main): Change to use org_freedesktop_DBus_request_name
1742         instead of using g_proxy_begin_call/end_call.
1743
1744 2005-03-15  Joe Shaw  <joeshaw@novell.com>
1745
1746         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
1747         generating the finalizer.  Fixes from Ben Maurer.
1748
1749 2005-03-12  Joe Shaw  <joeshaw@novell.com>
1750
1751         * mono/BusDriver.cs: Update method names: ListServices
1752         becomes ListNames; GetOwner becomes GetNameOwner.
1753
1754         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
1755         onto the eval stack when removing the delegate.
1756
1757 2005-03-12  Joe Shaw  <joeshaw@novell.com>
1758
1759         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
1760         LT_CURRENT.  Set it to the autoconf variable.
1761                                                                                 
1762         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
1763         classes that disconnects the signal handler delegate from the
1764         service object.  Fixes a big leak of proxy objects on the
1765         client side of things.  Patch from Ben Maurer
1766         <bmaurer@ximian.com>
1767
1768 2005-03-12  Colin Walters  <walters@verbum.org>
1769
1770         * bus/driver.c (write_args_for_direction): New function,
1771         parses a type signature into arguments and outputs to
1772         XML.
1773         (bus_driver_handle_introspect): Use it instead of
1774         hardcoding XML for certain signatures.
1775         
1776         * bus/Makefile.am (dbus-bus-introspect.xml): Add
1777         dependency on dbus-daemon.
1778
1779         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
1780         argument, pass it to dbus_binding_tool_output_glib_client.
1781
1782         * glib/dbus-binding-tool-glib.c
1783         (generate_client_glue): Protect against multiple inclusion.
1784         (dbus_binding_tool_output_glib_client): Add
1785         G_BEGIN_DECLS/G_END_DECLS.
1786
1787         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
1788         Change to just take iface prefix directly.
1789         (write_formal_parameters): Clarify error message.
1790         (check_supported_parameters): New function; checks to see type
1791         signatures of method parameters are supported.
1792         (generate_client_glue): Handle ignore_unsupported flag.
1793         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
1794         parameter.
1795
1796         * glib/Makefile.am (dbus-glib-bindings.h): Pass
1797         --ignore-unsupported by default until glib bindings
1798         support arrays.
1799
1800 2005-03-11  Colin Walters  <walters@verbum.org>
1801
1802         * glib/Makefile.am: Generate dbus-glib-bindings.h and
1803         install it.
1804
1805         * bus/print-introspect.c: New file; prints introspection
1806         data for a given name and object path.
1807
1808         * bus/run-with-tmp-session-bus.sh: New file, refactored
1809         from test/glib/run-test.sh.  Creates a temporary session
1810         bus and runs another program.
1811
1812         * test/glib/run-test.sh: Refactor to invoke
1813         run-with-tmp-session-bus.sh.
1814
1815         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
1816         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
1817         macros instead of hardcoding.
1818
1819         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
1820
1821 2005-03-11  Joe Shaw  <joeshaw@novell.com>
1822
1823         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
1824         this unref; it doesn't match up evenly in some codepaths.
1825         (_dbus_connection_block_pending_call): Unref at every exitpoint;
1826         this evenly matches with the ref near the top of this function.
1827
1828 2005-03-09  Joe Shaw  <joeshaw@novell.com>
1829
1830         * dbus/dbus-object-tree.c
1831         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
1832         and we try to unregister a path that's not registered, still go
1833         through the process of unlocking and don't just return.
1834
1835 2005-03-09  Colin Walters  <walters@verbum.org>
1836
1837         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
1838         to this are generated for client-side wrappers.  Invokes a
1839         D-BUS method and returns reply values.  
1840
1841         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
1842         function; writes signature string for argument direction.
1843         (write_args_for_direction): Change to pass input values directly
1844         instead of via address, and fix indentation.
1845         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
1846         make generated wrappers inlineable.
1847
1848         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
1849         note about using dbus_type_is_fixed.
1850
1851         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
1852         dbus/dbus-signature.c as dbus_type_is_fixed.
1853
1854         All callers updated.
1855
1856         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
1857         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
1858
1859         * dbus/dbus-signature.h: Prototype.
1860
1861         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
1862         error printf code.
1863
1864         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
1865         appropriate instead of just freeing it.
1866         (main): Free returned strings using g_free.
1867
1868         * test/glib/Makefile.am (test-service-glib-glue.h)
1869         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
1870
1871         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
1872         simply maps a simple D-BUS type to GType.
1873         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
1874         GType.
1875         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
1876         initialize the value with it.
1877         (dbus_gvalue_binding_type_from_type): Unused, delete.
1878         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
1879         various types instead of unmarshalling to value data directly.
1880         Remove can_convert boolean.
1881         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
1882         returning directly instead of using can_convert boolean.
1883         (dbus_gvalue_store): New function; not related to D-BUS per-se.
1884         Stores a GValue in a pointer to a value of its corresponding C
1885         type.
1886
1887         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
1888         add dbus_gvalue_store.
1889
1890 2005-03-08  Joe Shaw  <joeshaw@novell.com>
1891
1892         Fix a bunch of lifecycle and memory management problems
1893         in the mono bindings.
1894
1895         * mono/Arguments.cs (Arguments): Implement IDisposable
1896
1897         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
1898         strictly a static class.
1899
1900         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
1901         delegates into this file.
1902         (Connection): Implement IDisposable.
1903         (Dispose): Disconnect the connection and set the raw connection
1904         pointer to IntPtr.Zero.
1905         (~Connection): Call Dispose().
1906         (RegisterObjectPath): Added.  Manages the registration of object
1907         paths so we can cleanly disconnect them at dispose/finalize time.
1908         (UnregisterObjectPath): Ditto.
1909         (set_RawConnection): Unregister all of the object paths when
1910         changing the underlying DBusConnection.  Add them back onto the
1911         new connection, if any.
1912
1913         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
1914         more unmanaged resources anymore, so it's not necessary.  Move all
1915         the DBusObjectPathVTable stuff out of here.
1916         (Handler): Save references to our delegates so that they don't get
1917         finalized.  Call Connection.RegisterObjectPath() instead of
1918         dbus_connection_register_object_path() directly.
1919         (Message_Called): Dispose the message after we're finished with
1920         it.
1921
1922         * mono/Message.cs (Message): Implement IDisposable.
1923         (Dispose): Dispose the Arguments, and set the RawMessage to
1924         IntPtr.Zero.
1925         (SendWithReplyAndBlock): We own the ref to the reply that comes
1926         back from dbus_connection_send_with_reply_and_block() so add a
1927         comment about that and unref it after we've constructed a managed
1928         MethodReturn class around it.  Fixes a big, big leak.
1929
1930         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
1931         method.
1932         (BuildSignalHandler): After we've sent the Signal message, dispose
1933         of it.
1934         (BuildMethod): Dispose of the method call and reply messages after
1935         we've sent the message and extracted the data we want from the
1936         reply.
1937
1938         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
1939         anymore.
1940         (Service_FilterCalled): Dispose of the message after we're
1941         finished with it.
1942
1943 2005-03-08  Joe Shaw  <joeshaw@novell.com>
1944
1945         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
1946         After we attach our pending call to the connection, unref
1947         it.  Fixes a leak.
1948  
1949         * mono/Connection.cs (set_RawConnection): Disconnect our
1950         filter and match callbacks from the old connection and
1951         reconnect them to the new connection, if any.
1952
1953         * mono/DBusType/Array.cs: "Code" is a static member, so
1954         don't use "this" to refer to it.  Fix for stricter checking
1955         in Mono 1.1.4.
1956  
1957         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
1958         object path that we pass into unmanaged code.
1959  
1960         * mono/DBusType/String.cs (Append): Don't leak the string
1961         that we pass into unmanged code.
1962
1963 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
1964         * NEWS: Update for 0.31
1965
1966         * configure.in: Release 0.31
1967         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
1968
1969         * qt/Makefile.am: fixed build
1970
1971         * dbus/Makefile.am: soname bump for libdbus
1972
1973         * glib/Makefile.am: soname bump for libdbus-glib
1974
1975 2005-03-05  Havoc Pennington  <hp@redhat.com>
1976
1977         * dbus/dbus-sysdeps.c:
1978         (pseudorandom_generate_random_bytes_buffer): fix to have no return
1979         value
1980         (_dbus_generate_random_bytes_buffer): fix return value
1981
1982         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
1983         checks actually work, from Tom Parker <fdo@tevp.net>
1984
1985 2005-03-01  Colin Walters  <walters@verbum.org>
1986
1987         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
1988         functions copied from dbus-glib-tool.c.
1989         (main): Convert lots of error code to use them.
1990         Also add some testing for introspection bits.
1991
1992 2005-03-01  Colin Walters  <walters@verbum.org>
1993         
1994         * doc/TODO: Remove introspection signature TODO.
1995
1996 2005-02-27  Colin Walters  <walters@verbum.org>
1997
1998         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
1999         Change return value to const char * instead of int so we can do
2000         full signatures.
2001         (struct PropertyInfo, struct ArgInfo): Store char *.
2002         (property_info_new, arg_info_new): Update parameters, strdup.
2003         (property_info_unref, arg_info_unref): Free.
2004
2005         * glib/dbus-gidl.h: Update prototypes.
2006
2007         * glib/dbus-gparser.c (basic_type_from_string): Delete.
2008         (validate_signature): New function, just validates signature and
2009         sets GError.
2010         (parse_property, parse_arg): Invoke validate_signature.  Store
2011         signature instead of just type code.
2012
2013         * glib/dbus-gvalue.c (base_type_from_signature): New utility
2014         function to return a primary type for a signature, dropping
2015         information about types in container types.
2016         (dbus_gvalue_genmarshal_name_from_type)
2017         (dbus_gvalue_binding_type_from_type)
2018         (dbus_gvalue_ctype_from_type): Update to take full signature
2019          instead of type code.
2020         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
2021
2022         * glib/dbus-gvalue.h: Update prototypes for above.
2023
2024         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
2025         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
2026         (introspect_properties, introspect_signals, write_interface):
2027         Update to handle signatures, and remove usage of
2028         _dbus_gutils_type_to_string.
2029         (handle_introspect): Print out type codes instead of e.g. "string"
2030         in hardcoded introspection XML; also use x_AS_STRING constants
2031         instead of hardcoding in string.
2032
2033         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
2034         to string.  Remove usage of _dbus_gutils_type_to_string.
2035
2036         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
2037
2038         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
2039         deletion.
2040         
2041         * glib/dbus-binding-tool-glib.c (compute_marshaller)
2042         (compute_marshaller_name, generate_glue): Handle signature change
2043         to string.
2044         (write_formal_parameters, write_args_for_direction): Ditto, and
2045         remove FIXME.
2046
2047         * tools/dbus-tree-view.c (type_to_string): Delete.
2048         (info_set_func_text): Update to print full signatures.
2049
2050         * test/glib/test-service-glib.xml: Change types to new
2051         introspection format.
2052
2053 2005-02-26  Havoc Pennington  <hp@redhat.com>
2054
2055         * doc/TODO: remove the "guid" item
2056
2057         * test/glib/test-profile.c (no_bus_thread_func): use open_private
2058         (with_bus_thread_func): use open_private
2059
2060         * dbus/dbus-connection.c (dbus_connection_open_private): new
2061         function that works like the old dbus_connection_open()
2062         (dbus_connection_open): now returns an existing connection if
2063         possible
2064
2065         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
2066         through the GUID to the transport
2067
2068         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
2069         GUID in hex-encoded form.
2070
2071         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2072         pass GUID argument in to the transport
2073
2074         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
2075         guid argument
2076
2077         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
2078
2079         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
2080
2081 2005-02-25  Havoc Pennington  <hp@redhat.com>
2082
2083         * doc/dbus-specification.xml: document the GUID thing
2084
2085         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
2086         globally unique ID for the server, and put a "guid=hexencoded"
2087         field in the address
2088
2089         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
2090
2091         * dbus/dbus-message.c: ditto
2092
2093         * dbus/dbus-dataslot.c: ditto
2094
2095         * dbus/dbus-list.c: ditto
2096
2097         * dbus/dbus-internals.h: wait, just include
2098         dbus-threads-internal.h here
2099         
2100         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
2101         use in main library
2102
2103         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
2104
2105 2005-02-24  Colin Walters  <walters@verbum.org>
2106
2107         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
2108
2109 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
2110
2111         * glib/Makefile.am: added dbus-gobject.h to sources list
2112         so distcheck doesn't fail
2113         
2114 2005-02-24  Havoc Pennington  <hp@redhat.com>
2115
2116         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
2117         you must disconnect before unref, since locking and other things
2118         are screwed up otherwise. Fix assorted other locking stuff.
2119
2120         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
2121         fix compilation
2122
2123         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
2124         into a private header and don't export from the library
2125
2126         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
2127
2128 2005-02-24  Colin Walters  <walters@verbum.org>
2129         
2130         * dbus/dbus-signature.c: New file; implements various functions
2131         related to type signatures.  Includes an interator for parsing,
2132         validation functions.
2133         (dbus_type_is_basic): Moved here from
2134         dbus-marshal-basic.c:_dbus_type_is_basic.
2135         (dbus_type_is_container): Moved here from
2136         dbus-marshal-basic.c:_dbus_type_is_container.
2137
2138         All callers of _dbus_type_is_container and _dbus_type_is_basic
2139         updated, and include dbus-signature.h.
2140
2141         * dbus/dbus-signature.h: New file; prototypes for the above.
2142
2143         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
2144         dbus-signature.h.
2145
2146         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
2147         function factored out of _dbus_first_type_in_signature.
2148         (_dbus_first_type_in_signature_c_str): New function; returns first
2149         type code for a type signature character.
2150
2151         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
2152         handle function moves.
2153
2154         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
2155
2156         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
2157         function; skips to next complete type in type signature.
2158         Implemented using previous skip_one_complete_type.  Now
2159         skip_one_complete_type just delegates to
2160         _dbus_type_signature_next.
2161
2162         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
2163         to dbus-signature.c
2164         (_dbus_type_is_container): Ditto.
2165
2166         * doc/dbus-specification.xml: Update introspection sample to
2167         use real type signatures.
2168
2169         * dbus/dbus-test.h: Prototype signature test.
2170
2171         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
2172         signature tests.
2173
2174         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
2175
2176 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
2177
2178         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
2179         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
2180
2181 2005-02-21  Colin Walters  <walters@verbum.org>
2182
2183         * dbus/dbus-test-main.c (main): Take optional specific test
2184         argument.
2185
2186         * dbus/dbus-test.c (run_test): New function, runs a test function
2187         with no data directory.
2188         (run_data_test): Like above, but takes data directory.
2189         (dbus_internal_do_not_use_run_tests): Take
2190         specific test argument.  Replace lots of cut n' paste code
2191         with run_test and run_data_test.
2192
2193         * dbus/dbus-test.h: Update prototype for
2194         dbus_internal_do_not_use_run_tests.
2195
2196 2005-02-20  Havoc Pennington  <hp@redhat.com>
2197
2198         Fix bugs reported by Daniel P. Berrange
2199         
2200         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
2201         (protected_change_watch): new function
2202         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
2203         (_dbus_server_add_watch): change to work like the
2204         dbus-connection.c equivalents; like those, probably kind of
2205         busted, but should at least mostly work for now
2206         (dbus_server_disconnect): drop the lock if we were already
2207         disconnected, patch from Daniel P. Berrange
2208
2209         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
2210         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
2211         same stuff
2212
2213         * doc/TODO: todo about unscrewing this mess
2214
2215 2005-02-19  Colin Walters  <walters@verbum.org>
2216
2217         * glib/dbus-binding-tool-glib.c
2218         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
2219
2220         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
2221         as errno.h and sys/stat.h.
2222         (lose): New function, prints error with
2223         newline and exits.
2224         (lose_gerror): Similar, but takes GError for message.
2225         (main): Add --output argument to specify output file to write to,
2226         instead of always printing to stdout.  In this mode, determine
2227         timestamps on source files to see whether any are newer than the
2228         target file.  If not, exit.  Also convert a number of error
2229         messages to use lose (since it's shorter), and switch to using
2230         g_io_channel_shutdown.
2231
2232 2005-02-19  Havoc Pennington  <hp@redhat.com>
2233
2234         * glib/dbus-gobject.c
2235         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
2236
2237         * glib/dbus-glib.c: fix doxygen warnings
2238
2239         * glib/dbus-gparser.c (parse_annotation): error if an annotation
2240         is found on an <arg>
2241
2242 2005-02-17  Colin Walters  <walters@verbum.org>
2243
2244         * glib/dbus-gobject.h: Don't export
2245         _dbus_glib_marshal_dbus_message_to_gvalue_array.
2246         
2247         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
2248         (invoke_object_method): Handle it.
2249
2250         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2251         Handle rename.
2252         
2253 2005-02-17  Colin Walters  <walters@verbum.org>
2254
2255         * bus/.cvsignore, doc/.cvsignore
2256         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
2257         Update.
2258
2259 2005-02-17  Colin Walters  <walters@verbum.org>
2260         
2261         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
2262         Rename to DBUS_SERVICE_DBUS.
2263         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
2264         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
2265         Change the value from "org.freedesktop.Local"
2266         to "org.freedesktop.DBus.Local".
2267         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
2268         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
2269         DBUS_INTERFACE_INTROSPECTABLE.
2270         Change the value from "org.freedesktop.Introspectable"
2271         to "org.freedesktop.DBus.Introspectable".
2272         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
2273         DBUS_INTERFACE_PROPERTIES.
2274         Change the value from "org.freedesktop.Properties"
2275         to "org.freedesktop.DBus.Properties".
2276         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
2277         DBUS_INTERFACE_PEER.
2278         Change the value from "org.freedesktop.Peer"
2279         to "org.freedesktop.DBus.Peer".
2280         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
2281         DBUS_INTERFACE_LOCAL.
2282         Change the value from "org.freedesktop.Local"
2283         to "org.freedesktop.DBus.Local".
2284
2285         All other users of those constants have been changed.
2286
2287         * bus/driver.c (bus_driver_handle_introspect): Use constants.
2288
2289         * glib/dbus-gobject.c (handle_introspect): Use constants.
2290
2291         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
2292
2293 2005-02-17  Colin Walters  <walters@verbum.org>
2294
2295         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
2296         (parse_node, parse_interface, parse_method, parse_signal)
2297         (parse_property, parse_annotation): Lose if we're currently in an
2298         annotation.
2299         (parse_annotation): New function.
2300         (parser_start_element, parser_end_element): Handle annotation.
2301         (parse_method, parse_interface): Remove support for c_name attribute,
2302         switch to annotations.
2303
2304         * glib/dbus-gidl.h (interface_info_get_binding_names)
2305         (method_info_get_binding_names)
2306         (interface_info_get_binding_name, method_info_get_binding_name)
2307         (interface_info_set_binding_name, method_info_set_binding_name):
2308         Remove.
2309         (interface_info_get_annotations, method_info_get_annotations)
2310         (interface_info_get_annotation, method_info_get_annotation)
2311         (interface_info_add_annotation, method_info_add_annotation):
2312         Prototype.
2313
2314         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
2315         for "bindings".
2316         (struct MethodInfo): Ditto.
2317         Straightfoward conversion of binding methods into annotation methods
2318         as prototyped.
2319
2320         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
2321
2322         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
2323
2324         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
2325         Use new annotation API.
2326
2327         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
2328         annotation element.
2329         
2330         * doc/dbus-specification.xml: Discuss introspection annotations,
2331         include list of well-known annotations.
2332
2333         * test/glib/test-service-glib.xml: Make validate against new DTD.
2334
2335 2005-02-17  Colin Walters  <walters@verbum.org>
2336
2337         This patch is based on initial work from
2338         Paul Kuliniewicz <kuliniew@purdue.edu>.
2339
2340         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
2341         initialization of GValue from dbus type to here.
2342         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
2343         for the "glib-genmarshal" program from a DBus type.
2344         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
2345         into the C name for it we use in the glib bindings.
2346         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
2347         glib C type (not GValue).
2348         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
2349
2350         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
2351         from dbus-gobject.c.
2352
2353         * glib/dbus-gutils.h: Prototype it.
2354
2355         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
2356         (marshal_dbus_message_to_g_marshaller): Use new shared function
2357         dbus_glib_marshal_dbus_message_to_gvalue_array.
2358
2359         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
2360         Will be changed once we have annotations.
2361
2362         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
2363         GStaticRWLock.  Callers updated.
2364         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
2365         (string_table_next): New function for iterating over zero-terminated
2366         string value array.
2367         (string_table_lookup): New function; retrieves specific entry in
2368         array.
2369         (get_method_data): New function; look up method data in object data chunk.
2370         (object_error_domain_prefix_from_object_info)
2371         (object_error_code_from_object_info): New functions, but not implemented yet.
2372         (method_interface_from_object_info): New function; retrieve interface name.
2373         (method_name_from_object_info): New function; retrieve method name.
2374         (method_arg_info_from_object_info): New function; retrieve argument data.
2375         (arg_iterate): New function; iterates over serialized argument data.
2376         (method_dir_signature_from_object_info): New function; returns a
2377         GString holding type signature for arguments for just one
2378         direction (input or output).
2379         (method_input_signature_from_object_info)
2380         (method_output_signature_from_object_info): New functions.
2381         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
2382         converts dbus message arguments into a GValue array.  Used for both
2383         signal handling and method invocation.
2384         (struct DBusGlibWriteIterfaceData): New utility structure.
2385         (write_interface): New function; generate introspection XML for
2386         an interface.
2387         (introspect_interfaces): New function; gathers all interface->methods,
2388         generates introspection XML for them.
2389         (handle_introspect): Invoke introspect_interfaces.
2390         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
2391         (lookup_object_and_method): New function; examines an incoming message
2392         and attempts to match it up (via interface, method name, and argument
2393         signature) with a known object and method.
2394         (gerror_domaincode_to_dbus_error_name): New function; converts a
2395         GError domain and code into a DBus error name.  Needs GError data
2396         added to object introspection to work well.
2397         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
2398         GError.
2399         (invoke_object_method): New function to invoke an object method
2400         looked up via lookup_object_and_method.  Parses the incoming
2401         message, turns it into a GValue array, then invokes the marshaller
2402         specified in the DBusGMethodInfo.  Creates a new message with
2403         either return values or error message as appropriate.
2404         (gobject_message_function): Invoke lookup_object_and_method and
2405         invoke_object_method.
2406
2407         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
2408         (enum DBusBindingOutputMode): New enum for binding output modes.
2409         (pretty_print): Print binding names.
2410         (dbus_binding_tool_error_quark): GError bits.
2411         (version): Fix typo.
2412         (main): Create GIOChannel for output.  Parse new --mode argument,
2413         possible values are "pretty-print", "glib-server", "glib-client".
2414         Use mode to invoke appropriate function.
2415         
2416         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
2417
2418         * glib/dbus-glib-tool.h: New header, just includes GError bits
2419         for now.
2420
2421         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
2422         maps binding style to name.
2423         (struct MethodInfo): Ditto.
2424         (get_hash_keys, get_hash_key): Utility function, returns keys for
2425         a GHashTable.
2426         (interface_info_new, method_info_new): Initialize bindings.
2427         (interface_info_unref, method_info_unref): Destroy bindings.
2428         (method_info_get_binding_names, method_info_get_binding_name)
2429         (interface_info_get_binding_names, interface_info_get_binding_name):
2430         Functions for retrieving binding names.
2431         (method_info_set_binding_name, interface_info_set_binding_name):
2432         Functions for setting binding names.
2433
2434         * glib/dbus-binding-tool-glib.h: New file, has prototypes
2435         for glib binding generation.
2436
2437         * glib/dbus-binding-tool-glib.c: New file, implements server-side
2438         and client-side glib glue generation.
2439
2440         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
2441         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
2442         dbus-glib-tool.h.
2443
2444         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
2445         of using GClosureMarshal directly.
2446         (struct DBusGObjectInfo): Add n_infos member.
2447
2448         * test/glib/test-service-glib.xml: New file; contains introspection data
2449         for MyTestObject used in test-service-glib.c.
2450
2451         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
2452         (my_object_do_nothing, my_object_increment, my_object_throw_error)
2453         (my_object_uppercase, my_object_many_args): New test methods.
2454         (main): Use dbus_g_object_class_install_info to include generated object
2455         info.
2456
2457         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
2458         as well as client-side bindings.
2459
2460         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
2461         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
2462         using both the dbus_gproxy stuff directly as well as the generated bindings.
2463
2464 2005-02-15  Havoc Pennington  <hp@redhat.com>
2465
2466         * dbus/dbus-connection.c (dbus_connection_dispatch): always
2467         complete a pending call, don't run filters first.
2468
2469         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
2470         dbus_pending_call_steal_reply
2471
2472         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
2473         _dbus_connection_block_pending_call
2474         (dbus_pending_call_get_reply): change to steal_reply and return a
2475         ref
2476
2477         * dbus/dbus-connection.c
2478         (dbus_connection_send_with_reply_and_block): port to work in terms
2479         of DBusPendingCall
2480         (_dbus_connection_block_pending_call): replace block_for_reply
2481         with this
2482
2483 2005-02-14  Havoc Pennington  <hp@redhat.com>
2484
2485         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
2486         properly handle looking up group information by name; fix 
2487         from j@bootlab.org
2488
2489 2005-02-13  Havoc Pennington  <hp@redhat.com>
2490
2491         * dbus/dbus-connection.c (dbus_connection_return_message) 
2492         (dbus_connection_borrow_message): hold dispatch lock while message
2493         is outstanding
2494         (_dbus_connection_block_for_reply): hold dispatch lock while we
2495         block for the reply, so nobody steals our reply
2496         (dbus_connection_pop_message): hold the dispatch lock while we
2497         pluck the message
2498
2499 2005-02-13  Havoc Pennington  <hp@redhat.com>
2500
2501         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
2502         (_dbus_connection_release_dispatch)
2503         (_dbus_connection_acquire_io_path)
2504         (_dbus_connection_release_io_path): make the mutex and condvar
2505         control access to the "acquired" flag. Drop the connection lock
2506         while waiting on the condvar. Hopefully these are baby steps in
2507         roughly the right direction.
2508
2509 2005-02-13  Havoc Pennington  <hp@redhat.com>
2510
2511         * dbus/dbus-connection.c: use separate mutexes for the condition
2512         variables; this is some kind of baseline for sanity, but the
2513         condition variables still aren't used correctly afaict
2514
2515 2005-02-13  Havoc Pennington  <hp@redhat.com>
2516
2517         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2518         fix a double-unlock
2519
2520         * dbus/dbus-connection.c
2521         (_dbus_connection_detach_pending_call_unlocked): add this
2522
2523         Initial semi-correct pass through to fix thread locking; there are
2524         still some issues with the condition variable paths I'm pretty
2525         sure
2526         
2527         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
2528         lock/unlock calls
2529
2530         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
2531         rename to add _unlocked
2532         (struct DBusConnection): move "dispatch_acquired" and
2533         "io_path_acquired" to use only one bit each.
2534         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
2535         (dbus_connection_set_watch_functions): hacky fix to reentrancy
2536         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
2537         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
2538         (_dbus_connection_remove_timeout) 
2539         (_dbus_connection_toggle_timeout): drop lock when calling out to
2540         user functions; done in a hacky/bad way.
2541         (_dbus_connection_send_and_unlock): add a missing unlock
2542         (_dbus_connection_block_for_reply): add a missing unlock
2543
2544         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2545         drop lock in a hacky probably unsafe way to call out to user
2546         function
2547
2548 2005-02-12  Havoc Pennington  <hp@redhat.com>
2549
2550         * tools/dbus-tree-view.c (info_set_func_text): display more
2551         details on args
2552
2553         * bus/driver.c (bus_driver_handle_list_services): list the bus
2554         driver
2555
2556         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
2557
2558         * glib/dbus-gidl.c (signal_info_get_n_args): new function
2559         (method_info_get_n_args): new function
2560
2561 2005-02-12  Havoc Pennington  <hp@redhat.com>
2562
2563         * bus/driver.c (bus_driver_handle_introspect): add introspection
2564         for bus driver
2565
2566 2005-02-12  Havoc Pennington  <hp@redhat.com>
2567
2568         * bus/driver.c: put the signature of each bus driver method in the
2569         table of handlers and check it on incoming calls; this isn't
2570         really useful, but going to add introspect support in a minute.
2571
2572 2005-02-11  Joe Shaw  <joeshaw@novell.com>
2573
2574         * mono/Connection.cs: The unpredictability of finalizers in mono
2575         prevents us from deterministically disconnecting the filters from
2576         the Service class's finalizer, so move tracking of filters and
2577         matches here.  Add API for that.
2578
2579         * mono/Service.cs: Remove the code, add code which calls the
2580         methods now on the Connection class.
2581
2582 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
2583
2584         * python/dbus.py (class Sender): added to support dbus signals better
2585         (Bus::add_signal_receiver): added expand_args parameter which defaults
2586         to True.  When expand args is True the signal handler will pass the 
2587         message arguments as parameters to the signal handler.  If False
2588         revert to previous behavior where the signal handler must get the
2589         argument list from the message.  This is to help port applications
2590         like HAL that have a tendancy to send variable length argument lists.
2591         self._match_rule_to_receivers is now a dict of dicts.
2592         (Bus::remove_signal_receiver): pop handler off the dict intead of 
2593         removing it from a list
2594         (Bus::_signal_func): change signal handlers so that interface,
2595         signal_name, service, path and message are packed into a Sender
2596         object and that is passed to the handler.  If expand_args is True
2597         extract the args list from the message and append it to the parameter
2598         list
2599         
2600         * python/dbus_bindings.pyx.in (class Signature): added to support 
2601         signiature types
2602         (MessageIter::__init__): changed iteration limit to match D-BUS
2603         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
2604         STRUCT and VARIENT type support
2605         (MessageIter::python_value_to_dbus_sig): made recursive to support
2606         recursive types
2607         (MessageIter::append*): added Signature, dict, tuple 
2608         support
2609
2610         * python/examples/example-client.py: added examples of getting tuples
2611         and dicts
2612
2613         * python/examples/example-service.py: added examples of sending tuples
2614         and dicts
2615
2616         * python/examples/example-signal-recipient.py: Fixed to handle new
2617         signal callback format
2618
2619 2005-02-10  Havoc Pennington  <hp@redhat.com>
2620
2621         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
2622         (call dbus_g_proxy_add_signal)
2623
2624         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2625         escape the hostname
2626         (_dbus_server_new_for_domain_socket): escape the path
2627
2628         * dbus/dbus-address.c (dbus_address_escape_value): new
2629         (dbus_address_unescape_value): new
2630         (dbus_parse_address): unescape values
2631
2632         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
2633
2634         * doc/dbus-specification.xml: explain how to escape values in
2635         addresses
2636
2637 2005-02-10  Havoc Pennington  <hp@redhat.com>
2638
2639         * dbus/dbus-message-factory.c (generate_special): modify test to
2640         avoid using a non-basic dict key
2641
2642         * dbus/dbus-marshal-validate-util.c: add test for the below
2643
2644         * doc/dbus-specification.xml: require that dict keys are a basic
2645         type
2646
2647         * dbus/dbus-marshal-validate.c
2648         (_dbus_validate_signature_with_reason): require that dict key is a
2649         basic type
2650
2651 2005-02-10  Havoc Pennington  <hp@redhat.com>
2652
2653         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2654         change to be _and_unlock instead of _unlocked
2655
2656         * dbus/dbus-connection.c
2657         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
2658         have no_update so we can find this bug quickly in future
2659
2660 2005-02-10  Havoc Pennington  <hp@redhat.com>
2661
2662         * dbus/dbus-message-util.c (verify_test_message): tests for string
2663         array
2664
2665         * dbus/dbus-message.c (dbus_message_append_args_valist): add
2666         support for arrays of string/signature/path
2667
2668 2005-02-10  Joe Shaw  <joeshaw@novell.com>
2669
2670         * dbus/dbus-connection.c
2671         (_dbus_connection_queue_received_message_link,
2672         _dbus_connection_message_sent): Add the path to
2673         the verbose output.
2674         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
2675         _dbus_connection_send_preallocated_unlocked(), updated the
2676         dispatch status, and unlocks.  Fixes a bug where certain
2677         situations (like a broken pipe) could cause a Disconnect message
2678         to not be sent, tricking the bus into thinking a service was still
2679         there when the process had quit.
2680         (_dbus_connection_send_preallocated): Call
2681         _dbus_connection_send_preallocated_and_unlock().
2682         (_dbus_connection_send_and_unlock): Added.  Calls
2683         _dbus_connection_send_preallocated_and_unlock().
2684         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
2685         (dbus_connection_send_with_reply): Update the dispatch status and
2686         unlock.
2687
2688         * mono/Service.cs (~Service): Added.  Removes the filter so that
2689         we don't get unmanaged code calling back into a GCed delegate.
2690         (RemoveFilter); Added.
2691
2692 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
2693
2694         * dbus/dbus-message.c (dbus_message_iter_open_container):
2695         - Removed check for iterator type being an array because
2696         get_arg_type does not work with writer iterators
2697         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
2698
2699 2005-02-07  Havoc Pennington  <hp@redhat.com>
2700
2701         * doc/dbus-specification.xml: some more language cleanups; add
2702         stuff about how to deal with invalid protocol and extension
2703         points; add _ to allowed chars in auth commands; add EXTENSION_
2704         auth command prefix
2705
2706 2005-02-06  Havoc Pennington  <hp@redhat.com>
2707
2708         * s/expected/required/ in a couple places for clarity
2709
2710 2005-02-07  Colin Walters  <walters@verbum.org>
2711
2712         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
2713         sender or proposed_recipient.
2714
2715 2005-02-06  Havoc Pennington  <hp@redhat.com>
2716
2717         * dbus/dbus-message-factory.c (generate_special): more tests
2718
2719         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
2720         array length that exceeds the maximum
2721
2722 2005-02-05  Havoc Pennington  <hp@redhat.com>
2723
2724         * dbus/dbus-message-factory.c (generate_special): more test cases,
2725         increasing coverage
2726
2727         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
2728         reason why a signature was invalid
2729
2730         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
2731         skip the length of the string before we look at it in validation
2732
2733         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
2734         equal_substring
2735
2736         * dbus/dbus-message.c (_dbus_message_loader_new): default
2737         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
2738
2739 2005-02-05  Havoc Pennington  <hp@redhat.com>
2740
2741         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
2742         if the signature of a variant was empty
2743         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
2744         struct with no element type)
2745
2746         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
2747         mangled messages to break things
2748
2749 2005-02-04  Havoc Pennington  <hp@redhat.com>
2750
2751         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
2752         g_quark_try_string() so it actually can return 0
2753         (dbus_g_proxy_connect_signal): ditto
2754
2755 2005-02-04  Havoc Pennington  <hp@redhat.com>
2756
2757         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
2758         bogus warning
2759         (tristring_from_message): assert cleanly on null path/interface
2760         (should not be possible though I decided later)
2761         (dbus_g_proxy_dispose): move proxy manager unregistration here
2762         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
2763         g_return_if_fail() checks
2764
2765 2005-02-04  Havoc Pennington  <hp@redhat.com>
2766
2767         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
2768
2769         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
2770         (with some minor changes)
2771
2772         * doc/dbus-specification.xml: add deprecated attribute to
2773         introspection format
2774
2775 2005-01-31  Havoc Pennington  <hp@redhat.com>
2776
2777         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
2778         think it's sort of right
2779
2780 2005-01-30  Havoc Pennington  <hp@redhat.com>
2781
2782         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
2783
2784 2005-01-30  Havoc Pennington  <hp@redhat.com>
2785
2786         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
2787
2788         * autogen.sh: change to autotools 1.9
2789
2790         * glib/dbus-gproxy.c: completely change how signals work
2791         (dbus_g_proxy_add_signal): new function to specify signature of a
2792         signal
2793         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
2794         and g_warning if the incoming message has the wrong signature.
2795
2796 2005-01-30  Havoc Pennington  <hp@redhat.com>
2797
2798         * tools/dbus-names-model.c (have_names_notify): fix this
2799
2800         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
2801         up the string array handling a bit 
2802
2803 2005-01-30  Havoc Pennington  <hp@redhat.com>
2804
2805         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
2806         (dbus_g_pending_call_cancel): new function
2807
2808         * dbus/dbus-glib.h: move GType decls for connection/message here;
2809         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
2810         here, just kind of rationalizing how we handle all that
2811
2812         * tools/dbus-names-model.c: new file for a tree model listing the
2813         services on a bus
2814
2815         * tools/dbus-tree-view.c (model_new): use proper typing on the
2816         model rows
2817
2818 2005-01-30  Havoc Pennington  <hp@redhat.com>
2819
2820         * glib/dbus-gmain.c: add a custom GSource back that just checks
2821         whether the message queue has anything in it; otherwise, there are 
2822         cases where we won't see messages in the queue since there was no 
2823         IO visible to the glib main loop
2824
2825         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
2826         increase default message timeout to 25 seconds
2827
2828 2005-01-30  Havoc Pennington  <hp@redhat.com>
2829
2830         * test/glib/test-profile.c (no_bus_stop_server): remove the
2831         warning about the g_warning that I just fixed
2832
2833         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
2834         custom source, seems to be a lot easier to understand and work
2835         better.
2836
2837 2005-01-30  Havoc Pennington  <hp@redhat.com>
2838
2839         I think this main loop thing is conceptually broken, but here are 
2840         some band aids. I'll maybe rewrite it in a minute.
2841         
2842         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
2843         custom GSource, so don't pass it in; confusing
2844         (gsource_server_finalize, gsource_connection_finalize): add
2845         finalize handlers that remove all the watches.  
2846
2847 2005-01-30  Havoc Pennington  <hp@redhat.com>
2848
2849         * glib/dbus-gobject.c (introspect_properties): fix the XML
2850         generated
2851
2852         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
2853         which effectively detects the use of freed messages
2854
2855         * glib/dbus-gobject.c (handle_introspect): modify and return the
2856         reply message instead of the incoming message
2857
2858         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
2859         gee, maybe it should SEND THE XML instead of just making a string
2860         and freeing it again ;-)
2861
2862         * tools/dbus-print-message.c (print_message): improve printing of
2863         messages
2864
2865         * configure.in: add debug-glib.service to the output
2866
2867 2005-01-30  Havoc Pennington  <hp@redhat.com>
2868
2869         dbus-viewer introspected and displayed the bus driver
2870         
2871         * dbus/dbus-object-tree.c 
2872         (object_tree_test_iteration): add tests for a handler registered on "/"
2873
2874         * dbus/dbus-object-tree.c
2875         (_dbus_decompose_path): fix to handle path "/" properly
2876         (run_decompose_tests): add tests for path decomposition
2877         
2878         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
2879         properly
2880
2881         * glib/dbus-gobject.c (handle_introspect): fix quotes
2882
2883         * test/glib/run-test.sh: support launching the bus, then running
2884         dbus-viewer
2885
2886         * test/glib/test-service-glib.c (main): put in a trivial gobject
2887         subclass and register it on the connection
2888
2889         * bus/driver.c (bus_driver_handle_introspect): implement
2890         introspection of the bus driver service
2891
2892         * dbus/dbus-protocol.h: add #defines for the XML namespace,
2893         identifiers, doctype decl
2894
2895         * bus/driver.c (bus_driver_handle_get_service_owner): handle
2896         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
2897         returning the service unchanged.
2898         (bus_driver_handle_message): remove old check for reply_serial in
2899         method calls, now the message type deals with that
2900         (bus_driver_handle_message): handle NULL interface
2901
2902         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
2903
2904         * glib/dbus-gloader-expat.c (description_load_from_string): allow
2905         -1 for len
2906
2907         * tools/dbus-viewer.c: add support for introspecting a service on
2908         a bus
2909
2910         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
2911         (dbus_g_pending_call_unref): add
2912
2913 2005-01-29  Havoc Pennington  <hp@redhat.com>
2914
2915         * tools/dbus-tree-view.c: add support for displaying properties.
2916         (run dbus-viewer with an introspect xml file as arg, then resize
2917         the window so the tree elements show up, not sure what that is)
2918
2919         * glib/dbus-gobject.c (handle_introspect): return
2920         org.freedesktop.Properties and org.freedesktop.Introspectable
2921         interfaces when we are introspected.
2922
2923         * doc/dbus-specification.xml: allow empty interface name when 
2924         Get/Set a property
2925
2926 2005-01-29  Havoc Pennington  <hp@redhat.com>
2927
2928         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
2929         though it uses glib, it could be extended for any binding in
2930         principle
2931
2932         * glib/dbus-gobject.c (gobject_message_function): change to the
2933         new way properties work
2934
2935         * dbus/dbus-protocol.h: add the new interfaces
2936
2937         * doc/dbus-specification.xml: document the introspection format,
2938         Introspectable interface, and add an org.freedesktop.Properties
2939         interface.
2940
2941         * glib/dbus-gparser.c: add support for a <property> element
2942
2943         * glib/dbus-gidl.c: add PropertyInfo
2944
2945         * glib/dbus-gobject.c (handle_introspect): put the outermost
2946         <node> outside the signal and property descriptions.
2947         (introspect_properties): export properties as <property> rather
2948         than as method calls
2949
2950 2005-01-28  Havoc Pennington  <hp@redhat.com>
2951
2952         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
2953         related to authentication protocol
2954
2955 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
2956
2957         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
2958                 - BUS_ACTIVATION -> BUS_STARTER
2959                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
2960                 - class MessageIter (__init__): Added recursion checking 
2961                 so we throw a nice error instead of just disconnecting from the
2962                 bus.
2963                 (get): Added arg_type parameter for recursion.
2964                 Removed the nil type
2965                 Added signiture type placeholder (not implemented)
2966                 Added struct type placeholder (not implemented)
2967                 Added varient type placeholder (not implemented)
2968                 Commented out dict type for now     
2969                 (get_element_type): renamed from get_array_type
2970                 (get_*): changed to use the dbus_message_iter_get_basic API
2971                 (get_*_array): removed in favor of recursive get_array method
2972                 (get_array): new recursive method which calls get to marshal
2973                 the elements of the array
2974                 (value_to_dbus_sig): New method returns the corrasponding
2975                 dbus signiture to a python value
2976                 (append): Comment out dict handling for now
2977                 Handle lists with the new recursive API
2978                 Comment out None handling for now
2979                 (append_nil): removed
2980                 (append_*): changed to use dbus_message_iter_append_basic API
2981                 (append_*_array): removed in favor of recursive append_array 
2982                 method
2983                 (__str__): Make it easier to print out recursive iterators
2984                 for debugging
2985                 - class Message (__str__): moved type inspection to the
2986                 MessageIter class' __str__ method
2987                 (get_iter): Added an append parameter wich defaults to False
2988                 If True use the new API's to create an append iterator
2989
2990         * python/dbus.py: Update to use new bindings API
2991                 - TYPE_ACTIVATION -> TYPE_STARTER
2992                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
2993                 - class ActivationBus -> class StarterBus
2994                 - class RemoteObject (__call__): get an append iterator
2995                 - (_dispatch_dbus_method_call): get an append iterator
2996                 - class Object (emit_signal): get an append iterator
2997
2998         * python/examples/: Fixed up the examples to work with the new API
2999                 
3000 2005-01-28  Joe Shaw  <joeshaw@novell.com>
3001
3002         * configure.in: Bump version up to 0.30.
3003
3004         * HACKING: Add a release item to bump the version number up after 
3005         a release.
3006
3007 2005-01-28  Havoc Pennington  <hp@redhat.com>
3008
3009         * doc/dbus-specification.xml: update to describe 16-bit types and
3010         dict entries
3011
3012         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
3013         assertion
3014
3015         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
3016         type
3017
3018         * dbus/dbus-marshal-recursive.c: implement
3019
3020 2005-01-27  Havoc Pennington  <hp@redhat.com>
3021
3022         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
3023
3024         * configure.in: find the right type for 16 and 32 bit ints as well
3025         as 64
3026
3027         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
3028         the 16-bit types so people don't have to stuff them in 32-bit or
3029         byte arrays.
3030
3031 2005-01-27  Havoc Pennington  <hp@redhat.com>
3032
3033         * dbus/dbus-message.c: byteswap the message if you init an
3034         iterator to read/write from it
3035         
3036         * dbus/dbus-marshal-byteswap.c: new file implementing 
3037         _dbus_marshal_byteswap()
3038
3039         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
3040
3041 2005-01-26  Havoc Pennington  <hp@redhat.com>
3042         
3043         * dbus/dbus-marshal-validate-util.c: break this out (and fix
3044         build, apparently - nobody noticed?)
3045         
3046 2005-01-26  Havoc Pennington  <hp@redhat.com>
3047
3048         * dbus/dbus-marshal-recursive.h: remove todo comment
3049
3050 2005-01-25  Joe Shaw  <joeshaw@novell.com>
3051
3052         * Land the mono binding changes to conform to the new APIs.
3053
3054         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
3055         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
3056
3057         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
3058         type code as a string.
3059         (InitAppending): Rename dbus_message_append_iter_init() to
3060         dbus_message_iter_init_append().
3061
3062         * mono/BusDriver.cs: Rename ServiceEventHandler to
3063         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
3064         Rename ServiceOwnerChanged to NameOwnerChanged.
3065
3066         * mono/Connection.cs: Rename BaseService to UniqueName, and the
3067         underlying C call.
3068
3069         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
3070
3071         * mono/Service.cs: Rename Exists to HasOwner, internally rename
3072         dbus_bus_acquire_service() to dbus_bus_request_name().
3073
3074         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
3075         of Type.UnderlyingSystemType to get the correct element type for
3076         the array.
3077         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
3078         dbus_message_get_{element|arg}_type() instead of
3079         dbus_message_iter_init_array_iterator().
3080         (Append): Replace dbus_message_iter_append_array() with
3081         dbus_message_iter_open_container() and
3082         dbus_message_iter_close_container().
3083
3084         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
3085         types have been removed.
3086         
3087         * mono/DBusType/*.cs: Replace calls of
3088         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
3089         but specify the type in the DllImport extern declaration.  Ditto
3090         for dbus_message_iter_append_[type]() ->
3091         dbus_message_iter_append_basic().
3092
3093         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
3094         NameOwnerChangedHandler.
3095
3096 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
3097
3098         * python/dbus_bindings.pyx.in: Rename of methods and bindings
3099                 - get_base_service -> get_unique_name
3100                 - bus_get_base_service -> bus_get_unique_name
3101                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
3102                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
3103                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
3104                 - bus_activate_service -> bus_start_service_by_name
3105                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
3106                 - bus_acquire_service -> bus_request_name
3107                 - dbus_bus_acquire_service -> dbus_bus_request_name
3108                 - bus_service_exists -> bus_name_has_owner
3109                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
3110
3111         * python/dbus.py: Rename of methods
3112                 - activate_service -> start_service_by_name
3113                 - bus_acquire_service -> bus_request_name
3114                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
3115                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
3116
3117         
3118 2005-01-24  Joe Shaw  <joeshaw@novell.com>
3119
3120         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
3121         signature for the method that can't be found.
3122
3123         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
3124         the message has any arguments, we need to call
3125         _dbus_type_reader_get_current_type(), not
3126         _dbus_type_reader_has_next().
3127
3128 2005-01-24  Havoc Pennington  <hp@redhat.com>
3129
3130         * dbus/dbus-message-factory.c: more testing of message validation
3131
3132         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
3133         header
3134
3135 2005-01-23  Havoc Pennington  <hp@redhat.com>
3136
3137         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
3138         get this all working, not many tests in the framework yet though
3139
3140 2005-01-22  Havoc Pennington  <hp@redhat.com>
3141
3142         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
3143         tutorial, based on work from David Wheeler.
3144
3145 2005-01-21  Havoc Pennington  <hp@redhat.com>
3146
3147         * dbus/dbus-bus.c: add more return_if_fail checks
3148
3149         * dbus/dbus-message.c (load_message): have the "no validation"
3150         mode (have to edit the code to toggle the mode for now though)
3151
3152         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
3153         skips all validation; I want to use this at least for benchmark
3154         baseline, I'm not sure if it should be a publicly-available switch.
3155
3156 2005-01-21  Havoc Pennington  <hp@redhat.com>
3157
3158         * glib/dbus-gmain.c: don't put the GLib bindings in the same
3159         toplevel doxygen group as the low-level API stuff
3160
3161         * dbus/dbus.h: note that libdbus is the low-level API
3162
3163 2005-01-20  Havoc Pennington  <hp@redhat.com>
3164
3165         * update-dbus-docs.sh: script to update docs on the web site, only
3166         works for me though. neener.
3167
3168 2005-01-20  Havoc Pennington  <hp@redhat.com>
3169
3170         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
3171         code can reveal bugs in it
3172
3173 2005-01-20  Havoc Pennington  <hp@redhat.com>
3174
3175         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
3176         select() version, patches from Tor Lillqvist
3177
3178 2005-01-20  Havoc Pennington  <hp@redhat.com>
3179
3180         * doc/dbus-tutorial.xml: replace > with &gt;
3181
3182         * bus/services.c (bus_registry_acquire_service): validate the name
3183         and return a better error if it's no good.
3184
3185         * doc/dbus-specification.xml: note NO_AUTO_START change
3186
3187         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
3188         from AUTO_START, we're toggling the default
3189
3190         * bus/dispatch.c: adapt the tests to change of auto-start default
3191
3192 2005-01-18  Havoc Pennington  <hp@redhat.com>
3193
3194         * rename dbus-daemon-1 to dbus-daemon throughout
3195
3196 2005-01-18  Havoc Pennington  <hp@redhat.com>
3197
3198         * Throughout, grand renaming to strip out the use of "service",
3199         just say "name" instead (or "bus name" when ambiguous).  Did not
3200         change the internal code of the message bus itself, only the
3201         programmer-facing API and messages.
3202         
3203         * doc/dbus-specification.xml: further update the message bus section
3204         
3205         * bus/config-parser.c (all_are_equiv): fix bug using freed string
3206         in error case
3207
3208 2005-01-17  Havoc Pennington  <hp@redhat.com>
3209
3210         * dbus/dbus-types.h: remove 16-bit types since we don't use them
3211         ever
3212
3213         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
3214         "invalid name character" not only non-ASCII
3215
3216         * doc/dbus-specification.xml: further update spec, message bus 
3217         parts are still out-of-date but the marshaling etc. stuff is now
3218         accurate-ish
3219
3220 2005-01-17  Havoc Pennington  <hp@redhat.com>
3221
3222         * doc/dbus-specification.xml: partially update spec
3223
3224 2005-01-17  Havoc Pennington  <hp@redhat.com>
3225
3226         * Throughout, align variant bodies according to the contained
3227         type, rather than always to 8. Should save a fair bit of space in
3228         message headers.
3229         
3230         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
3231         fix handling of case where p == end
3232
3233         * doc/TODO: remove the dbus_bool_t item and variant alignment items
3234
3235 2005-01-17  Havoc Pennington  <hp@redhat.com>
3236
3237         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
3238
3239         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
3240         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
3241         are marshaling/unmarshaling a boolean.
3242
3243 2005-01-16  Havoc Pennington  <hp@redhat.com>
3244
3245         This is about it on what can be disabled/deleted from libdbus
3246         easily, back below 150K anyhow. Deeper cuts are more work than 
3247         just turning the code off as I've done here.
3248         
3249         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
3250         signed int convenience funcs
3251
3252         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
3253         verbose mode
3254
3255         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
3256         things out of libdbus
3257
3258         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
3259         
3260         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
3261         tests-enabled-only, though it should probably be deleted)
3262
3263         * dbus/dbus-message-util.c: same stuff
3264
3265         * dbus/dbus-auth-util.c: same stuff
3266
3267 2005-01-16  Havoc Pennington  <hp@redhat.com>
3268
3269         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
3270
3271         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
3272         way for stripping down dbus-userdb.c stuff included in libdbus.
3273         Rename _dbus_parse_uid for consistency.
3274
3275 2005-01-16  Havoc Pennington  <hp@redhat.com>
3276
3277         * dbus/dbus-internals.c (_dbus_real_assert): print the function
3278         name the assertion failed in
3279
3280         * dbus/dbus-internals.h (_dbus_return_if_fail) 
3281         (_dbus_return_val_if_fail): assert that the name of the function
3282         containing the check doesn't start with '_', since we only want to 
3283         use checks on public functions
3284         
3285         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
3286         checks to assertions
3287
3288         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
3289         change checks to asserts for private function
3290
3291         * dbus/dbus-message.c (_dbus_message_set_serial): checks
3292         to asserts for private function
3293
3294         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
3295         broken assertion that was breaking make check
3296         (_dbus_type_reader_array_is_empty): remove this rather than fix
3297         it, was only used in assertions
3298
3299 2005-01-16  Havoc Pennington  <hp@redhat.com>
3300
3301         * test/unused-code-gc.py: hacky script to find code that's used
3302         only by the bus (not libdbus) or used only by tests or not used at
3303         all. It has some false alarms, but looks like we can clean up a
3304         lot of size from libdbus.
3305
3306         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
3307         dbus/Makefile.am: initially move 10K of binary size out of libdbus
3308         
3309 2005-01-16  Havoc Pennington  <hp@redhat.com>
3310
3311         * Add and fix docs according to Doxygen warnings throughout
3312         source.
3313         
3314         * dbus/dbus-marshal-recursive.c
3315         (_dbus_type_reader_array_is_empty): change this to just call
3316         array_reader_get_array_len() and make it static
3317
3318         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
3319         from get_array_type
3320         (dbus_message_iter_init_append): rename from append_iter_init
3321
3322         * dbus/dbus-marshal-recursive.c
3323         (_dbus_type_reader_get_element_type): rename from
3324         _dbus_type_reader_get_array_type
3325
3326 2005-01-15  Havoc Pennington  <hp@redhat.com>
3327
3328         * test/glib/test-profile.c (with_bus_server_filter): fix crash
3329
3330         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
3331         when DBUS_DISABLE_ASSERT
3332         (_dbus_marshal_set_basic): be sure we align for the string length
3333
3334         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
3335         this look faster
3336
3337         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
3338         inline macro version
3339         (_dbus_string_set_byte): provide inline macro version
3340
3341 2005-01-15  Havoc Pennington  <hp@redhat.com>
3342
3343         * Land the new message args API and type system.
3344
3345         This patch is huge, but the public API change is not 
3346         really large. The set of D-BUS types has changed somewhat, 
3347         and the arg "getters" are more geared toward language bindings;
3348         they don't make a copy, etc.
3349
3350         There are also some known issues. See these emails for details
3351         on this huge patch:
3352         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
3353         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
3354         
3355         * dbus/dbus-marshal-*: all the new stuff
3356
3357         * dbus/dbus-message.c: basically rewritten
3358
3359         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
3360         freed blocks to be all non-nul bytes so using freed memory is less
3361         likely to work right
3362
3363         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
3364         DBUS_FAIL_MALLOC=N environment variable, so you can do
3365         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
3366         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
3367         thorough.
3368
3369         * qt/message.cpp: port to the new message args API
3370         (operator<<): use str.utf8() rather than str.unicode()
3371         (pretty sure this is right from the Qt docs?)
3372
3373         * glib/dbus-gvalue.c: port to the new message args API
3374
3375         * bus/dispatch.c, bus/driver.c: port to the new message args API
3376
3377         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
3378         "locked" flag to TRUE and align_offset to 0; I guess we never
3379         looked at these anyhow, but seems cleaner.
3380
3381         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
3382         move allocation padding macro to this header; use it to implement
3383         (_DBUS_STRING_STATIC): ability to declare a static string.
3384
3385         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
3386         change to return TRUE if the interface is not set.
3387
3388         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
3389         to dbus-marshal-validate.[hc]
3390
3391         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
3392         dbus-internals.c
3393
3394         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
3395         to dbus-marshal-*.[hc]
3396
3397         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
3398         function here from dbus-marshal.c
3399
3400 2005-01-12  Joe Shaw  <joeshaw@novell.com>
3401
3402         * NEWS: Update for 0.23.
3403
3404         * configure.in: Release 0.23.
3405
3406 2005-01-12  Joe Shaw  <joeshaw@novell.com>
3407
3408         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
3409         dbus DLL with --debug.  Clean up after the .mdb files this leaves
3410         behind.
3411
3412         * mono/doc/Makefile.am: Need to uninstall the docs on "make
3413         uninstall"
3414
3415         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
3416         is an enum, get the enum's underlying type.  Another mono
3417         1.1.3 fix.
3418
3419 2005-01-11  Joe Shaw  <joeshaw@novell.com>
3420
3421         Patch from Sjoerd Simons <sjoerd@luon.net>
3422
3423         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
3424         DESTDIR.  It breaks stuff.
3425
3426 2005-01-11  Joe Shaw  <joeshaw@novell.com>
3427
3428         Patch from Tambet Ingo <tambet@ximian.com>
3429
3430         * mono/DBusType/Array.cs (Get): Get the underlying element type by
3431         calling type.GetElementType().  The code previously depended on
3432         broken Mono behavior, which was fixed in Mono 1.1.3.
3433
3434         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
3435         Activator.CreateInstance() so that the class's constructor is
3436         called with the right parameters.
3437
3438 2005-01-11  Joe Shaw  <joeshaw@novell.com>
3439
3440         Patch from Timo Teräs <ext-timo.teras@nokia.com>
3441
3442         * dbus/dbus-connection.c
3443         (_dbus_connection_queue_received_message_link): Call
3444         _dbus_connection_remove_timeout() instead of the _locked()
3445         variant, since it's always called from
3446         _dbus_connection_handle_watch(), which handles the locking.
3447         Removed the _locked() variant since it's no longer used.
3448
3449 2005-01-03  Havoc Pennington  <hp@redhat.com>
3450
3451         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
3452         return
3453         
3454 2004-12-26  Havoc Pennington  <hp@redhat.com>
3455
3456         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
3457
3458 2005-01-03  Havoc Pennington  <hp@redhat.com>
3459
3460         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
3461         floating point
3462
3463         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
3464
3465 2005-01-02  Havoc Pennington  <hp@redhat.com>
3466
3467         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
3468
3469 2005-01-01  Havoc Pennington  <hp@redhat.com>
3470
3471         * configure.in: add -Wfloat-equal
3472
3473 2005-01-01  Havoc Pennington  <hp@redhat.com>
3474
3475         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
3476         for a variety of reasons '==' doesn't do this.
3477
3478 2004-12-31  Havoc Pennington  <hp@redhat.com>
3479
3480         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
3481         I keep wishing I had
3482
3483 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
3484
3485         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
3486
3487 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
3488
3489         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
3490         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
3491         dbus-protocol.h.  Because they are defines and not enums they are not
3492         autogenerated.
3493
3494 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
3495
3496         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
3497         dbus_bus_activate_service
3498
3499         * python/dbus.py (Bus.activate_service): activate a service on the
3500         bus.
3501
3502 2004-12-24  Havoc Pennington  <hp@redhat.com>
3503
3504         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
3505         file format has also changed and I haven't adapted to that yet
3506         
3507         * Makefile.am: load .gcno files from latest gcc
3508
3509 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
3510         * Patch from Rob Taylor <robtaylor@fastmail.fm>
3511
3512         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
3513         lowlevel binding
3514
3515         * python/dbus.py (get_unix_user): Added binding to 
3516         call dbus_bindings.bus_get_unix_user
3517
3518         * python/extract.py: Modified the proto_pat regex to
3519         handle unsigned long
3520
3521 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3522
3523         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
3524         better POSIX compliance.
3525
3526 2004-12-19  Havoc Pennington  <hp@redhat.com>
3527
3528         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
3529         (_dbus_string_insert_8_aligned): new functions
3530
3531         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
3532
3533 2004-12-18  Havoc Pennington  <hp@redhat.com>
3534
3535         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
3536         macro
3537
3538         * dbus/dbus-message.c: fix a comment, and add a still-unused
3539         not-implemented function
3540
3541         * dbus/dbus-marshal.h: fix comment
3542
3543         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
3544
3545 2004-12-17  Joe Shaw  <joeshaw@novell.com>
3546
3547         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
3548         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
3549         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
3550         Type.UnderlyingSystemType to get the actual system type
3551         underneath.  This code previously depended on the broken Mono
3552         behavior, which was fixed in 1.1.3.
3553
3554 2004-11-27  Havoc Pennington  <hp@redhat.com>
3555
3556         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
3557         are disabled
3558         (_dbus_string_get_const_data): inline when asserts are disabled
3559
3560         * dbus/dbus-message.c: record the _dbus_current_generation of
3561         creation so we can complain if dbus_shutdown() is used improperly.
3562         Do this only if checks are enabled.
3563
3564         * dbus/dbus-connection.c: ditto
3565         
3566 2004-11-26  Havoc Pennington  <hp@redhat.com>
3567
3568         * test/glib/test-profile.c: add with_bus mode to profile echoes
3569         that go through the bus.
3570
3571         * test/glib/run-test.sh: add ability to run test-profile
3572
3573         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
3574         config file reload.
3575
3576 2004-11-26  Havoc Pennington  <hp@redhat.com>
3577
3578         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
3579         thing was implemented
3580
3581 2004-11-26  Havoc Pennington  <hp@redhat.com>
3582
3583         * test/glib/test-profile.c: tweak a bit, add support for some
3584         made-up minimal malloc overhead with plain sockets, since in 
3585         real life some sort of buffers are unavoidable thus we could 
3586         count them in the theoretical best case
3587
3588 2004-11-26  Havoc Pennington  <hp@redhat.com>
3589
3590         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
3591         where I was trying to cache one too many messages
3592
3593 2004-11-26  Havoc Pennington  <hp@redhat.com>
3594
3595         * dbus/dbus-message.c: reimplement message cache as an array which 
3596         makes the cache about twice as fast and saves maybe 1.5% overall
3597
3598 2004-11-26  Havoc Pennington  <hp@redhat.com>
3599
3600         * dbus/dbus-threads.c (init_global_locks): forgot to put the
3601         message cache lock here
3602
3603 2004-11-26  Havoc Pennington  <hp@redhat.com>
3604
3605         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
3606         the "char byte_order" next to each other to save 4 bytes
3607         (dbus_message_new_empty_header): reduce preallocation, since the
3608         message cache should achieve a similar effect
3609         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
3610         message cache that keeps a few DBusMessage around in a pool,
3611         another 8% speedup or so.
3612
3613         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
3614
3615 2004-11-25  Havoc Pennington  <hp@redhat.com>
3616
3617         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
3618         to write, without reading or blocking, try it before the poll()
3619         and skip the poll() if nothing remains to write. This is about a
3620         3% speedup in the echo client/server
3621
3622 2004-11-25  Havoc Pennington  <hp@redhat.com>
3623
3624         The primary change here is to always write() once before adding
3625         the write watch, which gives us about a 10% performance increase.
3626         
3627         * dbus/dbus-transport-unix.c: a number of modifications to cope
3628         with removing messages_pending
3629         (check_write_watch): properly handle
3630         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
3631         messages_pending stuff
3632         (check_read_watch): properly handle WAITING_FOR_MEMORY and
3633         AUTHENTICATED cases
3634         (unix_handle_watch): after writing, see if the write watch can be
3635         removed
3636         (unix_do_iteration): assert that write_watch/read_watch are
3637         non-NULL rather than testing that they aren't, since they 
3638         aren't allowed to be NULL. check_write_watch() at the end so 
3639         we add the watch if we did not finish writing (e.g. got EAGAIN)
3640
3641         * dbus/dbus-transport-protected.h: remove messages_pending call,
3642         since it resulted in too much inefficient watch adding/removing; 
3643         instead we now require that the transport user does an iteration 
3644         after queueing outgoing messages, and after trying the first
3645         write() we add a write watch if we got EAGAIN or exceeded our 
3646         max bytes to write per iteration setting
3647
3648         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
3649         function
3650
3651         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
3652         freed and then accessed, valgrind flagged this bug, fix it
3653
3654         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
3655         as the last valid field plus 1, where really it is equal to the
3656         last valid field. Corrects some message corruption issues.
3657
3658         * dbus/dbus-mainloop.c: verbosity changes
3659
3660         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
3661         instead of aborting in one of the test codepaths
3662
3663         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
3664         caused not printing the pid ever again if a verbose was missing
3665         the newline at the end
3666         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
3667
3668         * dbus/dbus-connection.c: verbosity changes; 
3669         (dbus_connection_has_messages_to_send): new function
3670         (_dbus_connection_message_sent): no longer call transport->messages_pending
3671         (_dbus_connection_send_preallocated_unlocked): do one iteration to
3672         try to write() immediately, so we can avoid the write watch. This
3673         is the core purpose of this patchset
3674         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
3675         dump the outgoing message queue, so nobody will get confused
3676         trying to send them or thinking stuff is pending to be sent
3677
3678         * bus/test.c: verbosity changes
3679
3680         * bus/driver.c: verbosity/assertion changes
3681
3682         * bus/dispatch.c: a bunch of little tweaks to get it working again
3683         because this patchset changes when/where you need to block.
3684
3685 2004-11-23  Havoc Pennington  <hp@redhat.com>
3686
3687         * test/glib/test-profile.c: modify to accept a plain_sockets
3688         argument in which case it will bench plain sockets instead of
3689         libdbus, for comparison purposes.
3690
3691 2004-11-22  Havoc Pennington  <hp@redhat.com>
3692
3693         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
3694         threads for more time, so sysprof can get a grip on it.
3695
3696         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
3697         pointless variable
3698
3699 2004-11-13  Havoc Pennington  <hp@redhat.com>
3700
3701         * test/glib/test-profile.c: fix this thing up a bit
3702
3703         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
3704         preallocation sizes by a fair bit; not sure if this will be an
3705         overall performance win or not, but it does reduce reallocs.
3706
3707         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
3708         the test hack that forced constant realloc if asserts are
3709         disabled, so we can profile sanely. Sprinkle in some
3710         _DBUS_UNLIKELY() which are probably pointless, but before I
3711         noticed the real performance problem I put them in.
3712         (_dbus_string_validate_utf8): micro-optimize this thing a little
3713         bit, though callgrind says it didn't help; then special-case
3714         ascii, which did help a lot; then be sure we detect nul bytes as
3715         invalid, which is a bugfix.
3716         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
3717         superstition; use memset to nul the padding instead of a manual
3718         loop.
3719         (_dbus_string_get_length): inline this as a
3720         macro; it showed up in the profile because it's used for loop
3721         tests and so forth
3722
3723 2004-11-10  Colin Walters  <walters@verbum.org>
3724
3725         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
3726         for extra paranoia.
3727
3728 2004-11-09  Colin Walters  <walters@verbum.org>
3729
3730         * dbus/dbus-string.c (_dbus_string_get_length): New
3731         function, writes DBusString to C buffer.
3732
3733         * dbus/dbus-string.h: Prototype it.
3734
3735         * dbus/dbus-message.c (dbus_message_type_to_string): New
3736         function, converts message type into C string.
3737
3738         * dbus/dbus-message.h: Prototype it.
3739
3740         * bus/selinux.c (bus_selinux_check): Take source pid,
3741         target pid, and audit data.  Pass audit data to
3742         avc_has_perm.
3743         (log_audit_callback): New function, appends extra
3744         audit information.
3745         (bus_selinux_allows_acquire_service): Also take
3746         service name, add it to audit data.
3747         (bus_selinux_allows_send): Also take message
3748         type, interface, method member, error name,
3749         and destination, and add them to audit data.
3750         (log_cb): Initialize func_audit.
3751         
3752         * bus/selinux.h (bus_selinux_allows_acquire_service)
3753         (bus_selinux_allows_send): Update prototypes 
3754
3755         * bus/services.c (bus_registry_acquire_service): Pass
3756         service name to bus_selinux_allows_acquire_service.
3757
3758         * bus/bus.c (bus_context_check_security_policy): Pass
3759         additional audit data.  Move assignment of dest
3760         to its own line.
3761
3762 2004-11-07  Colin Walters  <walters@verbum.org>
3763
3764         * dbus/dbus-transport-unix.c (do_authentication): Always
3765         initialize auth_completed.
3766         
3767 2004-11-07  Colin Walters  <walters@verbum.org>
3768
3769         * bus/bus.c (load_config): Break into three
3770         separate functions: process_config_first_time_only,
3771         process_config_every_time, and process_config_postinit.
3772         (process_config_every_time): Move call of
3773         bus_registry_set_service_context_table into
3774         process_config_postinit.
3775         (process_config_postinit): New function, does
3776         any processing that needs to happen late
3777         in initialization (and also on reload).
3778         (bus_context_new): Instead of calling load_config,
3779         open config parser here and call process_config_first_time_only
3780         and process_config_every_time directly.  Later, after
3781         we have forked but before changing UID,
3782         invoke bus_selinux_full_init, and then call
3783         process_config_postinit.
3784         (bus_context_reload_config): As in bus_context_new,
3785         load parse file inside here, and call process_config_every_time
3786         and process_config_postinit.
3787
3788         * bus/services.h, bus/services.c
3789         (bus_registry_set_service_context_table): Rename
3790         from bus_registry_set_sid_table.  Take string hash from config
3791         parser, and convert them here into SIDs.
3792
3793         * bus/config-parser.c (struct BusConfigParser): Have
3794         config parser only store a mapping of service->context
3795         string.
3796         (merge_service_context_hash): New function.
3797         (merge_included): Merge context string hashes instead
3798         of using bus_selinux_id_table_union.
3799         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
3800         simply create a new string hash.
3801         (bus_config_parser_unref): Unref it.
3802         (start_selinux_child): Simply insert strings into hash,
3803         don't call bus_selinux_id_table_copy_over.
3804
3805         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
3806         (bus_selinux_id_table_copy_over): Delete.
3807
3808 2004-11-03  Colin Walters  <walters@verbum.org>
3809
3810         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
3811         variables.
3812         
3813 2004-11-03  Colin Walters  <walters@verbum.org>
3814
3815         * bus/test-main.c (test_pre_hook): Fix test logic,
3816         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
3817
3818 2004-11-02  Colin Walters  <walters@redhat.com>
3819
3820         * bus/selinux.c (bus_selinux_init): Split into two functions,
3821         bus_selinux_pre_init and bus_selinux_post_init.
3822         (bus_selinux_pre_init): Just determine whether SELinux is
3823         enabled.
3824         (bus_selinux_post_init): Do everything else.
3825
3826         * bus/main.c (main): Call bus_selinux_pre_init before parsing
3827         config file, and bus_selinux_post_init after.  This ensures that
3828         we don't lose the policyreload notification thread that
3829         bus_selinux_init created before forking previously.
3830         
3831         * bus/test-main.c (test_pre_hook): Update for split.
3832
3833 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
3834
3835         Patch from Johan Fischer <linux@fischaz.com>
3836         
3837         * mono/doc/Makefile.am (install-data-local): Added directory
3838         install for DESTDIR
3839
3840 2004-10-29  Colin Walters  <walters@redhat.com>
3841
3842         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
3843         parameter for fd to write pid to.       
3844
3845         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
3846         
3847         * bus/bus.c (bus_context_new): Pass print_pid_fd
3848         to _dbus_become_daemon (bug #1720)
3849
3850 2004-10-29  Colin Walters  <walters@redhat.com>
3851
3852         Patch from Ed Catmur <ed@catmur.co.uk>
3853
3854         * mono/doc/Makefile.am (install-data-local): Handle
3855         DESTDIR.
3856
3857 2004-10-29  Colin Walters  <walters@redhat.com>
3858
3859         * bus/.cvsignore, qt/.cvsignore: Update.
3860
3861 2004-10-29  Colin Walters  <walters@redhat.com>
3862
3863         Patch from Kristof Vansant <de_lupus@pandora.be>
3864
3865         * configure.in: Detect Slackware.
3866         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
3867         * bus/rc.messagebus.in: New file.
3868
3869 2004-10-29  Colin Walters  <walters@redhat.com>
3870
3871         * tools/dbus-monitor.c (filter_func): Return
3872         DBUS_HANDLER_RESULT_HANDLED in filter function
3873         for now.  See:
3874         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
3875
3876 2004-10-29  Colin Walters  <walters@redhat.com>
3877
3878         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
3879
3880         * bus/services.c (bus_registry_acquire_service): 
3881         Correctly retrieve service name from DBusString
3882         for printing.
3883
3884 2004-10-29  Colin Walters  <walters@redhat.com>
3885
3886         * dbus/dbus-glib.h: Update documentation to not
3887         refer to internal APIs.
3888
3889 2004-10-27  Joe Shaw  <joeshaw@novell.com>
3890
3891         * mono/Arguments.cs (GetDBusTypeConstructor):
3892         type.UnderlyingSystemType will return "System.Byte" if you do it
3893         on "byte[]", which is not what we want.  So check the type.IsArray
3894         property and use System.Array instead.
3895
3896 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
3897
3898         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
3899         the DBusUserInfo structure since this is passed into the function.
3900         This would cause a double free when the function that allocated
3901         the structure would try to free it when an error occured.
3902
3903         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
3904         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
3905         for service activation to avoid 32bit/64bit parallel install issues
3906
3907 2004-10-21  Colin Walters  <walters@verbum.org>
3908
3909         * AUTHORS: Fix my email address, the @gnu.org one
3910         has been bouncing for some time.  Also add J5.
3911         
3912 2004-10-21  Colin Walters  <walters@verbum.org>
3913
3914         * dbus/dbus-transport-unix.c (do_authentication): Return
3915         authentication status to callers.
3916         (unix_handle_watch): If we completed authentication this round,
3917         don't do another read.  Instead wait until the next iteration,
3918         after we've read any pending data in the auth buffer.
3919         (unix_do_iteration): Ditto.
3920         (unix_handle_watch): Updated for new do_authentication prototype.
3921
3922 2004-10-18  Colin Walters  <walters@verbum.org>
3923
3924         * bus/selinux.c (bus_selinux_enabled): Handle
3925         --disable-selinux case.
3926         
3927 2004-10-18  Colin Walters  <walters@verbum.org>
3928
3929         * bus/selinux.h: Add bus_selinux_enabled.
3930         
3931         * bus/selinux.c (bus_selinux_enabled): Implement it.
3932         
3933         * bus/config-parser.c (struct include): Add
3934         if_selinux_enabled member.
3935         (start_busconfig_child): Parse if_selinux_enabled
3936         attribute for include.
3937         (bus_config_parser_content): Handle it.
3938
3939         * bus/session.conf.in, bus/system.conf.in: Add
3940         inclusion of context mapping to default config files;
3941         conditional on SELinux being enabled.
3942         
3943         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
3944         
3945         * test/data/invalid-config-files/badselinux-1.conf, 
3946         test/data/invalid-config-files/badselinux-2.conf:
3947         Test files for bad syntax.
3948         
3949 2004-10-17  Colin Walters  <walters@verbum.org>
3950
3951         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
3952         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
3953         format specifier mismatches.
3954
3955 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3956
3957         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
3958         format string.
3959
3960         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
3961         pointer (bug #1540, Leonardo Boiko).
3962
3963 2004-09-28  Jon Trowbridge  <trow@ximian.com>
3964
3965         * mono/BusDriver.cs: Changed BusDriver struct to remove
3966         the ServiceCreated and ServiceDeleted events and replace them
3967         with the new ServiceOwnerChanged event.
3968
3969         * mono/example/BusListener.cs: Added a new example program,
3970         which listens for and reports any ServiceOwnerChanged events
3971         on the bus driver.
3972
3973         * mono/example/Makefile.am (DESTDIR): Build changes for the
3974         new BusListener.cs example.
3975
3976 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3977
3978         * bus/signals.c (bus_match_rule_parse): validate the components of
3979         match rules (bug #1439).
3980
3981         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
3982
3983 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3984
3985         * doc/dbus-specification.xml: document ServiceOwnerChanged
3986         signal.
3987         
3988         * bus/driver.c, bus/driver.h, bus/services.c: Use
3989         ServiceOwnerChanged signal instead of ServiceCreated and
3990         ServiceDeleted.
3991         
3992         * bus/dispatch.c: update testcase for the new signal.
3993
3994 2004-09-20  Jon Trowbridge  <trow@ximian.com>
3995
3996         Patch from Nat Friedman <nat@novell.com>
3997
3998         * mono/Makefile.am: A number of small build fixes to allow "make
3999         distcheck" to succeed.
4000
4001         * mono/example/Makefile.am: "make distcheck" fixes.
4002
4003         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
4004         key in @srcdir@.
4005
4006         * test/Makefile.am: "make distcheck" fixes.
4007
4008 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4009
4010         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
4011
4012         * doc/busconfig.dtd: update the DTD for the at_console attribute.
4013
4014         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
4015         messages after the first one (bug #1389).
4016         
4017         * bus/dispatch.c (check_double_hello_message): add a test case for
4018         the double hello message bug.
4019         (check_existent_service_activation): fix check of spawning error.
4020         
4021 2004-09-16  David Zeuthen  <david@fubar.dk>
4022
4023         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
4024
4025 2004-09-12  David Zeuthen  <david@fubar.dk>
4026
4027         Patch from Kay Sievers <kay.sievers@vrfy.org>
4028
4029         * bus/bus.c (bus_context_new):
4030         * bus/bus.h:
4031         * bus/main.c (usage)
4032         (main):
4033         Add commandline option --nofork to override configuration file
4034         setting.
4035
4036 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4037
4038         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
4039         compilers don't like it (bug #974).
4040
4041 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
4042
4043         * qt/connection.*: Applied patch by Jérôme Lodewyck
4044         <lodewyck@clipper.ens.fr> to integrate an existing
4045         connection into the Qt eventloop
4046
4047 2004-08-30  Jon Trowbridge  <trow@ximian.com>
4048
4049         * mono/BusDriver.cs: Added.  This is a class for interacting with
4050         the org.freedesktop.DBus service.
4051
4052         * mono/Message.cs: Added a mechanism to expose the message that is
4053         currently being dispatched via the static Message.Current
4054         property.  Added Message.Sender and Message.Destination
4055         properties.
4056
4057         * mono/Handler.cs: Expose the dispatched message via
4058         Message.Current when handling method calls.
4059
4060         * mono/Service.cs: Expose the dispatched message via
4061         Message.Current when handling signal emissions.
4062         
4063         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
4064         Connection.BaseService property.
4065
4066 2004-08-28  Havoc Pennington  <hp@redhat.com>
4067
4068         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
4069
4070         More fixes from Steve Grubb
4071         
4072         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
4073         (_dbus_listen_tcp_socket): fix fd leak
4074
4075         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
4076         EINTR to a bit lower in the code
4077
4078 2004-08-26  Jon Trowbridge  <trow@ximian.com>
4079
4080         * bus/driver.c (bus_driver_handle_service_exists): Respond with
4081         TRUE if we are inquiring about the existence of the built-in
4082         org.freedesktop.DBus service.
4083
4084 2004-08-25  John Palmieri  <johnp@redhat.com>
4085         * bus/config-parser.c:
4086         (struct PolicyType): Add POLICY_CONSOLE
4087         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
4088         (start_busconfig_child): Sets up console element when
4089         <policy at_console=""> is encountered in a policy file
4090         (append_rule_from_element): Convert console elements to console
4091         rules.
4092
4093         * bus/policy.c: 
4094         (bus_policy_create_client_policy): Add console rules to the client
4095         policy based on if the client is at the console
4096         (bus_policy_append_console_rule): New function for adding a
4097         console rule to a policy
4098         (bus_policy_merge): Handle console rule merging
4099
4100         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
4101         where we check for console user files
4102         
4103         * dbus/dbus-sysdeps.c:
4104         (_dbus_file_exists): New function which checks if the given
4105         file exists
4106         (_dbus_user_at_console): New function which does the system
4107         specific process of checking if the user is at the console
4108
4109         * dbus/dbus-userdb.c:
4110         (_dbus_is_console_user): New function converts a UID to user name
4111         and then calls the system specific _dbus_user_at_console to 
4112         see if the user is at the console and therefor a console user
4113
4114 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4115
4116         * bus/config-parser.c (set_limit):
4117         * bus/dbus-daemon-1.1.in:
4118         * test/data/valid-config-files/many-rules.conf: set the
4119         max_match_rules_per_connection limt from the config file. 
4120
4121         * doc/busconfig.dtd: update the DTD.
4122
4123         * bus/driver.c: remove some unused variables.
4124
4125 2004-08-24  Mikael Hallendal  <micke@imendio.com>
4126
4127         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
4128         it's been replaced by dbus_g_bus_get
4129
4130 2004-08-23  Colin Walters  <walters@redhat.com>
4131
4132         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4133
4134         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
4135
4136         * bus/selinux.c: Create a thread for policy reload notification.
4137         (bus_selinux_get_policy_root): Implement.
4138
4139         * bus/config-parser.c (start_busconfig_child)
4140         (bus_config_parser_content): Support SELinux-root relative
4141         inclusion.
4142
4143         * configure.in <HAVE_SELINUX>: Add -lpthread.
4144         
4145         * bus/test-main.c (test_pre_hook, test_post_hook): New.
4146         (test_post_hook): Move memory checking into here.
4147         (test_pre_hook, test_post_hook): Move SELinux checks in
4148         here, but conditional on a DBUS_TEST_SELINUX environment
4149         variable.  Unfortunately we can't run the SELinux checks
4150         as a normal user, since they won't have any permissions
4151         for /selinux.  So this will have to be tested manually
4152         for now, until we have virtualization for most of
4153         libselinux.
4154         
4155 2004-08-23  Havoc Pennington  <hp@redhat.com>
4156
4157         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
4158         drop supplementary groups, suggested by Steve Grubb
4159
4160 2004-08-20  Colin Walters  <walters@redhat.com>
4161
4162         * bus/config-parser.c (start_busconfig_child): Remove some unused
4163         variables.
4164         
4165         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
4166         warning.
4167
4168 2004-08-17  Joe Shaw  <joeshaw@novell.com>
4169
4170         * configure.in: If --enable-mono is passed in, if we can't find
4171         mono error out.
4172
4173         * mono/Makefile.am: Use /gacutil to install assemblies into the
4174         GAC and not /root.
4175
4176 2004-08-12  Havoc Pennington  <hp@redhat.com>
4177
4178         * NEWS: update for 0.22
4179
4180         * configure.in: release 0.22
4181
4182 2004-08-11  Colin Walters  <walters@redhat.com>
4183
4184         * tools/dbus-send.c (main, usage): Add --reply-timeout
4185         argument.
4186
4187 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4188
4189         * bus/bus.c (process_config_first_time_only): get rid of an unused
4190         DBusError that was causing a memoy leak (bug #989).
4191
4192         * dbus/dbus-keyring.c, dbus/dbus-message.c:
4193         fix compilation on Solaris/Forte C (bug #974)
4194
4195         * bus/main.c (main): plug two minuscule memleaks.
4196
4197 2004-08-10  Havoc Pennington  <hp@redhat.com>
4198
4199         * doc/dbus-tutorial.xml: add some more info on GLib bindings
4200
4201 2004-08-09  Havoc Pennington  <hp@redhat.com>
4202
4203         * COPYING: switch to Academic Free License version 2.1 instead of
4204         2.0, to resolve complaints about patent termination clause.
4205
4206 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
4207
4208         * README: added documentation for the --enable-python 
4209         configure switch.
4210
4211 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4212
4213         * bus/config-parser.c (bus_config_parser_new): fix an invalid
4214         _unref in the SELinux support.
4215
4216         * doc/busconfig.dtd: update DTD for SELinux support.
4217
4218         * bus/config-loader-libxml.c: fix error handler and parser
4219         initialisation/cleanup. OOM test now works with libxml2 HEAD.
4220
4221         * configure.in: remove the warning about libxml2.
4222
4223         * dbus/dbus-bus.c: silence doxygen warning.
4224
4225 2004-07-31  Colin Walters  <walters@redhat.com>
4226
4227         * configure.in: Move #error in SELinux check to its own line.
4228
4229 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4230
4231         * dbus/dbus-internals.h (_DBUS_SET_OOM):
4232         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
4233         dbus_error_set.
4234
4235         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
4236         broken by the change in the _SET_OOM macros.
4237
4238 2004-07-31  Colin Walters  <walters@redhat.com>
4239
4240         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
4241         BUS_SET_OOM.
4242
4243 2004-07-31  Colin Walters  <walters@redhat.com>
4244
4245         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
4246         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
4247         AC_MSG_CHECKING.
4248
4249 2004-07-24  Havoc Pennington  <hp@redhat.com>
4250
4251         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4252
4253         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
4254         functionality
4255
4256         * configure.in: add --enable-selinux
4257         
4258         * bus/policy.c (bus_policy_merge): add FIXME to a comment
4259
4260         * bus/main.c (main): initialize and shut down selinux
4261
4262         * bus/connection.c: store SELinux ID on each connection, to avoid 
4263         repeated getting of the string context and converting it into 
4264         an ID
4265
4266         * bus/bus.c (bus_context_get_policy): new accessor, though it
4267         isn't used
4268         (bus_context_check_security_policy): check whether the security
4269         context of sender connection can send to the security context of
4270         recipient connection
4271
4272         * bus/config-parser.c: add parsing for <selinux> and <associate>
4273         
4274         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
4275         implement dbus_connection_get_unix_fd()
4276
4277         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
4278         function, used by the selinux stuff
4279         
4280 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4281
4282         * bus/config-loader-libxml.c: complete the implementation of
4283         libxml backend for config file loader. Doesn't work with full OOM
4284         test yet. 
4285         
4286         * configure.in: change error when selecting libxml into a warning.
4287         
4288         * test/data/invalid-config-files: add two non-well-formed XML
4289         files. 
4290         
4291         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
4292         
4293         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
4294         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
4295         be necessary to read all the buffer. (bug #894)
4296
4297         * bus/activation.c (bus_activation_activate_service): fix a
4298         potential assertion failure (bug #896). Small optimization in the
4299         case of auto-activation messages.
4300
4301         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
4302         add test case for byte-through-vararg bug (#901). patch by Kimmo
4303         Hämäläinen. 
4304
4305 2004-07-28  Anders Carlsson  <andersca@gnome.org>
4306
4307         * python/dbus.py:
4308         * python/dbus_bindings.pyx.in:
4309         Add dbus.init_gthreads (), allow emit_signal to pass
4310         arguments to the signal.
4311         
4312 2004-07-24  Havoc Pennington  <hp@redhat.com>
4313
4314         * AUTHORS: add some people, not really comprehensively, let me
4315         know if I missed you
4316
4317 2004-07-24  Havoc Pennington  <hp@redhat.com>
4318
4319         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
4320         Owen
4321
4322         * test/Makefile.am (DIST_SUBDIRS): here also
4323
4324 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4325
4326         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
4327         breaking build on Solaris, reported by Farhad Saberi on the ML.
4328
4329         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
4330         va_arg invocation to account for integer promotion in the case of
4331         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
4332
4333         * bus/services.c (bus_service_remove_owner): fix bug #902, use
4334         _dbus_list_get_first_link, not _dbus_list_get_first.
4335
4336         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
4337
4338         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
4339         handler functions so that the asserts in _dbus_object_subtree_unref
4340         do not fail.
4341
4342         * dbus/dbus-transport-unix.c (do_reading):
4343         _dbus_transport_queue_messages return value is of type
4344         dbus_bool_t, not DBusDispatchStatus.
4345         
4346 2004-07-19  David Zeuthen  <david@fubar.dk>
4347
4348         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
4349
4350         * bus/dispatch.c:
4351         (check_get_connection_unix_user): Debug says GetProperty; but the
4352         method is called GetConnectionUnixUser
4353         (check_get_connection_unix_process_id): New function
4354         (bus_dispatch_test): Actually call check_get_connection_unix_user();
4355         also call check_get_connection_unix_process_id()
4356         
4357         * bus/driver.c:
4358         (bus_driver_handle_get_connection_unix_process_id): New function,
4359         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
4360         interface
4361         
4362         * dbus/dbus-auth.c:
4363         (handle_server_data_external_mech): Set pid from the credentials
4364         obtained from the socket
4365         
4366         * dbus/dbus-connection.c:
4367         (dbus_connection_get_unix_process_id): New function
4368         
4369         * dbus/dbus-connection.h: 
4370         Add prototype for dbus_connection_get_unix_process_id
4371         
4372         * dbus/dbus-transport.c:
4373         (_dbus_transport_get_unix_process_id): New function
4374         
4375         * dbus/dbus-transport.h:
4376         Add prototype for _dbus_transport_get_unix_process_id
4377         
4378 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4379
4380         * dbus/dbus-message.c: Message counter fix, patch by Christian
4381         Hammond <chipx86@gnupdate.org>
4382
4383 2004-07-18  Seth Nickell  <seth@gnome.org>
4384
4385         * python/dbus.py:
4386         * python/dbus_bindings.pyx.in:
4387         * python/tests/test-client.py:
4388
4389         Add dbus.ByteArray and dbus_bindings.ByteArray
4390         types so that byte streams can be passed back.
4391
4392         Give jdahlin the heaps of credit that are so
4393         rightfully his.
4394         
4395 2004-07-12  Seth Nickell  <seth@gnome.org>
4396
4397         * python/dbus.py:
4398
4399         Add message argument to the default object_method_handler
4400         function.
4401         
4402         * python/dbus_bindings.pyx.in:
4403
4404         Automatically return NIL when passed an empty list
4405         (we can't pass back a list since lists are typed
4406         and we don't have any idea what type the the client
4407         intended the list to be... :-( )
4408         
4409 2004-07-10  Seth Nickell  <seth@gnome.org>
4410
4411         * python/examples/Makefile.am:
4412
4413         Fix distcheck breakage caused by new examples.
4414
4415 2004-07-10  Seth Nickell  <seth@gnome.org>
4416
4417         * python/dbus.py:
4418
4419         Add "message" argument to service-side dbus.Object
4420         methods. This will break existing services written
4421         using the python bindings, but will allow extraction
4422         of all the message information (e.g. who its from).
4423
4424         Add improved "object oriented" signal handling/emission.
4425         
4426         * python/examples/example-service.py:
4427
4428         Nix this example.
4429         
4430         * python/examples/example-signal-emitter.py:
4431         * python/examples/example-signal-recipient.py:
4432
4433         Two new examples that show how to emit and receive
4434         signals using the new APIs.
4435         
4436         * python/examples/example-signals.py:
4437         * python/examples/gconf-proxy-service.py:
4438         * python/examples/gconf-proxy-service2.py:
4439
4440         Add "message" argument to service methods.
4441
4442 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
4443
4444         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
4445         * dbus/bus.c (dbus_bus_get_unix_user)
4446         * doc/dbus-specification.xml: implement GetConnectionUnixUser
4447         method of org.freedesktop.DBus interface.
4448
4449         * bus/dispatch.c: test case
4450
4451 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
4452
4453         * python/Makefile.am: switched include directory from glib/ to dbus/
4454         since dbus-glib.h moved
4455  
4456 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4457
4458         * configure.in: prevent building the gcj stuff and libxml loader
4459         since they are broken.
4460
4461 2004-06-20  Havoc Pennington  <hp@redhat.com>
4462
4463         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
4464         codes from the dbus error names
4465         
4466         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
4467         as dbus/dbus-glib.h and that breakage is now visible due to 
4468         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
4469         
4470         * glib/dbus-glib.h: s/gproxy/g_proxy/
4471
4472         * dbus/dbus-shared.h: new header to hold stuff shared with
4473         binding APIs
4474         
4475         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
4476         than dbus-errors.h
4477
4478         * glib/dbus-glib.h (dbus_set_g_error): move to
4479         dbus-glib-lowlevel.h
4480
4481         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
4482         of stuff to enable this
4483
4484         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
4485
4486         * a bunch of other changes with the same basic "separate glib 
4487         bindings from dbus.h" theme
4488         
4489 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
4490
4491         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
4492
4493         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
4494
4495 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4496
4497         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
4498         the reply value of the ServiceExists message.
4499
4500 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
4501
4502         * python/dbus_bindings.pyx.in: No longer need to parse path
4503         elements and pass them as arrays of strings.  The C API now
4504         accepts plain path strings.
4505         (_build_parsed_path): removed 
4506
4507 2004-06-07  Havoc Pennington  <hp@redhat.com>
4508
4509         * doc/TODO: remove auto-activation item since it's done; sort
4510         items by importance/milestone
4511
4512 2004-06-07  Havoc Pennington  <hp@redhat.com>
4513
4514         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
4515         random signature when using REQUIRED_FIELDS (this hack won't work
4516         in the long term)
4517
4518         * dbus/dbus-message.c: change the signature to be a header field,
4519         instead of message->signature special-case string. Incremental
4520         step forward. Then we can fix up code to send the signature in the
4521         message, then fix up code to validate said signature, then fix up
4522         code to not put the typecodes inline, etc.
4523         (load_one_message): don't make up the signature after the fact
4524         (decode_header_data): require signature field for the known
4525         message types
4526
4527         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
4528
4529         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
4530
4531 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
4532
4533         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
4534
4535         * mono/Handler.cs: Updated to follow new path argument for
4536         (un-)registering objects.
4537
4538         * mono/example/Makefile.am:
4539         * mono/Makefile.am:
4540         * configure.in: Bumped required version for mono and use new -pkg
4541         syntax for deps
4542
4543 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4544
4545         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
4546         registration functions take the path argument as char* instead of
4547         char**.
4548
4549         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
4550         split off the path decompostion part of
4551         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
4552         warnings. 
4553
4554         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
4555         
4556 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
4557  
4558         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
4559         machine approach.  A state is implemented as a function that
4560         handles incoming events as specified for that state.
4561         
4562         * doc/dbus-specification.xml: Update auth protocol state machine
4563         specification to match implementation.  Remove some leftover
4564         base64 examples.
4565
4566 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
4567
4568         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
4569         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
4570         quiet doxygen.
4571
4572         * Doxyfile.in: remove deprecated options.
4573
4574         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
4575         glib/test-thread.h, glib/test-thread-client.c,
4576         glib/test-thread-server.c, glib/test-profile.c,
4577         glib/test-dbus-glib.c: remove these unused files.
4578
4579 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4580
4581         * dbus/dbus-object-tree.c
4582         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
4583         non-fallback handlers (bug #684).
4584         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
4585         (find_subtree_recurse): report wether the returned subtree is an
4586         exact match or a "fallback" match higher up in the tree.
4587         (object_tree_test_iteration): update test case.
4588
4589 2004-06-01  Seth Nickell  <seth@gnome.org>
4590
4591         * python/dbus_bindings.pyx.in:
4592         * python/tests/test-client.py:
4593
4594         Round off basic type support. Add dicts (yay!), and 
4595         remaining array types.
4596
4597         Make MessageIter more general so it works for dicts too.
4598
4599         Mark all loop variables as C integers.
4600         
4601 2004-05-31  Havoc Pennington  <hp@redhat.com>
4602
4603         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
4604         "in" before "out"
4605
4606         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
4607
4608         * glib/dbus-glib-tool.c (main): set up to have a --self-test
4609         option that runs the tests, and start filling in some code
4610         including for starters just dumping the interfaces to stdout
4611
4612         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
4613
4614         * test/data/valid-introspection-files/lots-of-types.xml: test of
4615         an example introspection file
4616
4617         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
4618         "node" (I think...)
4619
4620 2004-05-31  Seth Nickell  <seth@gnome.org>
4621
4622         * python/dbus_bindings.pyx.in:
4623         * python/tests/test-client.py:
4624
4625         Test Suite: 1
4626         Python Bindings: 0
4627
4628         Fix string array memory trashing bug... oops...
4629
4630 2004-05-30  Seth Nickell  <seth@gnome.org>
4631
4632         * python/dbus.py:
4633
4634         Add a nicer-but-less-flexible alternate API for handling 
4635         calls to virtual objects in dbus.ObjectTree.
4636
4637         Screw up the argument order to the dbus.Object constructor
4638         for consistency with dbus.ObjectTree (and to make dbus_methods
4639         optional for future extension)
4640         
4641         * python/examples/Makefile.am:
4642         * python/examples/gconf-proxy-service.py:
4643         * python/examples/gconf-proxy-service2.py:
4644
4645         Alternate implementation of gconf-proxy-service using the
4646         nicer dbus.ObjectTree API.
4647         
4648         * python/examples/example-service.py:
4649         * python/tests/test-server.py
4650
4651         Reverse the argument order to deal with dbus.Object constructor
4652         changes.
4653         
4654 2004-05-30  Seth Nickell  <seth@gnome.org>
4655
4656         * python/examples/example-client.py:
4657         * python/examples/example-service.py:
4658
4659         Take it back. Lists seem to work but they're broken
4660         in the test suite. Make the base examples use
4661         lists (works fine).
4662
4663 2004-05-30  Seth Nickell  <seth@gnome.org>
4664
4665         * python/dbus_bindings.pyx.in:
4666         * python/tests/test-client.py:
4667
4668         Add some more tests and fix errors that crop up.
4669         Unfortunately, currently it seems like marshalling
4670         and unmarshalling of lists is completely broken :-(
4671
4672 2004-05-30  Seth Nickell  <seth@gnome.org>
4673
4674         * python/dbus_bindings.pyx.in:
4675
4676         Add support for ObjectPath type.
4677
4678         * python/dbus.py:
4679
4680         Refactor message handling code to a common function.
4681         
4682         * python/tests/test-client.py:
4683         * python/tests/test-server.py:
4684
4685         Add tests that check to make sure values of all types
4686         can be echoed from a service w/o mangling.
4687         
4688 2004-05-29  Seth Nickell  <seth@gnome.org>
4689
4690         * python/dbus.py:
4691
4692         Add ObjectTree class which allows implementation
4693         of trees of "virtual" objects. Basically the python
4694         wrapper for "register_fallback".
4695         
4696         * python/examples/Makefile.am
4697         * python/examples/gconf-proxy-client.py:
4698         * python/examples/gconf-proxy-service.py:
4699
4700         Implement a simple GConf proxy service that supports
4701         get/set on string and int GConf keys using the ObjectTree.
4702         
4703 2004-05-29  Seth Nickell  <seth@gnome.org>
4704
4705         * python/dbus.py:
4706         * python/examples/example-client.py:
4707         * python/examples/example-service.py:
4708         * python/examples/list-system-services.py:
4709
4710         Add SessionBus, SystemBus and ActivationBus classes
4711         so you don't need to know the special little BUS_TYPE
4712         flag.
4713         
4714 2004-05-29  Havoc Pennington  <hp@redhat.com>
4715
4716         * bus/config-parser.c (process_test_valid_subdir): temporarily
4717         stop testing config parser OOM handling, since expat has issues
4718         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
4719
4720         * bus/dbus-daemon-1.1.in: change requested_reply to
4721         send_requested_reply/receive_requested_reply so we can send the
4722         replies, not just receive them.
4723
4724         * bus/config-parser.c: parse the new
4725         send_requested_reply/receive_requested_reply
4726
4727         * bus/policy.c (bus_client_policy_check_can_send): add
4728         requested_reply argument and use it
4729
4730         * bus/bus.c (bus_context_check_security_policy): pass through
4731         requested_reply status to message send check
4732
4733         * bus/system.conf.in: adapt to requested_reply change
4734         
4735 2004-05-28  Havoc Pennington  <hp@redhat.com>
4736
4737         * test/glib/test-service-glib.c (main): remove unused variable
4738
4739         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
4740
4741         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
4742         from the enum, no longer in use.
4743
4744         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
4745         works right.
4746
4747         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
4748         whether error_name passed in is a valid error name.
4749
4750 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
4751
4752         * dbus/dbus-message.c (dbus_message_get_args): Added support for
4753         OBJECT_PATH and OBJECT_PATH_ARRAY
4754
4755 2004-05-28  Seth Nickell  <seth@gnome.org>
4756
4757         * python/examples/Makefile.am:
4758
4759         Forget to add Makefile.am. Do not pass go.
4760
4761 2004-05-28  Michael Meeks  <michael@ximian.com>
4762
4763         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
4764         fix no int64 case.
4765
4766         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
4767
4768         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
4769         (_dbus_message_iter_get_basic_type_array): impl.
4770         drastically simplify ~all relevant _get methods to use these.
4771         (_dbus_message_iter_append_basic_array),
4772         (dbus_message_iter_append_basic): impl
4773         drastically simplify ~all relevant _append methods to use these.
4774
4775         * dbus/dbus-message-builder.c (parse_basic_type) 
4776         (parse_basic_array, lookup_basic_type): impl.
4777         (_dbus_message_data_load): prune scads of duplicate /
4778         cut & paste coding.
4779
4780         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
4781         (_dbus_demarshal_basic_type): implement,
4782         (demarshal_and_validate_len/arg): beef up debug.
4783         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
4784
4785 2004-05-27  Seth Nickell  <seth@gnome.org>
4786
4787         * configure.in:
4788         * python/Makefile.am:
4789
4790         Include the example python apps in the tarball.
4791         
4792         * python/examples/list-system-services.py
4793
4794         Add a python new example that fetches the list of services
4795         from the system bus.
4796         
4797 2004-05-27  Seth Nickell  <seth@gnome.org>
4798
4799         * python/dbus.py:
4800         * python/dbus_bindings.pyx.in:
4801
4802         Fix failure to notify that a signal was not handled,
4803         resulted in hung functions.
4804         
4805 2004-05-25  Colin Walters  <walters@redhat.com>
4806
4807         * tools/dbus-monitor.c (main): Monitor all types of messages.
4808
4809 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
4810
4811         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
4812         which unregisters the object path and disposes the handler.
4813
4814 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
4815  
4816         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
4817          
4818         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
4819         operands to && so we call dbus_message_iter_next () for the last
4820         argument also.
4821
4822 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4823
4824         * dbus/dbus-object-tree.c
4825         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
4826         children even if the requested path isn't registered.
4827         (object_tree_test_iteration): test object_tree_list_registered.
4828
4829         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
4830         it to 0.
4831         
4832 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
4833
4834         * doc/TODO: Remove resolved items.
4835
4836         * bus/expirelist.h (struct BusExpireList): remove unused n_items
4837         field.
4838         
4839         * bus/connection.c (bus_connections_expect_reply): Enforce the
4840         per-connection limit on pending replies.
4841         
4842         Patch from Jon Trowbridge <trow@ximian.com>:
4843  
4844         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
4845         up a watch that triggers a config reload when one end of the pipe
4846         becomes readable.
4847         (signal_handler): Instead of doing the config reload in our SIGHUP
4848         handler, just write to the reload pipe and let the associated
4849         watch handle the reload when control returns to the main loop.
4850  
4851         * bus/driver.c (bus_driver_handle_reload_config): Added.
4852         Implements a ReloadConfig method for requesting a configuration
4853         file reload via the bus driver.
4854  
4855 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
4856
4857         * HACKING: Updated release instructions concerning the wiki page.
4858
4859 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
4860
4861         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
4862         filter against auth->allowed_mechs; we only add allowed mechs in
4863         record_mechanisms().
4864  
4865         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
4866         ALLOWED_MECHS to auth-script format so we can set the list of
4867         allowed mechanisms.
4868  
4869         * data/auth/client-out-of-mechanisms.auth-script: New test to
4870         check client disconnects when it is out of mechanisms to try.
4871  
4872         * dbus/dbus-auth.c (process_command): Remove check for lines
4873         longer that 1 MB; we only buffer up maximum 16 kB.
4874  
4875         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4876         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
4877         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
4878         assume there might be unused bytes.
4879  
4880         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
4881         client-out-of-mechs, it is handled in process_reject(). Move check
4882         for max failures to send_rejected(), as it's a server-only thing.
4883
4884         * dbus/dbus-auth.c: Factor out protocol reply code into functions
4885         send_auth(), send_data(), send_rejected(), send_error(),
4886         send_ok(), send_begin() and send_cancel().
4887
4888 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
4889
4890         Remove base64 encoding, replace with hex encoding. Original patch
4891         from trow@ximian.com, added error handling.
4892
4893         * dbus/dbus-string.c (_dbus_string_base64_encode)
4894         (_dbus_string_base64_decode): Remove.
4895         (_dbus_string_hex_decode): Add end_return argument so we can
4896         distinguish between OOM and invalid hex encoding.
4897         (_dbus_string_test): Remove base64 tests and add test case for
4898         invalid hex.
4899
4900         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
4901         Replace base64 with hex.
4902
4903         * test/data/auth/invalid-hex-encoding.auth-script: New test case
4904         for invalid hex encoded data in auth protocol.
4905
4906 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4907
4908         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
4909         leak.
4910
4911 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
4912
4913         * mono/dbus-sharp.dll.config.in: Added for GAC
4914         * mono/dbus-sharp.snk: Added for GAC
4915         * mono/Assembly.cs.in: Added for GAC
4916         * mono/Makefile.am: Changes for GAC installation        
4917         * configure.in: Added refs for dbus-sharp.dll.config.in and
4918         Assembly.cs.in. More fixes for mono testing
4919         * mono/example/Makefile.am: Changed var to CSC
4920         * Makefile.am: Changed flag name to DBUS_USE_CSC
4921
4922 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
4923
4924         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
4925         * mono/doc/*: Added documentation framework
4926         * configure.in: Added monodoc check
4927         * README: Added description of mono configure flags
4928
4929 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
4930
4931         * doc/dbus-specification.xml: Added a "Required" column to the 
4932         header fields table and changed the "zero or more" verbage in
4933         the above paragraph to read "The header must contain the required 
4934         named header fields and zero or more of the optional named header 
4935         fields".
4936         * test/data/invalid-messages/*.message: Added the required PATH 
4937         named header field to the tests so that they don't fail on 
4938         'Missing path field'
4939
4940 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
4941
4942         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
4943         the stack by implicitly defining variable and parameter types and
4944         removing the hack of defining C pointers as python objects and later
4945         casting them.
4946
4947 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
4948
4949         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
4950
4951 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
4952
4953         * mono/DBusType/Dict.cs: Handle empty dicts
4954         * mono/DBusType/Array.cs: Handle empty arrays
4955         * mono/Arguments.cs: Handle empty arguments
4956
4957 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
4958
4959         * dbus-sharp.pc.in: Modified to include include Libs and Requires
4960         field
4961
4962 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
4963
4964         * test/data/valid-messages/standard-*.message: Update message
4965         test scripts to new header field names.
4966
4967 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
4968
4969         * test/break-loader.c (randomly_do_n_things): tracked down buffer
4970         overflow to times_we_did_each_thing array which would chop off the
4971         first character of the failure_dir string. Increased the size of
4972         the array to 7 to reflect the number of random mutation functions
4973         we have.
4974
4975 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
4976
4977         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
4978         unix_server->watch here, it is unreffed in disconnect.
4979         (_dbus_server_new_for_tcp_socket): convert NULL host to
4980         "localhost" here so we don't append NULL to address.
4981         
4982         * dbus/dbus-server.c (_dbus_server_test): Add test case for
4983         various addresses, including tcp with no explicit host.
4984
4985 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4986
4987         * dbus/dbus-message.c (decode_header_data, decode_string_field):
4988         fix incorrect setting of .name_offset in the HeaderField (it was
4989         off by two bytes, positioned right after the name and typecode)
4990
4991         * bus/bus.c (bus_context_new, bus_context_unref): test before
4992         calling dbus_server_free_data_slot and _dbus_user_database_unref
4993         in case of an error.
4994
4995         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
4996         by libdbus-gtool.
4997
4998 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
4999
5000         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
5001         _dbus_poll() instead of select().
5002
5003 2004-04-15  Jon Trowbridge  <trow@ximian.com>
5004
5005         * bus/main.c (signal_handler): Reload the configuration files
5006         on SIGHUP.
5007         (main): Set up our SIGHUP handler.
5008
5009         * bus/bus.c (struct BusContext): Store the config file, user and
5010         fork flag in the BusContext.
5011         (process_config_first_time_only): Added.  Contains the code
5012         (previously in bus_context_new) for setting up the BusContext from
5013         the BusConfigParser that should only be run the first time the
5014         config files are read.
5015         (process_config_every_time): Added.  Contains the code (previously
5016         in bus_context_new) for setting up the BusContext from the
5017         BusConfigParser that should be run every time the config files are
5018         read.
5019         (load_config): Added.  Builds a BusConfigParser from the config
5020         files and passes the resulting structure off to
5021         process_config_first_time_only (assuming this is the first time)
5022         and process_config_every_time.
5023         (bus_context_new): All of the config-related code has been moved
5024         to process_config_first_time_only and process_config_every_time.
5025         Now this function just does the non-config-related initializations
5026         and calls load_config.
5027         (bus_context_reload_config): Added.
5028
5029 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5030
5031         * bus/driver.c (bus_driver_handle_get_service_owner):
5032         implement a GetServiceOwner method.
5033         * doc/dbus-specification.xml: document it.
5034         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
5035         
5036         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
5037         implement, using the bus GetServiceOwner method.
5038
5039         * test/glib/test-dbus-glib.c:
5040         use dbus_gproxy_new_for_service_owner so that we can receive the
5041         signal. 
5042
5043 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
5044
5045         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5046         dbus/dbus-message.c, dbus/dbus-protocol.h
5047         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
5048
5049         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5050         dbus/dbus-message.c, dbus/dbus-protocol.h
5051         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
5052
5053         * dbus/dbus-internals.c (_dbus_header_field_to_string):
5054         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
5055         DBUS_HEADER_FIELD_SENDER resolves to "sender"
5056
5057         * doc/dbus-specification.xml (Header Fields Table):
5058         s/SERVICE/DESTINATION
5059         s/SENDER_SERVICE/SENDER
5060
5061
5062 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5063
5064         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
5065         a few seconds.
5066
5067 2004-04-13  Michael Meeks  <michael@ximian.com>
5068
5069         * glib/dbus-gobject.c (handle_introspect): split out
5070         (introspect_properties): this.
5071         (handle_introspect): implement this.
5072
5073         * test/glib/Makefile.am: use the absolute path so the bus
5074         daemon's chdir ("/") doesn't kill us dead.
5075
5076         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
5077
5078 2004-04-12  Jon Trowbridge  <trow@ximian.com>
5079
5080         * bus/config-parser.c (struct BusConfigParser): Added
5081         included_files field.
5082         (seen_include): Added.  Checks whether or not a file has already
5083         been included by any parent BusConfigParser.
5084         (bus_config_parser_new): Copy the parent's included_files.
5085         (include_file): Track which files have been included, and fail on
5086         circular inclusions.
5087         (process_test_valid_subdir): Changed printf to report if we are
5088         testing valid or invalid conf files.
5089         (all_are_equiv): Changed printf to be a bit clearer about
5090         what we are actually doing.
5091         (bus_config_parser_test): Test invalid configuration files.
5092
5093 2004-04-09  Jon Trowbridge  <trow@ximian.com>
5094
5095         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
5096         argument.  If non-null, the newly-constructed BusConfigParser will
5097         be initialized with the parent's BusLimits instead of the default
5098         values.
5099         (include_file): When including a config file, pass in
5100         the current parser as the parent and then copy the BusLimits
5101         from the included BusConfigParser pack to the current parser.
5102         (process_test_valid_subdir): Renamed from process_test_subdir.
5103         (process_test_equiv_subdir): Added.  Walks through a directory,
5104         descending into each subdirectory and loading the config files
5105         it finds there.  If any subdirectory contains two config files
5106         that don't produce identical BusConfigParser structs, fail.
5107         For now, the BusConfigParser's BusPolicies are not compared.
5108         (bus_config_parser_test): Call both process_test_valid_subdir and
5109         process_test_equiv_subdir.
5110
5111         * bus/config-loader-libxml.c (bus_config_load): Take a parent
5112         argument and pass it along to the call to bus_config_parser_new.
5113         Also made a few small changes to allow this code to compile.
5114
5115         * bus/config-loader-expat.c (bus_config_load): Take a parent
5116         argument and pass it along to the call to bus_config_parser_new.
5117
5118         * bus/bus.c (bus_context_new): Load the config file
5119         with a NULL parent argument.
5120
5121 2004-03-29  Michael Meeks  <michael@ximian.com>
5122
5123         * glib/dbus-gobject.c (introspect_properties): split
5124         out, fix mangled 'while' flow control.
5125         (introspect_signals): implement.
5126         (handle_introspect): update.
5127
5128 2004-03-29  Michael Meeks  <michael@ximian.com>
5129
5130         * glib/dbus-gobject.c (set_object_property): split out / 
5131         re-work, use the property type, and not the message type(!)
5132         (get_object_property): ditto.
5133
5134         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
5135         (dbus_gvalue_marshal): make this code re-usable, needed
5136         for signals too, also on both proxy and server side.
5137         Re-write for more efficiency / readability.
5138
5139 2004-03-29  Michael Meeks  <michael@ximian.com>
5140
5141         * dbus/dbus-message.c
5142         (dbus_message_new_error_printf): impl.
5143
5144         * dbus/dbus-connection.c
5145         (dbus_connection_unregister_object_path): fix warning.
5146
5147         * configure.in: fix no-mono-installed situation.
5148
5149 2004-03-27  Havoc Pennington  <hp@redhat.com>
5150
5151         Patch from Timo Teräs:
5152         
5153         * tools/dbus-send.c (main): if --print-reply, assume type is
5154         method call; support boolean type args
5155         
5156         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
5157         bunch of memleak and logic bugs
5158         
5159 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
5160
5161         * mono/Arguments.cs:
5162         * mono/Introspector.cs:
5163         * mono/Handler.cs:
5164         * mono/InterfaceProxy.cs:
5165         * mono/Message.cs
5166         * mono/ProxyBuilder.cs:
5167         * mono/Service.cs:
5168         Added InterfaceProxy class to avoid building proxies for every
5169         object.
5170
5171         * dbus-message.h:
5172         * dbus-message.c (dbus_message_append_args_valist)
5173         (dbus_message_iter_get_object_path)
5174         (dbus_message_iter_get_object_path_array)
5175         (dbus_message_iter_append_object_path)
5176         (dbus_message_iter_append_object_path_array):
5177         Added object_path iter functions to handle OBJECT_PATH arguments
5178         
5179 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
5180
5181         First checkin of mono bindings.
5182         * configure.in:
5183         * Makefile.am:
5184         Build stuff for the bindings
5185         * dbus-sharp.pc.in: Added for pkgconfig
5186         
5187 2004-03-21  Havoc Pennington  <hp@redhat.com>
5188
5189         * test/test-service.c (main): remove debug spew
5190
5191 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5192
5193         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
5194         arrays
5195
5196         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
5197         (dbus_message_iter_init_array_iterator)
5198         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
5199         indicate whether the iterator is empty
5200
5201         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
5202         warnings
5203
5204 2004-03-19  Havoc Pennington  <hp@redhat.com>
5205
5206         * NEWS: 0.21 updates
5207
5208         * configure.in: 0.21
5209
5210         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
5211         
5212         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
5213         you don't need pyrex to make dist
5214
5215         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
5216         sources; run moc
5217         
5218 2004-03-18  Richard Hult  <richard@imendio.com>
5219
5220         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
5221         (dbus_message_set_auto_activation): Add doxygen docs.
5222
5223 2004-03-16  Richard Hult  <richard@imendio.com>
5224
5225         * bus/activation.c: (bus_activation_service_created),
5226         (bus_activation_send_pending_auto_activation_messages),
5227         (bus_activation_activate_service):
5228         * bus/activation.h:
5229         * bus/dispatch.c: (bus_dispatch),
5230         (check_nonexistent_service_auto_activation),
5231         (check_service_auto_activated),
5232         (check_segfault_service_auto_activation),
5233         (check_existent_service_auto_activation), (bus_dispatch_test):
5234         * bus/driver.c: (bus_driver_handle_activate_service):
5235         * bus/services.c: (bus_registry_acquire_service):
5236         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
5237         (dbus_message_get_auto_activation):
5238         * dbus/dbus-message.h:
5239         * dbus/dbus-protocol.h: Implement auto-activation.
5240         
5241         * doc/dbus-specification.xml: Add auto-activation to the spec.
5242
5243 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5244
5245         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
5246         fix a bug with CUSTOM types.
5247
5248         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
5249         a unit test for this bug (used to fail).
5250
5251 2004-03-12  Mikael Hallendal  <micke@imendio.com>
5252
5253         * bus/activation.c:
5254         (babysitter_watch_callback): notify all pending activations waiting for
5255           the same exec that the activation failed.
5256         (bus_activation_activate_service): shortcut the activation if we 
5257           already waiting for the same executable to start up.
5258
5259 2004-03-12  Mikael Hallendal  <micke@imendio.com>
5260
5261         * bus/activation.c: 
5262         - Added service file reloading. 
5263           Each service files directory is kept in an hash table in 
5264           BusActivation and each BusActivationEntry knows what .service-file it
5265           was read from. So when you try to activate a service the bus will 
5266           check if it's been updated, removed or if new .service-files has 
5267           been installed.
5268         - Test code at the bottom for the service file reloading.
5269         * bus/test-main.c: (main):
5270         * bus/test.h:
5271         - added service reloading test.
5272         * dbus/dbus-sysdeps.c: 
5273         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
5274
5275 2004-03-08  Michael Meeks  <michael@ximian.com>
5276
5277         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
5278         bail immediately if disconnected, to avoid busy loop.
5279
5280         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
5281         cleanup cut/paste/inefficiency.
5282
5283 2004-03-01  David Zeuthen  <david@fubar.dk>
5284
5285         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
5286         bug where args were used twice. This bug resulted in a segfault
5287         on a Debian/PPC system when starting the messagebus daemon. Include
5288         dbus-sysdeps.h for DBUS_VA_COPY
5289
5290         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
5291
5292         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
5293         appropriate va_copy implementation. From GLib
5294         
5295 2004-02-24  Joe Shaw  <joe@ximian.com>
5296
5297         * bus/services.c (bus_registry_acquire_service): We need to pass
5298         in the service name to dbus_set_error() to prevent a crash.
5299
5300 2003-12-26  Anders Carlsson  <andersca@gnome.org>
5301
5302         * AUTHORS: Reveal my True identity.
5303
5304 2003-12-17  Mikael Hallendal  <micke@imendio.com>
5305
5306         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
5307         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
5308
5309 2003-12-13  Mikael Hallendal  <micke@imendio.com>
5310
5311         * doc/TODO: Added not about better error check of configuration files.
5312
5313 2003-12-02  Richard Hult  <richard@imendio.com>
5314
5315         * Update AFL version to 2.0 throughout the source files to reflect
5316         the update that was done a while ago.
5317
5318 2003-12-02  Richard Hult  <richard@imendio.com>
5319
5320         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
5321         wrote_dict_key to FALSE on the iter that the dict is appended to,
5322         just like when appending other types. Fixes a bug where a dict
5323         couldn't be put inside a dict.
5324         (dbus_message_iter_append_dict_key): Fix typo in warning message.
5325         (message_iter_test, _dbus_message_test): Add test case for dict
5326         inside dict.
5327
5328 2003-12-01  David Zeuthen  <david@fubar.dk>
5329
5330         * python/dbus.py: Add the actual message when calling the reciever
5331         of a signal such that parameters can be inspected. Add the method
5332         remove_signal_receiver
5333         
5334 2003-11-26  Mikael Hallendal  <micke@imendio.com>
5335
5336         * bus/*.[ch]:
5337         * dbus/*.[ch]:
5338         * glib/*.[ch]: Made ref functions return the pointer
5339
5340 2003-11-25  Zack Rusin  <zack@kde.org>
5341
5342         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
5343
5344         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
5345         wrappers,
5346
5347         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
5348         the Integrator and to better fit with the server,
5349
5350 2003-11-24  Zack Rusin  <zack@kde.org>
5351
5352         * qt/connection.h, qt/connection.cpp: removing initDbus method since
5353         the integrator handles it now
5354
5355         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
5356         since QTimer wasn't really meant to be used the way DBusTimeout is
5357
5358 2003-11-24  Zack Rusin  <zack@kde.org>
5359
5360         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
5361         Integrator class which integrates D-BUS with the Qt event loop,
5362
5363         * qt/connection.h, qt/connection.cpp: Move all the code which
5364         was dealing with D-BUS integration to the Integrator class,
5365         and start using Integrator,
5366
5367 2003-11-23  Zack Rusin  <zack@kde.org>
5368
5369         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
5370         wrapper
5371
5372         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
5373         switching namespaces to DBusQt, reworking the class,
5374
5375         * Makefile.cvs: switching dependencies so that it matches KDE 
5376         schematics,
5377         
5378         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
5379         the library
5380
5381 2003-11-19  Havoc Pennington  <hp@redhat.com>
5382
5383         * NEWS: update
5384
5385         * configure.in: bump version to 0.20
5386
5387         * configure.in (have_qt): add yet another place to look for qt
5388         (someone hand trolltech a .pc file...)
5389
5390 2003-11-01  Havoc Pennington  <hp@redhat.com>
5391
5392         * doc/dbus-specification.xml: add state machine docs on the auth
5393         protocol; just a first draft, I'm sure it's wrong.      
5394
5395 2003-10-28  David Zeuthen  <david@fubar.dk>
5396
5397         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
5398         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
5399         
5400 2003-10-28  Havoc Pennington  <hp@redhat.com>
5401
5402         * dbus/dbus-message.c (get_next_field): delete unused function
5403
5404 2003-10-28  Havoc Pennington  <hp@redhat.com>
5405
5406         * bus/expirelist.c (do_expiration_with_current_time): detect
5407         failure of the expire_func due to OOM
5408
5409         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
5410
5411         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
5412         NoReply error that's now created by the bus when the service exits
5413
5414 2003-10-28  Havoc Pennington  <hp@redhat.com>
5415
5416         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
5417         tests for set_path, set_interface, set_member, etc.
5418
5419         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
5420
5421         * dbus/dbus-message.c (set_string_field): always just delete and
5422         re-append the field; accept NULL for deletion
5423         (re_align_fields_recurse): reimplement
5424         
5425 2003-10-26  Havoc Pennington  <hp@redhat.com>
5426
5427         * dbus/dbus-connection.c: fix docs to properly describe the
5428         disconnected message
5429         (_dbus_connection_notify_disconnected): remove this function; 
5430         we can't synchronously add the disconnected message, we have to 
5431         do it after we've queued any remaining real messages
5432         (_dbus_connection_get_dispatch_status_unlocked): queue the
5433         disconnect message only if the transport has finished queueing all
5434         its real messages and is disconnected.
5435         (dbus_connection_disconnect): update the dispatch status here
5436
5437 2003-10-22  Havoc Pennington  <hp@redhat.com>
5438
5439         * bus/bus.c (bus_context_check_security_policy): fix up assertion
5440
5441         * bus/connection.c (bus_transaction_send_from_driver): set the
5442         destination to the connection's base service
5443
5444 2003-10-20  Havoc Pennington  <hp@redhat.com>
5445
5446         hmm, make check is currently not passing.
5447         
5448         * doc/dbus-specification.xml: add requirement that custom type
5449         names follow the same rules as interface names.
5450
5451         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
5452         duplication and allow 'c' to be 'custom'; dict is now 'm' for
5453         'map'
5454
5455         * doc/dbus-specification.xml: update type codes to match
5456         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
5457         CUSTOM. Add type OBJECT_PATH to the spec.
5458
5459 2003-10-17  Havoc Pennington  <hp@redhat.com>
5460
5461         * bus/driver.c (create_unique_client_name): use "." as separator
5462         in base service names instead of '-'
5463
5464         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
5465         byte at the end of the string
5466
5467         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
5468         optimization macros since string validation seems to be a slow
5469         point.
5470         
5471         * doc/dbus-specification.xml: restrict valid
5472         service/interface/member/error names. Add test suite code for the
5473         name validation.
5474
5475         * dbus/dbus-string.c: limit service/interface/member/error names 
5476         to [0-9][A-Z][a-z]_
5477
5478         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
5479         format arg to verbose spew
5480
5481         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
5482         memory, return instead of g_error
5483
5484         * test/test-service.c (path_message_func): support emitting a
5485         signal on request
5486
5487         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
5488         activation bus type if DBUS_BUS_ACTIVATION was set; default to
5489         assuming the activation bus was the session bus so that services
5490         started manually will still register.
5491         (init_connections_unlocked): fix so that in OOM situation we get
5492         the same semantics when retrying the function
5493         
5494         * test/test-service.c (main): change to use path registration, to
5495         test those codepaths; register with DBUS_BUS_ACTIVATION rather
5496         than DBUS_BUS_SESSION
5497
5498 2003-10-16  Havoc Pennington  <hp@redhat.com>
5499
5500         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
5501
5502         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
5503         coverage of the tests
5504         (coverage-report.txt): don't move the .da and .bbg files around
5505
5506 2003-10-16  Havoc Pennington  <hp@redhat.com>
5507
5508         * bus/bus.c (struct BusContext): remove struct field I didn't mean
5509         to put there
5510
5511 2003-10-16  Havoc Pennington  <hp@redhat.com>
5512
5513         * bus/connection.c (bus_pending_reply_expired): either cancel or
5514         execute, not both
5515         (bus_connections_check_reply): use unlink, not remove_link, as we
5516         don't want to free the link; fixes double free mess
5517
5518         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
5519         where no reply was received
5520
5521         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
5522         fix a refcount leak
5523
5524         * bus/signals.c (match_rule_matches): add special cases for the
5525         bus driver, so you can match on sender/destination for it.
5526
5527         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
5528         DBUS_PRINT_BACKTRACE is set
5529
5530         * dbus/dbus-internals.c: add pid to assertion failure messages
5531
5532         * dbus/dbus-connection.c: add message type code to the debug spew
5533
5534         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
5535         sender=foo not service=foo
5536
5537         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
5538         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
5539         DBUS_ACTIVATION_ADDRESS instead
5540
5541         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
5542         DBUS_SYSTEM_BUS_ADDRESS if appropriate
5543
5544         * bus/bus.c (bus_context_new): handle OOM copying bus type into
5545         context struct
5546
5547         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
5548         (dbus_message_iter_get_object_path_array): new function (half
5549         finished, disabled for the moment)
5550         
5551         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
5552         DBUS_MESSAGE_TYPE_ERROR
5553
5554         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
5555         avoid redirecting stderr to /dev/null
5556         (babysit): close stdin if not doing the "exit_with_session" thing
5557
5558         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
5559         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
5560         stdout/stdin, so things don't get confused
5561         
5562         * bus/system.conf.in: fix to allow replies, I modified .conf
5563         instead of .conf.in again.
5564
5565 2003-10-14  David Zeuthen  <david@fubar.dk>
5566
5567         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
5568         argtype to arg_type when raising unknown arg type exception.
5569         Changed type list to reflect the changes in dbus-protocol.h so 
5570         the bindings actually work.
5571
5572 2003-10-14  Havoc Pennington  <hp@redhat.com>
5573
5574         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
5575         to have a bug keeping it from outputting the .da files sometimes
5576         (string_get_string): don't append garbage nul bytes to the string.
5577
5578 2003-10-15  Seth Nickell  <seth@gnome.org>
5579
5580         * python/Makefile.am:
5581
5582         Include dbus_h_wrapper.h in the dist tarball.
5583
5584 2003-10-14  Havoc Pennington  <hp@redhat.com>
5585
5586         * bus/bus.c (bus_context_check_security_policy): revamp this to
5587         work more sanely with new policy-based requested reply setup
5588
5589         * bus/connection.c (bus_transaction_send_from_driver): set bus
5590         driver messages as no reply
5591
5592         * bus/policy.c (bus_client_policy_check_can_receive): handle a
5593         requested_reply attribute on allow/deny rules
5594
5595         * bus/system.conf: add <allow requested_reply="true"/>
5596
5597         * bus/driver.c (bus_driver_handle_message): fix check for replies
5598         sent to the bus driver, which was backward. How did this ever work
5599         at all though? I think I'm missing something.
5600
5601         * dbus/dbus-message.c (decode_header_data): require error and
5602         method return messages to have a reply serial field to be valid
5603         (_dbus_message_loader_queue_messages): break up this function;
5604         validate that reply serial and plain serial are nonzero; 
5605         clean up the OOM/error handling.
5606         (get_uint_field): don't return -1 from this
5607         (dbus_message_create_header): fix signed/unsigned bug
5608
5609         * bus/connection.c (bus_connections_expect_reply): save serial of
5610         the incoming message, not reply serial
5611
5612 2003-10-14  Havoc Pennington  <hp@redhat.com>
5613
5614         * bus/connection.c: implement pending reply tracking using
5615         BusExpireList
5616
5617         * bus/bus.c (bus_context_check_security_policy): verify that a
5618         reply is pending in order to allow a reply to be sent. Deny 
5619         messages of unknown type.
5620
5621         * bus/dbus-daemon-1.1.in: update to mention new resource limits
5622
5623         * bus/bus.c (bus_context_get_max_replies_per_connection): new
5624         (bus_context_get_reply_timeout): new
5625
5626 2003-10-13  Seth Nickell  <seth@gnome.org>
5627
5628         * python/Makefile.am:
5629
5630         Pass "make distcheck": remove a couple files from DIST_FILES
5631         that weren't included in the final version.
5632
5633 2003-10-12  Havoc Pennington  <hp@pobox.com>
5634
5635         Added test code that 1) starts an actual bus daemon and 2) uses
5636         DBusGProxy; fixed bugs that were revealed by the test. Lots 
5637         more testing possible, but this is the basic framework.
5638         
5639         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
5640         empty proxy lists from the proxy list hash
5641
5642         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
5643         couple of return_if_fail checks
5644
5645         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
5646         to allocate, so everything is cleared to NULL as it should be.
5647
5648         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
5649         source as data to dbus_connection_set_timeout_functions() as the 
5650         timeout functions expected
5651
5652         * test/glib/run-test.sh: add a little script to start up a message
5653         bus and run tests using it
5654
5655         * tools/dbus-launch.1: updates
5656
5657         * tools/dbus-launch.c (main): add --config-file option
5658
5659         * tools/dbus-launch.c (main): remove confusing else if (runprog)
5660         that could never be reached.
5661
5662         * dbus/dbus-message.c (dbus_message_new_method_return) 
5663         (dbus_message_new_error, dbus_message_new_signal): set the
5664         no-reply-expected flag on all these. Redundant, but may
5665         as well be consistent.
5666
5667 2003-10-11  Havoc Pennington  <hp@pobox.com>
5668
5669         * test/decode-gcov.c (function_solve_graph): make broken block
5670         graph a nonfatal error since it seems to be broken. Need to debug
5671         this.
5672
5673         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
5674         can't just check type > INVALID < LAST anymore
5675
5676         * dbus/dbus-message.c (dbus_message_get_signature): new function
5677         (dbus_message_has_signature): new function
5678         (struct DBusMessage): add signature field (right now it isn't sent
5679         over the wire, just generated on the fly)
5680         (dbus_message_copy): copy the signature, and init strings to
5681         proper length to avoid some reallocs
5682         (dbus_message_iter_init_array_iterator): return void, since it
5683         can't fail
5684         (dbus_message_iter_init_dict_iterator): return void since it can't fail
5685         (_dbus_message_loader_queue_messages): add silly temporary hack to
5686         fill in message->signature on load
5687
5688         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
5689         characters, so they are relatively human-readable.
5690
5691 2003-10-11  Havoc Pennington  <hp@pobox.com>
5692
5693         * dbus/dbus-message.c (_dbus_message_test): add more test
5694         coverage, but #if 0 for now since they uncover a bug 
5695         not fixed yet; I think in re_align_field_recurse()
5696         (re_align_field_recurse): add FIXME about broken assertion
5697
5698         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
5699
5700         * bus/connection.c: share a couple code bits with expirelist.c
5701
5702         * bus/expirelist.h, bus/expirelist.c: implement a generic
5703         expire-items-after-N-seconds facility, was going to share between
5704         expiring connections and replies, decided not to use for expiring
5705         connections for now.
5706
5707         * COPYING: include AFL 2.0 (still need to change all the file headers)
5708
5709 2003-10-09  Havoc Pennington  <hp@redhat.com>
5710
5711         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
5712         gcc 3.3. Not that we do anything about it yet.
5713
5714         * bus/signals.c (bus_match_rule_parse): impose max length on the
5715         match rule text
5716
5717         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
5718
5719 2003-10-09  Havoc Pennington  <hp@redhat.com>
5720
5721         Make matching rules theoretically work (add parser).
5722         
5723         * bus/bus.c (bus_context_check_security_policy): fix up to handle
5724         the case where destination is explicitly specified as bus driver
5725         and someone else is eavesdropping.
5726         
5727         * bus/policy.c (bus_client_policy_check_can_receive): fix up
5728         definition of eavesdropping and assertion
5729
5730         * tools/dbus-send.c (main): use dbus_message_type_from_string
5731
5732         * bus/signals.c (bus_match_rule_parse): implement
5733
5734         * dbus/dbus-message.c (dbus_message_type_from_string): new
5735
5736         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
5737
5738 2003-10-02  Havoc Pennington  <hp@pobox.com>
5739
5740         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
5741         dbus_gproxy_oneway_call
5742
5743         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
5744         (dbus_server_setup_with_g_main): fix to allow calling them more
5745         than once on the same args
5746         (dbus_bus_get_with_g_main): new function
5747
5748 2003-10-02  Havoc Pennington  <hp@redhat.com>
5749
5750         * doc/dbus-tutorial.xml: write some stuff
5751
5752 2003-09-29  Havoc Pennington  <hp@pobox.com>
5753
5754         * configure.in: split checks for Doxygen from XML docs, check for
5755         xmlto
5756
5757         * doc/Makefile.am: XML-ify all the docs, and add a blank
5758         dbus-tutorial.xml
5759
5760 2003-09-29  Havoc Pennington  <hp@pobox.com>
5761
5762         * Merge dbus-object-names branch. To see the entire patch 
5763         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
5764         it's huuuuge though.
5765         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
5766         
5767 2003-09-28  Havoc Pennington  <hp@pobox.com>
5768
5769         * HACKING: update to reflect new server
5770
5771 2003-09-26  Seth Nickell  <seth@gnome.org>
5772
5773         * python/dbus.py:
5774         * python/examples/example-signals.py:
5775
5776         Start implementing some notions of signals. The API
5777         is really terrible, but they sort of work (with the
5778         exception of being able to filter by service, and to
5779         transmit signals *as* a particular service). Need to
5780         figure out how to make messages come from the service
5781         we registered :-(
5782         
5783         * python/dbus_bindings.pyx.in:
5784
5785         Removed duplicate message_handler callbacks.
5786         
5787 2003-09-25  Havoc Pennington  <hp@redhat.com>
5788
5789         * bus/session.conf.in: fix my mess
5790
5791 2003-09-25  Havoc Pennington  <hp@pobox.com>
5792
5793         * bus/session.conf.in: fix security policy, reported by Seth Nickell
5794
5795 2003-09-25  Seth Nickell  <seth@gnome.org>
5796
5797         * python/examples/example-service.py:
5798
5799         Johan notices complete wrong code in example-service, but
5800         completely wrong in a way that works exactly the same (!).
5801         Johan is confused, how could this possibly work? Example
5802         code fails to serve purpose of making things clear.
5803         Seth fixes.
5804
5805 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
5806
5807         * doc/dbus-specification.sgml: don't require header fields
5808         to be 4-byte aligned and specify that fields should be
5809         distinguished from padding by the fact that zero is not
5810         a valid field name.
5811         
5812         * doc/TODO: remove re-alignment item and add item to doc
5813         the OBJECT_PATH type.
5814         
5815         * dbus/dbus-message.c:
5816         (HeaderField): rename the original member to value_offset
5817         and introduce a name_offset member to keep track of where
5818         the field actually begins.
5819         (adjust_field_offsets): remove.
5820         (append_int_field), (append_uint_field),
5821         (append_string_field): don't align the start of the header
5822         field to a 4-byte boundary.
5823         (get_next_field): impl finding the next marhsalled field
5824         after a given field.
5825         (re_align_field_recurse): impl re-aligning a number of
5826         already marshalled fields.
5827         (delete_field): impl deleting a field of any type and
5828         re-aligning any following fields.
5829         (delete_int_or_uint_field), (delete_string_field): remove.
5830         (set_int_field), (set_uint_field): no need to re-check
5831         that we have the correct type for the field.
5832         (set_string_field): ditto and impl re-aligning any
5833         following fields.
5834         (decode_header_data): update to take into account that
5835         the fields aren't 4-byte aligned any more and the new
5836         way to distinguish padding from header fields. Also,
5837         don't exit when there is too much header padding.
5838         (process_test_subdir): print the directory.
5839         (_dbus_message_test): add test to make sure a following
5840         field is re-aligned correctly after field deletion.
5841         
5842         * dbus/dbus-string.[ch]:
5843         (_dbus_string_insert_bytes): rename from insert_byte and
5844         allow the insert of multiple bytes.
5845         (_dbus_string_test): test inserting multiple bytes.
5846
5847         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
5848         warning note to docs about having to re-align any
5849         marshalled values following the string.
5850         
5851         * dbus/dbus-message-builder.c:
5852         (append_string_field), (_dbus_message_data_load):
5853         don't align the header field.
5854         
5855         * dbus/dbus-auth.c: (process_test_subdir): print the
5856         directory.
5857         
5858         * test/break-loader.c: (randomly_add_one_byte): upd. for
5859         insert_byte change.
5860         
5861         * test/data/invalid-messages/bad-header-field-alignment.message:
5862         new test case.
5863         
5864         * test/data/valid-messages/unknown-header-field.message: shove
5865         a dict in the unknown field.
5866
5867 2003-09-25  Seth Nickell  <seth@gnome.org>
5868
5869         * python/dbus.py:
5870         * python/dbus_bindings.pyx.in:
5871
5872         Handle return values.
5873         
5874         * python/examples/example-client.py:
5875         * python/examples/example-service.py:
5876
5877         Pass back return values from the service to the client.
5878         
5879 2003-09-24  Seth Nickell  <seth@gnome.org>
5880
5881         * python/dbus.py:
5882
5883         Connect Object methods (when you are sharing an object) up... pass
5884         in a list of methods to be shared. Sharing all the methods just
5885         worked out too weird. You can now create nice Services over the
5886         DBus in Python. :-)
5887         
5888         * python/dbus_bindings.pyx.in:
5889
5890         Keep references to user_data tuples passed into C functions so 
5891         Python doesn't garbage collect on us.
5892
5893         Implement MethodReturn and Error subclasses of Message for creating
5894         DBusMessage's of those types.
5895         
5896         * python/examples/example-client.py:
5897         * python/examples/example-service.py:
5898
5899         Simple example code showing both how create DBus services and objects,
5900         and how to use them.
5901
5902 2003-09-23  Havoc Pennington  <hp@pobox.com>
5903
5904         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
5905
5906 2003-09-23  Havoc Pennington  <hp@redhat.com>
5907
5908         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
5909         (dbus_gproxy_disconnect_signal): implement
5910         (dbus_gproxy_manager_remove_signal_match): implement
5911         (dbus_gproxy_manager_add_signal_match): implement
5912         (dbus_gproxy_oneway_call): implement
5913
5914 2003-09-23  Havoc Pennington  <hp@pobox.com>
5915
5916         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
5917         subclass. This means dropping the transparent thread safety of the
5918         proxy; you now need a separate proxy per-thread, or your own
5919         locking on the proxy. Probably right anyway.
5920         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
5921
5922 2003-09-22  Havoc Pennington  <hp@redhat.com>
5923
5924         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
5925
5926 2003-09-21  Seth Nickell  <seth@gnome.org>
5927
5928         First checkin of the Python bindings.
5929         
5930         * python/.cvsignore:
5931         * python/Makefile.am:
5932         * python/dbus_bindings.pyx.in:
5933         * python/dbus_h_wrapper.h:
5934
5935         Pieces for Pyrex to operate on, building a dbus_bindings.so
5936         python module for low-level access to the DBus APIs.
5937         
5938         * python/dbus.py:
5939
5940         High-level Python module for accessing DBus objects.
5941
5942         * configure.in:
5943         * Makefile.am:
5944
5945         Build stuff for the python bindings.
5946
5947         * acinclude.m4:
5948
5949         Extra macro needed for finding the Python C header files.
5950
5951 2003-09-21  Havoc Pennington  <hp@pobox.com>
5952
5953         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
5954         implementing the proxy manager, didn't get very far.
5955
5956         * dbus/dbus-bus.c (dbus_bus_add_match): new
5957         (dbus_bus_remove_match): new
5958
5959         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
5960         path_name argument; adjust the other not-yet-implemented 
5961         gproxy constructors to be what I think they should be.
5962
5963 2003-09-21  Havoc Pennington  <hp@pobox.com>
5964
5965         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
5966         by default for message bus connections.
5967
5968         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
5969         exit_on_disconnect flag is set and we process the disconnected
5970         signal.
5971         (dbus_connection_set_exit_on_disconnect): new function
5972
5973 2003-09-21  Havoc Pennington  <hp@pobox.com>
5974
5975         Get matching rules mostly working in the bus; only actually
5976         parsing the rule text remains. However, the client side of
5977         "signal connections" hasn't been started, this patch is only the
5978         bus side.
5979         
5980         * dbus/dispatch.c: fix for the matching rules changes
5981         
5982         * bus/driver.c (bus_driver_handle_remove_match)
5983         (bus_driver_handle_add_match): send an ack reply from these
5984         method calls
5985
5986         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
5987         arguments, reported by Seth Nickell
5988
5989         * bus/config-parser.c (append_rule_from_element): support
5990         eavesdrop=true|false attribute on policies so match rules 
5991         can be prevented from snooping on the system bus.
5992
5993         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
5994         and "destination" in attribute names; fix some docs bugs; 
5995         add eavesdrop=true|false attribute
5996
5997         * bus/driver.c (bus_driver_handle_add_match)
5998         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
5999         messages
6000
6001         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
6002         rid of broadcast service concept, signals are just always broadcast
6003
6004         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
6005         mostly implement matching rules stuff (currently only exposed as signal
6006         connections)
6007
6008 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
6009
6010         * doc/dbus-specification.sgml: Change the header field name
6011         to be an enum and update the rest of the spec to reference
6012         the fields using the conventinal name.
6013
6014         * dbus/dbus-protocol.h: update to reflect the spec.
6015
6016         * doc/TODO: add item to remove the 4 byte alignment requirement.
6017         
6018         * dbus/dbus-message.c: Remove the code to generalise the
6019         header/body length and serial number header fields as named
6020         header fields so we can reference field names using the 
6021         protocol values.
6022         (append_int_field), (append_uint_field), (append_string_field):
6023         Append the field name as a byte rather than four chars.
6024         (delete_int_or_uint_field), (delete_string_field): reflect the
6025         fact that the field name and typecode now occupy 4 bytes instead
6026         of 8.
6027         (decode_string_field), (decode_header_data): update to reflect
6028         protocol changes and move the field specific encoding from
6029         decode_string_field() back into decode_header_data().
6030         
6031         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
6032         Add utility to aid debugging.
6033         
6034         * dbus/dbus-message-builder.c:
6035         (append_string_field), (_dbus_message_data_load): Update to
6036         reflect protocol changes; Change the FIELD_NAME directive
6037         to HEADER_FIELD and allow it to take the field's conventional
6038         name rather than the actual value.
6039         
6040         * test/data/*/*.message: Update to use HEADER_FIELD instead
6041         of FIELD_NAME; Always align the header on an 8 byte boundary
6042         *before* updating the header length.
6043
6044 2003-09-15  Havoc Pennington  <hp@pobox.com>
6045
6046         * dbus/dbus-pending-call.c: add the get/set object data
6047         boilerplate as for DBusConnection, etc. Use generic object data
6048         for the notify callback.
6049
6050         * glib/dbus-gparser.c (parse_node): parse child nodes
6051
6052         * tools/dbus-viewer.c: more hacking on the dbus-viewer
6053         
6054         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
6055         contain functions shared between the convenience lib and the
6056         installed lib
6057
6058         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
6059         -export-symbols-regex to the GLib library
6060
6061         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
6062         fix the locking in here, and add a default handler for
6063         Introspect() that just returns sub-nodes.
6064
6065 2003-09-14  Havoc Pennington  <hp@pobox.com>
6066
6067         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
6068         rather than gfoo consistent
6069
6070         * glib/dbus-gproxy.h: delete for now, move contents to
6071         dbus-glib.h, because the include files don't work right since we
6072         aren't in the dbus/ subdir.
6073         
6074         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
6075         (dbus_gproxy_end_call): finish
6076         (dbus_gproxy_begin_call): finish
6077
6078         * glib/dbus-gmain.c (dbus_set_g_error): new
6079
6080         * glib/dbus-gobject.c (handle_introspect): include information
6081         about child nodes in the introspection
6082
6083         * dbus/dbus-connection.c (dbus_connection_list_registered): new
6084         function to help in implementation of introspection
6085
6086         * dbus/dbus-object-tree.c
6087         (_dbus_object_tree_list_registered_and_unlock): new function
6088
6089 2003-09-12  Havoc Pennington  <hp@pobox.com>
6090
6091         * glib/dbus-gidl.h: add common base class for all the foo_info
6092         types
6093
6094         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
6095         similar to kdcop
6096
6097         * test/Makefile.am: try test srcdir -ef . in addition to test
6098         srcdir = ., one of them should work (yeah lame)
6099         
6100         * glib/Makefile.am: build the "idl" parser stuff as a convenience
6101         library
6102         
6103         * glib/dbus-gparser.h: make description_load routines return
6104         NodeInfo* not Parser*
6105
6106         * Makefile.am (SUBDIRS): build test dir after all library dirs
6107
6108         * configure.in: add GTK+ detection
6109
6110 2003-09-07  Havoc Pennington  <hp@pobox.com>
6111
6112         * Make Doxygen contented.
6113
6114 2003-09-07  Havoc Pennington  <hp@pobox.com>
6115
6116         * doc/dbus-specification.sgml: more updates
6117
6118 2003-09-06  Havoc Pennington  <hp@pobox.com>
6119
6120         * doc/dbus-specification.sgml: partial updates
6121
6122         * bus/dbus-daemon-1.1.in: fix the config file docs for the
6123         zillionth time; hopefully I edited the right file this time.
6124
6125         * bus/config-parser.c (append_rule_from_element): support
6126         send_type, send_path, receive_type, receive_path
6127
6128         * bus/policy.c: add message type and path to the list of things
6129         that can be "firewalled"
6130
6131 2003-09-06  Havoc Pennington  <hp@pobox.com>
6132
6133         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
6134         (dbus_connection_register_object_path): make this not handle
6135         messages to paths below the given path
6136
6137 2003-09-03  Havoc Pennington  <hp@pobox.com>
6138
6139         * test/glib/Makefile.am: add this with random glib-linked test
6140         programs
6141
6142         * glib/Makefile.am: remove the random test programs from here,
6143         leave only the unit tests
6144
6145         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
6146         uscore/javacaps conversion, and fix     
6147         (get_object_property, set_object_property): change to .NET
6148         convention for mapping props to methods, set_FooBar/get_FooBar, 
6149         since one language has such a convention we may as well copy it. 
6150         Plus real methods in either getFooBar or get_foo_bar style won't 
6151         collide with this convention.
6152
6153 2003-09-01  Havoc Pennington  <hp@pobox.com>
6154
6155         * glib/dbus-gparser.c: implement
6156
6157         * glib/dbus-gobject.c: start implementing skeletons support
6158
6159         * configure.in: when disabling checks/assert, also define
6160         G_DISABLE_ASSERT and G_DISABLE_CHECKS
6161
6162 2003-09-01  Havoc Pennington  <hp@pobox.com>
6163
6164         * glib/Makefile.am: rearrange a bunch of files and get "make
6165         check" framework set up
6166
6167 2003-08-31  Havoc Pennington  <hp@pobox.com>
6168
6169         * fix build with --disable-tests
6170
6171 2003-08-30  Havoc Pennington  <hp@pobox.com>
6172
6173         * dbus/dbus-connection.c: purge DBusMessageHandler
6174
6175         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
6176         use callbacks everywhere
6177
6178 2003-08-30  Havoc Pennington  <hp@pobox.com>
6179
6180         * test/data/valid-config-files/system.d/test.conf: change to 
6181         root for the user so warnings don't get printed
6182
6183         * dbus/dbus-message.c: add dbus_message_get_path,
6184         dbus_message_set_path
6185         
6186         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
6187         dispatching to a path
6188
6189         * dbus/dbus-string.c (_dbus_string_validate_path): add
6190
6191         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
6192         (_dbus_marshal_object_path): implement
6193
6194         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
6195         to contain the path to the target object
6196         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
6197         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
6198
6199 2003-08-30  Havoc Pennington  <hp@pobox.com>
6200
6201         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
6202
6203 2003-08-29  Havoc Pennington  <hp@pobox.com>
6204
6205         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
6206         registered
6207         (struct DBusObjectSubtree): shrink this
6208         a lot, since we may have a lot of them
6209         (_dbus_object_tree_free_all_unlocked): implement
6210         (_dbus_object_tree_dispatch_and_unlock): implement
6211
6212 2003-08-29  Havoc Pennington  <hp@pobox.com>
6213
6214         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
6215
6216 2003-08-28  Havoc Pennington  <hp@pobox.com>
6217
6218         purge DBusObjectID
6219         
6220         * dbus/dbus-connection.c: port to no ObjectID, create a
6221         DBusObjectTree, rename ObjectTree to ObjectPath in public API
6222
6223         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
6224         everything except UnregisterFunction and MessageFunction
6225         
6226         * dbus/dbus-marshal.c: port away from DBusObjectID, 
6227         add DBUS_TYPE_OBJECT_PATH
6228         
6229         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
6230         dbus/dbus-objectid.[hc]: remove these, we are moving to 
6231         path-based object IDs
6232
6233 2003-08-25  Havoc Pennington  <hp@pobox.com>
6234
6235         Just noticed that dbus_message_test is hosed, I wonder when I
6236         broke that. I thought make check was passing earlier...
6237         
6238         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
6239         container tree, will replace most of dbus-object-registry
6240
6241         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
6242         screwup
6243
6244 2003-08-19  Havoc Pennington  <hp@pobox.com>
6245
6246         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
6247         (dbus_message_is_error): fix this function
6248
6249         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
6250         match
6251
6252         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
6253         reflect clarified man page
6254         (bus_client_policy_check_can_send): ditto
6255         
6256         * bus/session.conf.in: fixup
6257
6258         * bus/system.conf.in: fixup
6259
6260 2003-08-18  Havoc Pennington  <hp@redhat.com>
6261
6262         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
6263
6264         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
6265         dumb bug created earlier (wrong order of args to
6266         decode_header_data())
6267         
6268         * tools/dbus-send.c: port
6269
6270         * tools/dbus-print-message.c (print_message): port
6271
6272         * test/data/*messages: port all messages over
6273         
6274         * dbus/dbus-message-builder.c: support including 
6275         message type
6276         
6277         * bus/driver.c: port over
6278         
6279         * bus/dispatch.c: port over to new stuff
6280
6281         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6282         rename disconnect signal to "Disconnected"
6283
6284 2003-08-17  Havoc Pennington  <hp@pobox.com>
6285
6286         This doesn't compile yet, but syncing up so I can hack on it from
6287         work. What are branches for if not broken code? ;-)
6288         
6289         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
6290         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
6291         DBUS_HEADER_FIELD_ERROR_NAME
6292         
6293         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
6294         for the interface+member pairs
6295         (string_hash): change to use g_str_hash algorithm
6296         (find_direct_function, find_string_function): refactor these to
6297         share most code.
6298         
6299         * dbus/dbus-message.c: port all of this over to support 
6300         interface/member fields instead of name field
6301
6302         * dbus/dbus-object-registry.c: port over
6303         
6304         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
6305         from _dbus_string_validate_name
6306
6307         * bus/dbus-daemon-1.1: change file format for the 
6308         <deny>/<allow> stuff to match new message naming scheme
6309
6310         * bus/policy.c: port over
6311
6312         * bus/config-parser.c: parse new format
6313         
6314 2003-08-16  Havoc Pennington  <hp@pobox.com>
6315
6316         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
6317         broken assertion
6318
6319         * glib/dbus-gproxy.c: some hacking
6320
6321 2003-08-15  Havoc Pennington  <hp@redhat.com>
6322
6323         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
6324
6325         * dbus/dbus-connection.c
6326         (dbus_connection_send_with_reply_and_block): factor out internals;
6327         change to convert any error replies to DBusError instead of 
6328         returning them as a message
6329
6330 2003-08-15  Havoc Pennington  <hp@pobox.com>
6331
6332         * dbus/dbus-connection.c, 
6333         dbus/dbus-pending-call.c: Finish the pending call stuff
6334
6335 2003-08-14  Havoc Pennington  <hp@redhat.com>
6336
6337         * dbus/dbus-pending-call.c: start on new object that will replace
6338         DBusMessageHandler and ReplyHandlerData for tracking outstanding
6339         replies
6340
6341         * dbus/dbus-gproxy.c: start on proxy object used to communicate
6342         with remote interfaces
6343
6344         * dbus/dbus-gidl.c: do the boring boilerplate in here
6345         
6346 2003-08-12  Havoc Pennington  <hp@pobox.com>
6347
6348         * bus/dispatch.c (bus_dispatch): make this return proper 
6349         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
6350
6351         * dbus/dbus-errors.c (dbus_set_error): use
6352         _dbus_string_append_printf_valist
6353
6354         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
6355         (_dbus_string_append_printf): new
6356
6357         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
6358         UNKNOWN_METHOD
6359
6360         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
6361         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
6362         message is unhandled.
6363
6364 2003-08-11  Havoc Pennington  <hp@pobox.com>
6365
6366         * bus/test.c (client_disconnect_handler): change to return
6367         HANDLED (would have been REMOVE_MESSAGE)
6368
6369         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
6370         HANDLED/NOT_YET_HANDLED instead of
6371         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
6372         should be used.
6373
6374 2003-08-10  Havoc Pennington  <hp@pobox.com>
6375
6376         * tools/dbus-send.c (main): add --type argument, for now
6377         supporting only method_call and signal types.
6378
6379         * tools/dbus-print-message.c: print message type
6380
6381         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6382         init connection->objects
6383
6384         * doc/dbus-specification.sgml: fix sgml
6385
6386         * bus/*.c: port over to object-instance API changes
6387
6388         * test/test-service.c: ditto
6389         
6390         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
6391         name, we will have to fix up the rest of the code to also handle
6392         this
6393         (dbus_message_new): generic message-creation call
6394         (set_string_field): allow appending name field
6395
6396 2003-08-06  Havoc Pennington  <hp@pobox.com>
6397
6398         * dbus/dbus-object-registry.c: implement signal connection 
6399         and dispatch
6400
6401         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
6402
6403         * dbus/dbus-internals.c (_dbus_memdup): new function
6404
6405 2003-08-02  Havoc Pennington  <hp@pobox.com>
6406
6407         * dbus/dbus-message.c (dbus_message_get_no_reply)
6408         (dbus_message_set_no_reply): add these and remove
6409         set_is_error/get_is_error
6410
6411         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
6412         remove the ERROR flag, since there's now an ERROR type
6413
6414 2003-08-01  Havoc Pennington  <hp@pobox.com>
6415
6416         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
6417         implement
6418
6419         * dbus/dbus-message.c (dbus_message_get_type): new function
6420
6421         * doc/dbus-specification.sgml: add "type" byte to messages
6422
6423 2003-08-01  Havoc Pennington  <hp@pobox.com>
6424
6425         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
6426         a message type enum to distinguish kinds of message
6427         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
6428         that need not be replied to
6429
6430 2003-08-01  Havoc Pennington  <hp@pobox.com>
6431
6432         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
6433         (unpack_8_octets): fix no-64-bit-int bug
6434
6435         * dbus/dbus-object-registry.c (validate_id): validate the 
6436         connection ID bits, not just the instance ID.
6437
6438         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
6439         the connection-global 33 bits of the object ID
6440
6441         * dbus/dbus-object-registry.c (info_from_entry): fill in 
6442         object ID in the new way
6443
6444         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
6445         define server/client/instance bits.
6446
6447 2003-07-30  Havoc Pennington  <hp@pobox.com>
6448
6449         * dbus/dbus-connection.c (dbus_connection_register_object): fix
6450         build
6451
6452 2003-07-13  Havoc Pennington  <hp@pobox.com>
6453
6454         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
6455         fields to DBusObjectVTable and DBusObjectInfo
6456
6457 2003-07-12  Havoc Pennington  <hp@pobox.com>
6458
6459         * dbus/dbus-object-registry.c: implement unit test,
6460         fix bugs discovered in process
6461
6462         * dbus/dbus-connection.c: remove handler_table and
6463         register_handler(), add DBusObjectRegistry usage
6464
6465         * dbus/dbus-objectid.c (dbus_object_id_is_null)
6466         (dbus_object_id_set_null): new functions
6467
6468 2003-07-08  Havoc Pennington  <hp@pobox.com>
6469
6470         * dbus/dbus-object.c: implement some of this
6471
6472         * dbus/dbus-object-registry.c
6473         (_dbus_object_registry_add_and_unlock): fill in the object_id out
6474         param
6475         (_dbus_object_registry_new): handle OOM
6476
6477 2003-07-08  Havoc Pennington  <hp@pobox.com>
6478
6479         * dbus/dbus-object.h: sketch out an API for registering objects
6480         with a connection, that allows us to use as little as 24 bytes
6481         per object and lets application code represent an object in 
6482         any conceivable way.
6483
6484         * dbus/dbus-object-registry.c: implement the hard bits of the
6485         DBusConnection aspect of object API. Not yet wired up.
6486         
6487 2003-07-06  Havoc Pennington  <hp@pobox.com>
6488
6489         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
6490         (_dbus_marshal_object_id): new
6491         (_dbus_demarshal_object_id): new
6492         (_dbus_marshal_get_arg_end_pos): support object ID type, and
6493         consolidate identical switch cases. Don't conditionalize handling
6494         of DBUS_TYPE_UINT64, need to handle the type always.
6495         (_dbus_marshal_validate_arg): consolidate identical cases, and
6496         handle DBUS_TYPE_OBJECT_ID
6497
6498         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
6499
6500         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
6501
6502 2003-09-28  Havoc Pennington  <hp@pobox.com>
6503
6504         * real 0.13 release
6505
6506 2003-09-28  Havoc Pennington  <hp@pobox.com>
6507
6508         * doc/Makefile.am (dbus-specification.html): testing a funky hack
6509         to work with Debian db2html
6510
6511 2003-09-28  Havoc Pennington  <hp@pobox.com>
6512
6513         * configure.in: 0.13
6514
6515         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
6516         stylesheet-images for benefit of Debian
6517         
6518         Change back to using filesystem-linked sockets for the system
6519         bus, so only root can create the default system bus address.
6520         
6521         * bus/system.conf.in: change to use
6522         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6523
6524         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
6525         from here.
6526
6527         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6528         here, and AC_DEFINE DBUS_SYSTEM_PATH
6529
6530 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
6531
6532         * doc/TODO:
6533         * doc/busconfig.dtd:
6534         Add busconfig DTD.
6535         
6536 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
6537
6538         * doc/dbus-specification.sgml:
6539         Add activation reply values.
6540         
6541 2003-08-05  Havoc Pennington  <hp@redhat.com>
6542
6543         * configure.in: 0.12
6544
6545 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
6546
6547         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
6548         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
6549         (add_watch), (remove_watch), (create_source):
6550         Refcount fds, fixes some reentrancy issues.
6551         
6552 2003-07-30  Havoc Pennington  <hp@redhat.com>
6553
6554         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
6555         bus address to be abstract if we have abstract sockets
6556
6557         * NEWS: update
6558
6559 2003-07-28  Havoc Pennington  <hp@redhat.com>
6560
6561         * bus/messagebus.in: fix to avoid processname/servicename 
6562         confusion, from Michael Kearey
6563         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
6564         
6565 2003-07-23  Havoc Pennington  <hp@pobox.com>
6566
6567         * dbus/dbus-message.c (dbus_message_iter_get_named): 
6568         fix from Andy Hanton to remove broken "+1"
6569
6570 2003-07-16  Havoc Pennington  <hp@pobox.com>
6571
6572         * tools/dbus-launch.c (babysit): close stdout/stderr in the
6573         babysitter process, as suggested by Thomas Leonard, so 
6574         an "eval `dbus-launch --exit-with-session`" will actually 
6575         return
6576
6577 2003-07-16  Havoc Pennington  <hp@pobox.com>
6578
6579         * configure.in: print out EXPANDED_* variables in the summary at
6580         the end; clean up the code that computes EXPANDED_ variables and
6581         get the ones using exec_prefix right. Should make things work
6582         when you build without --prefix
6583
6584 2003-06-29  Havoc Pennington  <hp@pobox.com>
6585
6586         * mono/Test.cs (class Test): fire up a main loop and run it
6587
6588         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
6589         done once, the app has to do it
6590
6591 2003-06-26  Havoc Pennington  <hp@pobox.com>
6592
6593         * mono/Connection.cs: set up connection with the glib main loop
6594
6595 2003-07-01  Havoc Pennington  <hp@redhat.com>
6596
6597         * doc/dbus-specification.sgml: clarify the format of a type code,
6598         change suggested by Jim Blandy
6599
6600 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
6601
6602         * doc/Makefile.am:
6603         * tools/Makefile.am: Don't assume srcdir == builddir.
6604
6605         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
6606         the allocated block.
6607         (_dbus_memory_test): New function.
6608         * dbus/dbus-test.h: Add _dbus_memory_test ().
6609         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
6610
6611         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
6612         of %c%c%c%c.
6613         (dbus_message_new): Remove obsolete @todo.
6614
6615         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
6616         (_dbus_marshal_set_uint64): Fix comment.
6617
6618         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
6619         hardcode FIELD_REPLY_SERIAL.
6620
6621         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
6622         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
6623
6624         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
6625         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
6626
6627 2003-06-24  Havoc Pennington  <hp@pobox.com>
6628
6629         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
6630
6631 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
6632
6633         * configure.in:
6634         * gcj/.cvsignore:
6635         * gcj/Hello.java:
6636         * gcj/Makefile.am:
6637         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
6638         * gcj/org/.cvsignore:
6639         * gcj/org/Makefile.am:
6640         * gcj/org/freedesktop/.cvsignore:
6641         * gcj/org/freedesktop/Makefile.am:
6642         * gcj/org/freedesktop/dbus/.cvsignore:
6643         * gcj/org/freedesktop/dbus/Makefile.am:
6644         * gcj/org/freedesktop/dbus/Message.java: (Message),
6645         (Message.Message):
6646         * gcj/org/freedesktop/dbus/natMessage.cc:
6647         Fix the build system.
6648
6649 2003-06-22  Havoc Pennington  <hp@pobox.com>
6650
6651         * mono/Connection.cs: add more bindings
6652
6653         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
6654         more than once.
6655
6656 2003-06-22  Havoc Pennington  <hp@pobox.com>
6657
6658         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
6659         Start wrapping more stuff.
6660
6661 2003-06-22  Havoc Pennington  <hp@pobox.com>
6662
6663         * mono/Message.cs: implement Message.Wrap() that ensures we only
6664         have a single C# wrapper per DBusMessage, assuming it works which
6665         it probably doesn't.
6666
6667         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
6668         (dbus_message_free_data_slot): new
6669         (dbus_message_set_data): new
6670         (dbus_message_get_data): new
6671
6672 2003-06-22  Havoc Pennington  <hp@pobox.com>
6673
6674         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
6675         (_dbus_data_slot_allocator_alloc): rework these to keep a
6676         reference count on each slot and automatically manage a global
6677         slot ID variable passed in by address
6678
6679         * bus/bus.c: convert to new dataslot API
6680
6681         * dbus/dbus-bus.c: convert to new dataslot API
6682
6683         * dbus/dbus-connection.c: convert to new dataslot API
6684
6685         * dbus/dbus-server.c: convert to new dataslot API
6686
6687         * glib/dbus-gmain.c: ditto
6688
6689         * bus/test.c: ditto
6690
6691         * bus/connection.c: ditto
6692
6693 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
6694
6695         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
6696         after the gcj checks so that the correct configuration tags
6697         will be added to libtool.
6698
6699         * dbus-glib-1.pc.in: No need to specify any includes since
6700         dbus-1.pc.in has those.
6701
6702 2003-06-22  Havoc Pennington  <hp@pobox.com>
6703
6704         * mono/*, gcj/*, configure.in, Makefile.am:
6705         Check in makefiles and subdirs for mono and gcj bindings.
6706         Neither binding actually exists, just trying to get through
6707         all the build and other boring bits.
6708
6709 2003-06-21  Philip Blundell  <philb@gnu.org>
6710
6711         * tools/dbus-monitor.1: Updated.
6712
6713         * tools/dbus-send.1: Likewise.
6714
6715 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
6716
6717         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
6718         for hangup and error after checking read so we won't discard
6719         pending data if both hangup and read are set.
6720
6721 2003-06-19  Philip Blundell  <philb@gnu.org>
6722
6723         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
6724
6725         * tools/dbus-send.c: Accept both --system and --session.
6726
6727         * tools/dbus-monitor.c: Same here.
6728
6729 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
6730
6731         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
6732         from C++ (Patch by Miloslav Trmac).
6733
6734 2003-06-15  Joe Shaw  <joe@assbarn.com>
6735
6736         * configure.in: Check for socklen_t.
6737
6738         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
6739
6740         * test/test-segfault.c: Add #include <sys/time.h>
6741
6742         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
6743         dbus-launch needs it.
6744
6745 2003-06-09  Havoc Pennington  <hp@redhat.com>
6746
6747         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
6748         SUN_LEN, it breaks abstract socket usage
6749
6750         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
6751         starts of lines.
6752
6753 2003-06-04  Havoc Pennington  <hp@pobox.com>
6754
6755         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
6756         using unix:abstract=/foo, and when listening in a tmpdir
6757         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
6758
6759         * dbus/dbus-transport.c (_dbus_transport_open): support
6760         unix:abstract=/foo
6761
6762         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
6763         support abstract sockets
6764
6765         * dbus/dbus-transport-unix.c
6766         (_dbus_transport_new_for_domain_socket): support abstract sockets
6767
6768         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
6769         toggle as an argument, implement abstract namespace support
6770         (_dbus_listen_unix_socket): ditto
6771
6772         * configure.in: add --enable-abstract-sockets and implement
6773         a configure check for autodetection of the right value.
6774
6775 2003-06-01  Havoc Pennington  <hp@pobox.com>
6776
6777         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
6778         in /tmp (though on Linux this will end up being useless,
6779         when we add abstract namespace support)
6780
6781         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
6782         subst'ing it
6783
6784 2003-05-28  Colin Walters  <walters@verbum.org>
6785
6786         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
6787
6788 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
6789
6790         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
6791
6792 2003-05-17  Colin Walters  <walters@gnu.org>
6793
6794         * tools/dbus-send.c: Don't exit with an error code if --help was
6795         passed.  Default to using the session bus instead of the system
6796         one.
6797
6798         * tools/dbus-launch.c: Ditto.
6799
6800         * tools/dbus-monitor.c: Ditto.
6801
6802         * tools/dbus-send.1: Update with new arguments.
6803
6804         * tools/dbus-launch.c: Emit code to export variables.  New
6805         arguments -s and -c to specify shell syntax, and a bit of code to
6806         autodetect syntax.  Also, allow specifying a program to run.
6807
6808         * tools/dbus-launch.1: Update with new arguments.
6809
6810         * tools/dbus-send.1: Ditto.
6811
6812         * tools/dbus-monitor.1: Ditto.
6813
6814 2003-05-17  Havoc Pennington  <hp@pobox.com>
6815
6816         * bus/config-parser.c (merge_included): merge in policies from
6817         child configuration file.
6818
6819         * bus/policy.c (bus_policy_merge): function to merge two policies
6820         together
6821
6822 2003-05-16  Havoc Pennington  <hp@redhat.com>
6823
6824         * dbus/dbus-connection.c: disable verbose lock spew
6825
6826         * tools/dbus-send.c: add --print-reply command line option
6827
6828         * tools/dbus-print-message.h (print_message): new util function
6829         shared by dbus-send and dbus-monitor
6830
6831         * tools/dbus-monitor.c (handler_func): exit on disconnect
6832
6833         * dbus/dbus-transport-unix.c (do_reading): if the transport is
6834         disconnected, don't try to use the read_watch
6835
6836         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
6837         so we can find this bug more easily
6838
6839 2003-05-16  Havoc Pennington  <hp@redhat.com>
6840
6841         * bus/policy.c (free_rule_list_func): avoid a crash when passed
6842         NULL as DBusHashTable is annoyingly likely to do.
6843
6844 2003-05-16  Colin Walters  <walters@verbum.org>
6845
6846         * tools/dbus-monitor.c: Add --session argument and usage()
6847         function.
6848
6849         * tools/dbus-monitor.1: Update with new --session arg.
6850
6851         * bus/Makefile.am (install-data-hook): Create
6852         $(libdir)/dbus-1.0/services so that the session bus is happy.
6853
6854 2003-05-15  Havoc Pennington  <hp@redhat.com>
6855
6856         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
6857         on non-x86. ifdef's are evil.
6858
6859 2003-05-15  Havoc Pennington  <hp@redhat.com>
6860
6861         * configure.in: 0.11
6862
6863         * NEWS: update
6864
6865         * bus/Makefile.am (initddir): apparently we are supposed to put
6866         init scripts in /etc/rc.d/init.d not /etc/init.d
6867
6868         * bus/Makefile.am: remove the "you must --enable-tests to make
6869         check" as it broke distcheck
6870
6871         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
6872
6873 2003-05-13  James Willcox  <jwillcox@gnome.org>
6874
6875         * configure.in:
6876         * bus/activation.c: (bus_activation_service_created),
6877         (bus_activation_activate_service):
6878         * bus/driver.c: (bus_driver_send_service_deleted),
6879         (bus_driver_send_service_created), (bus_driver_send_service_lost),
6880         (bus_driver_send_service_acquired),
6881         (bus_driver_send_welcome_message),
6882         (bus_driver_handle_list_services):
6883         * bus/session.conf.in:
6884         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
6885         (dbus_bus_service_exists), (dbus_bus_activate_service):
6886         * dbus/dbus-bus.h:
6887
6888         Add some convenience API which lets you activate a service, and did a
6889         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
6890         and dbus_message_get_args()
6891
6892 2003-05-11  Havoc Pennington  <hp@pobox.com>
6893
6894         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
6895         calling _dbus_marshal_validate_arg() for every byte in a byte
6896         array, etc.
6897
6898         * dbus/dbus-message-handler.c: use atomic reference counting to
6899         reduce number of locks slightly; the global lock in here sucks
6900
6901         * dbus/dbus-connection.c
6902         (_dbus_connection_update_dispatch_status_and_unlock): variant of
6903         update_dispatch_status that can be called with lock held; then use
6904         in a couple places to reduce locking/unlocking
6905         (dbus_connection_send): hold the lock over the whole function
6906         instead of acquiring it twice.
6907
6908         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
6909
6910         * bus/connection.c (bus_connections_setup_connection): fix access
6911         to already-freed memory.
6912
6913         * dbus/dbus-connection.c: keep a little cache of linked list
6914         nodes, to avoid using the global linked list alloc lock in the
6915         normal send-message case. Instead we just use the connection lock
6916         that we already have to take.
6917
6918         * dbus/dbus-list.c (_dbus_list_find_last): new function
6919
6920         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
6921         change to use a struct for the atomic type; fix docs,
6922         they return value before increment, not after increment.
6923
6924         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
6925         (_dbus_string_append_8_aligned): new functions to try to
6926         microoptimize this operation.
6927         (reallocate_for_length): break this out of set_length(), to
6928         improve profile info, and also so we can consider inlining the
6929         set_length() part.
6930
6931         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
6932         strings with some preallocation, cuts down on our calls to realloc
6933         a fair bit. Though if we can get the "move entire string to empty
6934         string" optimization below to kick in here, it would be better.
6935
6936         * dbus/dbus-string.c (_dbus_string_move): just call
6937         _dbus_string_move_len
6938         (_dbus_string_move_len): add a special case for moving
6939         an entire string into an empty string; we can just
6940         swap the string data instead of doing any reallocs.
6941         (_dbus_string_init_preallocated): new function
6942
6943 2003-05-11  Havoc Pennington  <hp@pobox.com>
6944
6945         Write a "test-profile" that does echo client-server with threads;
6946         profile reveals lock contention, memcpy/realloc of buffers, and
6947         UTF-8 validation as hot spots. 20% of lock contention eliminated
6948         with dbus_atomic_inc/dec implementation on x86.  Much remaining
6949         contention is global mempool locks for GList and DBusList.
6950
6951         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
6952         x86 implementation
6953
6954         * dbus/dbus-connection.c (struct DBusConnection): use
6955         dbus_atomic_t for the reference count
6956
6957         * dbus/dbus-message.c (struct DBusMessage): declare
6958         dbus_atomic_t values as volatile
6959
6960         * configure.in: code to detect ability to use atomic integer
6961         operations in assembly, from GLib patch
6962
6963         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
6964         time, tired of it being wrong in threads and forked processes
6965
6966         * glib/test-profile.c: a little program to bounce messages back
6967         and forth between threads and eat CPU
6968
6969         * dbus/dbus-connection.c: add debug spew macros for debugging
6970         thread locks; include config.h at top; fix deadlock in
6971         dbus_connection_flush()
6972
6973 2003-05-08  Havoc Pennington  <hp@pobox.com>
6974
6975         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
6976         data from getting written, and there wasn't a good reason to
6977         use _exit really.
6978
6979         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
6980         dbus_verbose lines in test coverage
6981         (main): add list of functions sorted by # of untested blocks
6982         to the coverage report
6983
6984         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
6985
6986         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
6987
6988         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
6989         extend test coverage
6990
6991         * test/data/auth/cancel.auth-script: test canceling an
6992         authentication
6993
6994         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
6995         aren't used. in CVS history if we end up needing them.
6996
6997 2003-05-04  Havoc Pennington  <hp@pobox.com>
6998
6999         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
7000         unit test
7001
7002         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
7003         function, which assumed length was in # of strings, not bytes
7004
7005         * dbus/dbus-message.c (_dbus_message_test): add tests for some
7006         missing coverage
7007
7008         * dbus/dbus-connection.c
7009         (_dbus_connection_queue_received_message): disable function for
7010         now, we are only using it in test mode
7011
7012         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7013         remove a mistaken FIXME
7014
7015 2003-05-04  Havoc Pennington  <hp@pobox.com>
7016
7017         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
7018         unlock mutex on successful return, patch from Anders Gustafsson
7019
7020 2003-05-04  Havoc Pennington  <hp@pobox.com>
7021
7022         * dbus-glib-1.pc.in (Requires): fix dependencies, from
7023         Anders Gustafsson
7024
7025 2003-05-04  Havoc Pennington  <hp@pobox.com>
7026
7027         * tools/dbus-launch.c: implement
7028
7029         * bus/main.c (main), bus/bus.c (bus_context_new):
7030         implement --print-pid and --fork
7031
7032 2003-05-03  Havoc Pennington  <hp@redhat.com>
7033
7034         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
7035         the address had no value, and add to test suite. Fix and
7036         regression test from Miloslav Trmac
7037
7038 2003-05-03  Havoc Pennington  <hp@pobox.com>
7039
7040         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
7041         watch is invalid when handled
7042
7043         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
7044         dbus-launch utility to launch the bus from a shell script.  Didn't
7045         actually implement dbus-launch yet, it's just a placeholder still.
7046
7047 2003-05-03  Havoc Pennington  <hp@pobox.com>
7048
7049         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
7050         daemon; also documents daemon config file, so replaces
7051         doc/config-file.txt. Corrected some stuff from config-file.txt in
7052         the process of moving it.
7053
7054 2003-05-03  Havoc Pennington  <hp@pobox.com>
7055
7056         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
7057         add some man pages
7058
7059 2003-05-03  Colin Walters  <walters@verbum.org>
7060
7061         * dbus/dbus-sysdeps.c (fill_user_info): Test against
7062         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
7063
7064         * Makefile.am: Update to use new .pc versioning scheme.
7065
7066 2003-05-02  Havoc Pennington  <hp@redhat.com>
7067
7068         * bus/system.conf.in: allow send/receive to/from message bus
7069         service
7070
7071 2003-04-30  Havoc Pennington  <hp@redhat.com>
7072
7073         * configure.in: print a note when building with unit tests and
7074         without assertions
7075
7076 2003-04-30  Havoc Pennington  <hp@redhat.com>
7077
7078         * Makefile.am: add a check-local that complains if you didn't
7079         configure with --enable-tests
7080
7081 2003-04-29  Havoc Pennington  <hp@redhat.com>
7082
7083         * glib/dbus-gmain.c: docs cleanups
7084
7085         * dbus/dbus-types.h: add docs on int64 types
7086
7087         * dbus/dbus-memory.c: fix docs to avoid putting private API in
7088         public API docs section
7089
7090 2003-04-29  Havoc Pennington  <hp@redhat.com>
7091
7092         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
7093         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
7094         parallel install API version, not with the D-BUS package version.
7095
7096         * HACKING: move some of README over here
7097
7098         * README: updates, and document API/ABI policy
7099
7100         * configure.in: reindentation
7101
7102 2003-04-29  Havoc Pennington  <hp@redhat.com>
7103
7104         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
7105         to use this library" to be sure people have the right
7106         expectations.
7107
7108 2003-04-28  Havoc Pennington  <hp@redhat.com>
7109
7110         * configure.in: add --enable-docs which by default is auto yes if
7111         doxygen and db2html found, no otherwise; but can be forced on/off
7112
7113         * doc/Makefile.am: conditionalize whether to build docs on
7114         --enable-docs
7115
7116 2003-04-28  Havoc Pennington  <hp@redhat.com>
7117
7118         * configure.in: 0.10
7119
7120         * NEWS: update
7121
7122         * bus/system.conf.in: add <includedir>system.d</includedir>
7123
7124         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
7125         username was provided but not uid
7126
7127         * bus/config-parser.c (struct BusConfigParser): keep track of
7128         whether the parser is toplevel or was included; change some
7129         of the error handling if it's included.
7130
7131 2003-04-27  Havoc Pennington  <hp@pobox.com>
7132
7133         Unbreak my code...
7134
7135         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7136         report correct status if we finish processing authentication
7137         inside this function.
7138
7139         * bus/activation.c (try_send_activation_failure): use
7140         bus_transaction_send_error_reply
7141
7142         * bus/connection.c (bus_connection_get_groups): return an error
7143         explaining the problem
7144
7145         * bus/bus.c (bus_context_check_security_policy): implement
7146         restriction here that inactive connections can only send the
7147         hello message. Also, allow bus driver to send anything to
7148         any recipient.
7149
7150         * bus/connection.c (bus_connection_complete): create the
7151         BusClientPolicy here instead of on-demand.
7152         (bus_connection_get_policy): don't return an error
7153
7154         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
7155         sender field in message being replied to
7156
7157         * bus/bus.c (bus_context_check_security_policy): fix silly typo
7158         causing it to return FALSE always
7159
7160         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
7161         we checked sender rather than destination
7162
7163 2003-04-25  Havoc Pennington  <hp@redhat.com>
7164
7165         test suite is slightly hosed at the moment, will fix soon
7166
7167         * bus/connection.c (bus_connections_expire_incomplete): fix to
7168         properly disable the timeout when required
7169         (bus_connection_set_name): check whether we can remove incomplete
7170         connections timeout after we complete each connection.
7171
7172         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
7173         probably still broken.
7174
7175         * bus/services.c (bus_registry_acquire_service): implement max
7176         number of services owned, and honor allow/deny rules on which
7177         services a connection can own.
7178
7179         * bus/connection.c (bus_connection_get_policy): report errors here
7180
7181         * bus/activation.c: implement limit on number of pending
7182         activations
7183
7184 2003-04-25  Havoc Pennington  <hp@redhat.com>
7185
7186         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
7187         where we used >= 0 instead of != DBUS_UID_UNSET.
7188
7189 2003-04-25  Havoc Pennington  <hp@redhat.com>
7190
7191         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
7192         were toggled without add/remove, fix from Anders Gustafsson
7193
7194 2003-04-24  Havoc Pennington  <hp@redhat.com>
7195
7196         * test/data/valid-config-files/basic.conf: add <limit> tags to
7197         this test
7198
7199         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
7200         <limit> tag in configuration file.
7201
7202 2003-04-24  Havoc Pennington  <hp@redhat.com>
7203
7204         * bus/dispatch.c: somehow missed some name_is
7205
7206         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
7207         (_dbus_timeout_set_interval): new
7208
7209         * bus/connection.c (bus_connections_setup_connection): record time
7210         when each connection is first set up, and expire them after the
7211         auth timeout passes.
7212
7213 2003-04-24  Havoc Pennington  <hp@redhat.com>
7214
7215         * dbus/dbus-message.c (dbus_message_name_is): rename
7216         (dbus_message_service_is): rename
7217         (dbus_message_sender_is): rename
7218         (dbus_message_get_service): rename
7219
7220 2003-04-24  Havoc Pennington  <hp@redhat.com>
7221
7222         * configure.in: add --enable-checks
7223
7224         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
7225
7226         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
7227         to use thread locks.
7228         (_dbus_connection_handler_destroyed_locked): move some private
7229         functions into proper docs group
7230
7231         * dbus/dbus-internals.h: add _dbus_return_if_fail,
7232         _dbus_return_val_if_fail
7233
7234         Throughout: use dbus_return_if_fail
7235
7236 2003-04-23  James Willcox  <jwillcox@gnome.org>
7237
7238         * glib/dbus-glib.h:
7239         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
7240         (dbus_connection_setup_with_g_main),
7241         (dbus_server_setup_with_g_main):
7242         * glib/test-dbus-glib.c: (main):
7243         * glib/test-thread-client.c: (main):
7244         * glib/test-thread-server.c: (new_connection_callback), (main):
7245         * tools/dbus-monitor.c: (main):
7246
7247         Added a GMainContext argument to dbus_connection_setup_with_g_main()
7248         and dbus_server_setup_with_g_main().
7249
7250 2003-04-20  Havoc Pennington  <hp@pobox.com>
7251
7252         * doc/dbus-specification.sgml: document the restrictions on
7253         message and service names
7254
7255 2003-04-22  Havoc Pennington  <hp@redhat.com>
7256
7257         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
7258         support, and do some code cleanups to share more code and
7259         speed up array marshal/demarshal.
7260
7261         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
7262
7263         * configure.in: generate dbus-arch-deps.h
7264
7265         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
7266         64-bit typecodes
7267
7268 2003-04-22  Havoc Pennington  <hp@redhat.com>
7269
7270         * test/data/valid-messages/opposite-endian.message: fix test
7271         to use proper type for rply field
7272
7273         * test/data/invalid-messages: add tests for below validation
7274
7275         * dbus/dbus-message.c (decode_header_data): validate field types,
7276         and validate that named fields are valid names
7277         (decode_name_field): consider messages in the
7278         org.freedesktop.Local. namespace to be invalid.
7279
7280         * dbus/dbus-string.c (_dbus_string_validate_name): new
7281
7282 2003-04-19  Havoc Pennington  <hp@pobox.com>
7283
7284         * bus/driver.c (bus_driver_handle_hello): check limits and
7285         return an error if they are exceeded.
7286
7287         * bus/connection.c: maintain separate lists of active and inactive
7288         connections, and a count of each. Maintain count of completed
7289         connections per user. Implement code to check connection limits.
7290
7291         * dbus/dbus-list.c (_dbus_list_unlink): export
7292
7293         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
7294         number of bytes in the message queue for a connection
7295
7296 2003-04-18  Havoc Pennington  <hp@pobox.com>
7297
7298         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
7299
7300         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
7301         memleaks
7302
7303         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
7304         on realloc be sure to update the pointer in the keyring
7305
7306         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
7307         offset to avoid writing to unallocated memory
7308
7309         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
7310         try the next mechanism, so we properly handle OOM
7311
7312         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
7313         on OOM.
7314         (_dbus_keyring_new): fix OOM bug
7315         (_dbus_keyring_new_homedir): always set error; impose a maximum
7316         number of keys we'll load from the file, mostly to speed up the
7317         test suite and make its OOM checks more useful, but also for
7318         general sanity.
7319
7320         * dbus/dbus-auth.c (process_error_server): reject authentication
7321         if we get an error from the client
7322         (process_cancel): on cancel, send REJECTED, per the spec
7323         (process_error_client): send CANCEL if we get an error from the
7324         server.
7325
7326 2003-04-18  Havoc Pennington  <hp@pobox.com>
7327
7328         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
7329         debug spew
7330
7331         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
7332         handling problem
7333
7334         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
7335         about DBUS_TEST_HOMEDIR once
7336
7337         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
7338         the environment
7339
7340         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
7341         config file so we test the right thing
7342
7343         Throughout: assorted docs improvements
7344
7345 2003-04-18  Havoc Pennington  <hp@pobox.com>
7346
7347         * glib/dbus-gmain.c: adapt to watch changes
7348
7349         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
7350
7351         * dbus/dbus-server.h: remove dbus_server_handle_watch
7352
7353         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
7354
7355         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
7356         like DBusTimeout, so we don't need dbus_connection_handle_watch
7357         etc.
7358
7359 2003-04-17  Havoc Pennington  <hp@redhat.com>
7360
7361         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
7362         database usage so it all goes via the DBusUserDatabase cache.
7363
7364 2003-04-17  Havoc Pennington  <hp@redhat.com>
7365
7366         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
7367         there was an OOM watch we skipped, we always return TRUE so we
7368         iterate again to have a look at it again. Fixes test suite hang.
7369         Code rearrangement also lets us lose some memset and only iterate
7370         over callbacks once.
7371
7372         * bus/driver.c (bus_driver_handle_message): sense of test for
7373         reply was backward
7374
7375 2003-04-16  Havoc Pennington  <hp@pobox.com>
7376
7377         * doc/dbus-specification.sgml: make spec say serials are unsigned
7378
7379         * dbus/dbus-message.h: change message serials to unsigned
7380
7381         * dbus/dbus-connection.c: adapt to message serials being unsigned
7382
7383 2003-04-15  Havoc Pennington  <hp@pobox.com>
7384
7385         * bus/bus.c: create and keep around a shared DBusUserDatabase
7386         object.
7387
7388         * bus/connection.c (bus_connection_get_groups): don't cache
7389         groups for user in the connection object, since user database
7390         object now does that.
7391
7392 2003-04-16  Havoc Pennington  <hp@redhat.com>
7393
7394         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
7395         list of size counters
7396         (_dbus_message_loader_putback_message_link): put back a popped link
7397
7398         * dbus/dbus-connection.c
7399         (dbus_connection_set_max_live_messages_size): rename
7400         max_received_size
7401         (dbus_connection_get_outgoing_size): get size of outgoing
7402         queue
7403         (_dbus_connection_set_connection_counter): remove this cruft
7404
7405 2003-04-14  Havoc Pennington  <hp@redhat.com>
7406
7407         * dbus/dbus-userdb.c: user database abstraction, mostly to get
7408         caching, but at some point we might want to be able to use a
7409         different database.
7410
7411         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
7412         SHA1 conf file to test the sha1 auth mechanism, since the regular
7413         test always uses EXTERNAL when available.
7414
7415         * configure.in,
7416         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
7417         add conf file that requires use of sha1 auth
7418
7419 2003-04-13  Havoc Pennington  <hp@pobox.com>
7420
7421         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
7422         from Philip Blundell to send messages and monitor them.
7423
7424 2003-04-13  Havoc Pennington  <hp@pobox.com>
7425
7426         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
7427         callbacks
7428
7429         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
7430         users
7431
7432         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7433         fix to only recover unused bytes if we're already authenticated
7434         (_dbus_transport_get_is_authenticated): fix to still mark us
7435         authenticated if there are unused bytes.
7436
7437         * bus/dispatch.c: implement security policy checking
7438
7439         * bus/connection.c (bus_transaction_send_from_driver): new
7440
7441         * bus/bus.c (bus_context_check_security_policy): new
7442
7443         * bus/dispatch.c (send_service_nonexistent_error): delete this,
7444         now we just set the DBusError and it gets converted to an error
7445         reply.
7446
7447         * bus/connection.c (allow_user_function): enable code using actual
7448         data from the config file
7449
7450         * bus/policy.c (list_allows_user): handle wildcard rules for
7451         user/group connection perms
7452
7453 2003-04-13  Havoc Pennington  <hp@pobox.com>
7454
7455         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
7456
7457         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
7458
7459         * bus/policy.c (bus_policy_append_mandatory_rule)
7460         (bus_policy_append_default_rule, bus_policy_append_user_rule)
7461         (bus_policy_append_group_rule): new functions
7462
7463 2003-04-12  Havoc Pennington  <hp@pobox.com>
7464
7465         * bus/config-parser.c (bus_config_parser_new): fix a memleak
7466
7467         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
7468         the pid/gid/uid, just for paranoia.
7469
7470         * test/break-loader.c (randomly_do_n_things): find a byte
7471         containing a type code, and randomly change it to a different
7472         type code.
7473
7474 2003-04-12  Havoc Pennington  <hp@pobox.com>
7475
7476         * bus/policy.h: change BusPolicy to be the thing from the config
7477         file, and rename old BusPolicy to BusClientPolicy
7478
7479         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
7480         match change in how policy works
7481
7482         * dbus/dbus-internals.h: mark assert_not_reached as
7483         __attribute((noreturn))__
7484
7485 2003-04-11  Havoc Pennington  <hp@redhat.com>
7486
7487         * doc/dbus-specification.sgml: fix a spot with the wrong name for
7488         the broadcast service. Use boolean return for ServiceExists.
7489
7490 2003-04-11  Havoc Pennington  <hp@redhat.com>
7491
7492         * configure.in: add another directory to look for qt in.
7493
7494 2003-04-11  Havoc Pennington  <hp@redhat.com>
7495
7496         * AUTHORS: add Colin Walters
7497
7498 2003-04-11  Havoc Pennington  <hp@redhat.com>
7499
7500         * NEWS: update
7501
7502         * configure.in: 0.9
7503
7504 2003-04-11  Havoc Pennington  <hp@redhat.com>
7505
7506         * bus/messagebus.in: remove pid file when stopping the
7507         message bus, since the bus won't have privileges to remove it
7508         itself.
7509
7510 2003-04-11  Havoc Pennington  <hp@redhat.com>
7511
7512         * bus/bus.c (bus_context_new): move credentials change after
7513         creating pidfile
7514
7515 2003-04-11  Havoc Pennington  <hp@pobox.com>
7516
7517         * test/decode-gcov.c: add "below average functions" to the
7518         coverage report, and change how some of the code works.
7519
7520         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
7521         not in the coverage stats.
7522
7523         * test/test-service.c (main): use _dbus_verbose not fprintf in a
7524         couple places so running the test suite doesn't result in megaspam.
7525
7526 2003-04-11  Havoc Pennington  <hp@pobox.com>
7527
7528         * bus/dispatch.c (check_existent_service_activation): accept a no
7529         memory error in a place we didn't before
7530
7531         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
7532         in case the first one failed," since the test suite is less
7533         broken now.
7534
7535 2003-04-10  Havoc Pennington  <hp@pobox.com>
7536
7537         * bus/dispatch.c (check_segfault_service_activation): add test
7538         for launching an executable that just crashes.
7539
7540         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
7541         don't leave a million cores. We'll see how portable this is.
7542
7543 2003-04-10  Havoc Pennington  <hp@pobox.com>
7544
7545         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
7546         the possible parent failures before we fork, so that we don't
7547         fail to create a babysitter after creating the child.
7548
7549         * bus/activation.c (bus_activation_activate_service): kill child
7550         if we don't successfully complete the activation.
7551
7552 2003-04-10  Havoc Pennington  <hp@redhat.com>
7553
7554         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
7555         the connection if it's disconnected
7556
7557         * bus/activation.c (bus_activation_service_created): use new
7558         transaction features to roll back removal of pending activation if
7559         we don't successfully create the service after all. Don't remove
7560         pending activation if the function fails.
7561
7562         * dbus/dbus-list.c (_dbus_list_insert_before_link)
7563         (_dbus_list_insert_after_link): new code to facilitate
7564         services.c fixes
7565
7566         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
7567         new functionality, so we can preallocate the ability to insert
7568         into a hash table.
7569
7570         * bus/connection.c (bus_transaction_add_cancel_hook): new function
7571         allowing us to put custom hooks in a transaction to be used for
7572         cancelling said transaction
7573
7574         * doc/dbus-specification.sgml: add some discussion of secondary
7575         service owners, and disallow zero-length service names
7576
7577         * bus/services.c (bus_registry_acquire_service): new function,
7578         splits out part of bus_driver_handle_acquire_service() and fixes
7579         a bug where we didn't remove the service doing the acquiring
7580         from the secondary queue if we failed to remove the current owner
7581         from the front of the queue.
7582
7583 2003-04-10  Alexander Larsson  <alexl@redhat.com>
7584
7585         * doc/dbus-specification.sgml:
7586         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
7587
7588 2003-04-10  Alexander Larsson  <alexl@redhat.com>
7589
7590         * bus/.cvsignore:
7591         * glib/.cvsignore:
7592         * test/.cvsignore:
7593         Added files to cvsignore
7594
7595         * dbus/dbus-message.h:
7596         * dbus/dbus-message.c: (dbus_message_iter_get_named):
7597         Make get_named() take two out argument and return a boolean.
7598         (dbus_message_iter_get_args_valist):
7599         Update usage of get_named().
7600         (dbus_message_iter_append_byte):
7601         Fix typo
7602         (dbus_message_iter_append_named)
7603         Fix typo
7604         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
7605         More tests.
7606
7607 2003-04-10  Alexander Larsson  <alexl@redhat.com>
7608
7609         * dbus/dbus-marshal.[ch]:
7610         Add array_type_pos argument to _dbus_marshal_validate_arg.
7611         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
7612
7613         * dbus/dbus-message.[ch]:
7614         Multi-dimensional arrays have full type specification in the
7615         outermost array. Iter code re-arranged to handle this.
7616         Added some more iter tests.
7617
7618         * doc/dbus-specification.sgml:
7619         Add me to authors.
7620         Remove old FIXME.
7621         Update new array encoding description.
7622         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
7623
7624         * test/data/invalid-messages/array-with-mixed-types.message:
7625         * test/data/valid-messages/array-of-array-of-uint32.message:
7626         Change to the new array format.
7627
7628         * test/data/invalid-messages/too-short-dict.message:
7629         Fix bug in test.
7630
7631         * test/data/valid-messages/recursive-types.message:
7632         Fix up and extend test.
7633
7634 2003-04-10  Havoc Pennington  <hp@pobox.com>
7635
7636         * bus/dispatch.c: lots of fixes
7637
7638         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
7639         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
7640         that was crack, broke the test service.
7641
7642         * dbus/dbus-transport.c (_dbus_transport_open): fix error
7643         handling to avoid piling up errors if we get a failure on the
7644         first address.
7645
7646         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
7647         pid in assertion failures.
7648
7649         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
7650         to some fixed size of file descriptor array. Don't return TRUE
7651         anytime a timeout exists, that led to lots of busy loop silliness
7652         in the tests.
7653
7654 2003-04-09  Havoc Pennington  <hp@redhat.com>
7655
7656         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
7657         I'd checked this in earlier but hadn't.
7658
7659 2003-04-09  Havoc Pennington  <hp@redhat.com>
7660
7661         * bus/dispatch.c (bus_dispatch_test): get a bit further through
7662         the activation test (man this is getting old!)
7663
7664 2003-04-09  Havoc Pennington  <hp@redhat.com>
7665
7666         * test/test-utils.c: use dispatch status function to fix this up
7667
7668         * bus/connection.c (connection_watch_callback): don't dispatch
7669         from here
7670         (connection_timeout_callback): don't dispatch from here
7671         (bus_connections_setup_connection): set the dispatch status function
7672         (bus_connection_disconnected): unset it
7673
7674         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
7675         used to add a connection to be dispatched
7676         (_dbus_loop_iterate): do the dispatching at the end of each
7677         iteration
7678
7679         * dbus/dbus-connection.c
7680         (dbus_connection_set_dispatch_status_function): new function
7681         allowing us to fix up main loop usage
7682         (_dbus_connection_last_unref): free all the various function
7683         user data
7684         (dbus_connection_dispatch): call the DispatchStatusFunction
7685         whenever this function returns
7686         (dbus_connection_handle_watch): call DispatchStatusFunction
7687         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
7688         (reply_handler_timeout): call DispatchStatusFunction
7689         (dbus_connection_flush): call DispatchStatusFunction
7690
7691 2003-04-09  Havoc Pennington  <hp@redhat.com>
7692
7693         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
7694         a memory leak
7695
7696         * bus/dispatch.c (check_service_activated): fix bug in test
7697
7698         * dbus/dbus-mainloop.c (check_timeout): fix this up
7699
7700         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
7701         verbose output so we can sort out output from different processes,
7702         e.g. in the activation case.
7703
7704 2003-04-08  Colin Walters  <walters@gnu.org>
7705
7706         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
7707         the pid file.
7708         (bus_context_new): Set it.
7709         (bus_context_unref): Use it to delete the pid file.
7710
7711 2003-04-08  Havoc Pennington  <hp@redhat.com>
7712
7713         * test/data/invalid-messages/array-with-mixed-types.message:
7714         regression test that fails for the moment
7715
7716         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
7717         tests for convenience
7718
7719         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
7720         array of nil, it broke things.
7721
7722         * test/data/invalid-messages/array-of-nil.message: regression test
7723
7724         * test/data/valid-messages/array-of-array-of-uint32.message:
7725         happened to write this so added it to suite
7726
7727 2003-04-08  Havoc Pennington  <hp@redhat.com>
7728
7729         * bus/driver.c (bus_driver_handle_acquire_service): init
7730         retval/reply before checking name
7731
7732         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
7733         recursion depth argument
7734
7735         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
7736         in the public struct for future extension
7737
7738         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
7739         typo
7740
7741         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
7742         message
7743
7744         * doc/dbus-specification.sgml: fix typo
7745
7746 2003-04-08  Alexander Larsson  <alexl@redhat.com>
7747
7748         Implemented recursive types, named types and new-style iters
7749
7750         * bus/driver.c:
7751         * glib/test-thread-client.c: (thread_func):
7752         * glib/test-thread-server.c: (handle_test_message):
7753         * test/test-service.c: (handle_echo):
7754         Update to new api
7755
7756         * dbus/Makefile.am:
7757         * dbus/dbus-dict.c:
7758         * dbus/dbus-dict.h:
7759         * dbus/dbus.h
7760         Remove DBusDict
7761
7762         * dbus/dbus-internals.c: (_dbus_type_to_string):
7763         Update for new types.
7764
7765         * dbus/dbus-marshal.[ch]:
7766         Implement recursive types and the new marshalling format.
7767         Remove hardcoded dict marshalling.
7768         Marshal named types.
7769
7770         * dbus/dbus-message-builder.c:
7771         Add BYTE_ARRAY.
7772         Remove references to old types
7773
7774         * dbus/dbus-message.[ch]:
7775         New non-refcounted iter API that supports recursive iters.
7776         Use iters for appending, including support for recursive
7777         iters.
7778         Add byte and named type support.
7779         Update everything to new marshalling formats.
7780         Add tests for new API.
7781
7782         * dbus/dbus-protocol.h:
7783         Remove old array types.
7784         Add types: BYTE, ARRAY, DICT, NAMED
7785
7786         * dbus/dbus-string.c:
7787         * dbus/dbus-sysdeps.c:
7788         Make parse_double locale safe.
7789
7790         * dbus/dbus-test-main.c:
7791         Call setlocale.
7792
7793         * dbus/dbus-test.c:
7794         Kill dict test
7795
7796         * doc/dbus-specification.sgml:
7797         Update spec
7798
7799         * test/data/incomplete-messages/missing-body.message:
7800         * test/data/invalid-messages/bad-boolean.message:
7801         * test/data/invalid-messages/bad-boolean-array.message:
7802         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
7803         * test/data/invalid-messages/boolean-has-no-value.message-raw:
7804         * test/data/invalid-messages/too-short-dict.message:
7805         * test/data/valid-messages/dict-simple.message:
7806         * test/data/valid-messages/dict.message:
7807         * test/data/valid-messages/emptiness.message:
7808         * test/data/valid-messages/lots-of-arguments.message:
7809         * test/data/valid-messages/no-padding.message:
7810         * test/data/valid-messages/recursive-types.message:
7811         Add missing NAME fields
7812         Fix up dicts & arrays
7813
7814         * test/data/invalid-messages/dict-with-nil-value.message:
7815         Removed, this is not invalid anymore.
7816
7817         * test/data/valid-messages/recursive-types.message:
7818         Add new test for deeply recursive types.
7819
7820 2003-04-07  Havoc Pennington  <hp@pobox.com>
7821
7822         * bus/driver.c (bus_driver_handle_acquire_service): return an
7823         error if you try to acquire a service that starts with ':'
7824
7825 2003-04-07  Havoc Pennington  <hp@redhat.com>
7826
7827         * doc/dbus-specification.sgml: require that base service names
7828         start with ':' and that the base service is created/deleted
7829         as first and last things a connection does on the bus
7830
7831         * bus/dispatch.c (check_existent_service_activation): lots more
7832         work on the activation test; it doesn't fully pass yet...
7833
7834         * test/test-service.c (main): fix so we don't memleak the
7835         connection to the message bus
7836         (filter_func): accept a message asking us to exit
7837
7838 2003-04-06  Havoc Pennington  <hp@pobox.com>
7839
7840         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
7841         from Colin Walters
7842
7843         * configure.in: fixes to Qt detection from Colin Walters
7844
7845         * doc/Makefile.am: Only remove generated docbook dirs if they
7846         exist, from Colin Walters
7847
7848         * dbus/dbus-bus.c: change how we set well-known connections to
7849         NULL, so that it works if a single connection is stored in
7850         two well-known array slots.
7851
7852         * test/Makefile.am: remove a lot of stuff that isn't immediately
7853         useful, it's in CVS history if we want it.
7854
7855         * test/test-service.c: use dbus-mainloop instead of that
7856         watch.[hc] crack
7857
7858 2003-04-06  Havoc Pennington  <hp@pobox.com>
7859
7860         * dbus/Makefile.am: split lists of sources into stuff that goes in
7861         the library, util functions that go in the lib and are also used
7862         elsewhere, and util functions that are used in tests/daemon but
7863         don't go in the lib.
7864
7865         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
7866         here so it can be used in test binaries also
7867
7868 2003-04-06  Havoc Pennington  <hp@pobox.com>
7869
7870         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
7871         here in the parent process, so we can return an error if it
7872         fails. Also, move some of the code into the child so the parent
7873         is less hosed if we fail midway through.
7874
7875         * bus/bus.c (bus_context_new): move pidfile detection further up
7876         in the function, before we start overwriting sockets and such.
7877
7878         * bus/messagebus.in: adjust this a bit, not sure if it will work.
7879
7880         * configure.in: add --with-system-pid-file and --with-system-socket
7881
7882 2003-04-06  Colin Walters  <walters@verbum.org>
7883
7884         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
7885
7886         * bus/system.conf.in: Declare a pidfile.
7887
7888         * bus/bus.c (bus_context_new): Test for an existing pid file, and
7889         create one (if appropriate).
7890
7891         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
7892         (struct BusConfigParser) [pidfile]: New.
7893         (element_type_to_name, merge_included, start_busconfig_child)
7894         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
7895         (bus_config_parser_unref): Free it.
7896         (bus_config_parser_get_pidfile): New function.
7897
7898         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
7899
7900         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
7901
7902         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
7903
7904         * dbus/dbus-sysdeps.h: Prototype it.
7905
7906 2003-04-06  Havoc Pennington  <hp@pobox.com>
7907
7908         * bus/bus.c (bus_context_new): print the address in here, rather
7909         than in main(), because we need to do it before forking the daemon
7910
7911         * bus/dispatch.c (send_service_nonexistent_error): set the sender
7912         on the service nonexistent error
7913
7914         * bus/driver.c (bus_driver_handle_acquire_service): set the
7915         sender on the AcquireService reply
7916
7917         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
7918         server also listen on a UNIX socket so services can connect to it.
7919
7920 2003-04-06  Havoc Pennington  <hp@pobox.com>
7921
7922         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
7923         so it detects deadlocks and also we actually init threads when
7924         debugging.
7925
7926 2003-04-06  Havoc Pennington  <hp@pobox.com>
7927
7928         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7929         save the domain socket name, and unlink it when we disconnect the
7930         server. Means that at least when we exit normally, we won't leave
7931         a bunch of junk in /tmp
7932
7933         * dbus/dbus-transport-unix.c
7934         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
7935         memory management). (I was making a real change here but then
7936         didn't)
7937
7938 2003-04-06  Havoc Pennington  <hp@pobox.com>
7939
7940         * bus/bus.c (bus_context_new): fix wrong handling of
7941         server_data_slot_unref() in the error case.
7942
7943         * dbus/dbus-internals.h (_dbus_assert): change so it passes
7944         "(condition) != 0" to _dbus_real_assert so that
7945         "_dbus_assert (pointer)" doesn't cause a warning
7946
7947         * bus/main.c (main): accept --print-address option to print out
7948         the message bus address
7949
7950         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
7951
7952         * dbus/dbus-transport.c (_dbus_transport_open): special error for
7953         "tmpdir" option to unix: address on client side
7954
7955         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
7956         to unix: address
7957
7958         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
7959         we can use to create sockets in the test suite.
7960
7961         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
7962         cleanly. To be used for testing.
7963
7964         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
7965
7966         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
7967
7968         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
7969         handle trying to call this when there's no servers active
7970
7971 2003-04-05  Havoc Pennington  <hp@pobox.com>
7972
7973         * NEWS: update
7974
7975         * configure.in: 0.8
7976
7977 2003-04-05  Havoc Pennington  <hp@pobox.com>
7978
7979         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
7980         crash on startup. Need to get "try starting the daemon"
7981         in the test suite I guess. ;-)
7982
7983         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
7984         tracked the number of open connections; it's better done in
7985         application-specific code as you want it to span all servers etc.
7986
7987 2003-04-05  Havoc Pennington  <hp@pobox.com>
7988
7989         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
7990         patch from Colin Walters
7991
7992 2003-04-05  Havoc Pennington  <hp@pobox.com>
7993
7994         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
7995         reality; in fact multiple mechanisms are allowed.
7996
7997         * dbus/dbus-internals.c (_dbus_real_assert)
7998         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
7999         _dbus_assert_not_reached() into functions, so that they don't show
8000         up in basic block counts for test coverage, and don't use up as
8001         much disk space. Does mean slower execution speed though, so
8002         assumes --disable-asserts is the normal production case.
8003
8004 2003-04-05  Havoc Pennington  <hp@pobox.com>
8005
8006         * test/Makefile.am (dist-hook): also dist *.in files
8007
8008         * NEWS: update
8009
8010         * configure.in: 0.7
8011
8012 2003-04-05  Havoc Pennington  <hp@pobox.com>
8013
8014         * dbus/dbus-string.c: docs warning
8015
8016         * dbus/dbus-spawn.c: missing docs
8017
8018         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
8019
8020 2003-04-05  Havoc Pennington  <hp@pobox.com>
8021
8022         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
8023         magic from GLib
8024
8025         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
8026         to -1 once we've reaped the babysitter
8027         (_dbus_babysitter_handle_watch): do as much work as we can, not
8028         just one go of it
8029
8030         * bus/activation.c: add code using DBusBabysitter so that we
8031         handle it when a service fails to start up properly.
8032         (bus_activation_service_created): don't remove the activation
8033         entries as we go, just let them get removed when we free the pending
8034         activation. Unref reply messages after sending them.
8035
8036 2003-04-05  Havoc Pennington  <hp@pobox.com>
8037
8038         * test/decode-gcov.c (main): print per-directory stats in the report
8039
8040         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
8041
8042 2003-04-05  Havoc Pennington  <hp@pobox.com>
8043
8044         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
8045
8046         * test/decode-gcov.c: hack up a little program to suck data
8047         out of gcov files. Yes this is sort of silly.
8048
8049         * configure.in: define something in config.h and do an
8050         AM_CONDITIONAL when gcov is enabled
8051
8052 2003-04-04  Havoc Pennington  <hp@redhat.com>
8053
8054         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
8055         return a "babysitter" object that is used to monitor the status of
8056         the spawned process and reap it when required.
8057
8058         * test/test-segfault.c, test/test-exit.c,
8059         test/test-sleep-forever.c: binaries that do various lame things,
8060         used in the test suite.
8061
8062         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
8063
8064 2003-04-03  Havoc Pennington  <hp@pobox.com>
8065
8066         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
8067         in preparation for modifying it, dbus-sysdeps is getting
8068         a bit unmanageable.
8069
8070 2003-04-03  Havoc Pennington  <hp@redhat.com>
8071
8072         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
8073         have multiple ones
8074
8075         * bus/*.[hc]: adapt to mainloop change
8076
8077 2003-04-03  Havoc Pennington  <hp@redhat.com>
8078
8079         * bus/activation.c (load_directory): fix up memleaks
8080         (bus_activation_entry_free): free the entry
8081
8082         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
8083         we get one from the message bus; fix memleaks.
8084
8085         * dbus/dbus-message.c (dbus_set_error_from_message): new function
8086
8087 2003-04-03  Havoc Pennington  <hp@pobox.com>
8088
8089         * bus/config-parser.c (bus_config_parser_unref): free
8090         list of mechanisms, bug discovered by test suite enhancements
8091         (putting system.conf and session.conf into suite)
8092
8093         * test/Makefile.am, test/test-service.c: add placeholder for a
8094         test service that we'll activate as part of test suite. Doesn't
8095         do anything yet.
8096
8097         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
8098         setting NULL value, and use system malloc not dbus_malloc()
8099         when we have unavoidable memleakage.
8100
8101         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
8102         didn't work, and support DBUS_BUS_ACTIVATION.
8103
8104         * bus/activation.c (child_setup): pass our well-known bus type to
8105         the child
8106
8107         * bus/config-parser.c: support <type> to specify well-known type
8108
8109         * doc/dbus-specification.sgml: document the env variables to
8110         locate well-known buses and find service activator
8111
8112 2003-04-02  Havoc Pennington  <hp@redhat.com>
8113
8114         * test/Makefile.am (all-local): add a rule to copy tests to
8115         builddir, so we can have generated tests. Use this to remove the
8116         silly hack for testing system.conf and session.conf. Will use this
8117         shortly to generate .service files pointing to test binaries.
8118
8119 2003-04-02  Havoc Pennington  <hp@redhat.com>
8120
8121         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
8122         current alloc and needed new length, not max of the doubled
8123         allocation and needed new length. Also, when building tests,
8124         don't do the double-allocation stuff, just realloc every time.
8125
8126 2003-04-02  Havoc Pennington  <hp@redhat.com>
8127
8128         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
8129         in error messages
8130         (_dbus_string_get_dirname): new
8131         (_dbus_sysdeps_test): new
8132         (_dbus_directory_open): include dirnames in error messages
8133
8134         * bus/config-parser.c: interpret <include> and <includedir> and
8135         <servicedir> relative to config file location if the given
8136         filename is not absolute.
8137
8138         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
8139
8140 2003-04-02  Havoc Pennington  <hp@redhat.com>
8141
8142         * bus/connection.c (bus_transaction_send_error_reply): set sender
8143         service for the error, and unref the reply on success
8144
8145         * bus/activation.c: convert to use BusTransaction so OOM can be
8146         handled correctly
8147         (bus_activation_service_created): set sender of the message
8148
8149 2003-04-01  Havoc Pennington  <hp@redhat.com>
8150
8151         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
8152         <includedir> (at least mostly)
8153
8154         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
8155         first, then the user ID
8156
8157 2003-04-01  Havoc Pennington  <hp@pobox.com>
8158
8159         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
8160         function
8161
8162         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
8163
8164         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
8165
8166         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
8167         socket 0777, and unlink any existing socket.
8168
8169         * bus/bus.c (bus_context_new): change our UID/GID and fork if
8170         the configuration file so specifies; set up auth mechanism
8171         restrictions
8172
8173         * bus/config-parser.c (bus_config_parser_content): add support
8174         for <fork> option and fill in code for <auth>
8175
8176         * bus/system.conf.in: add <fork/> to default configuration,
8177         and limit auth mechanisms to EXTERNAL
8178
8179         * doc/config-file.txt (Elements): add <fork>
8180
8181         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
8182         (_dbus_change_identity): new function
8183
8184 2003-03-31  Havoc Pennington  <hp@redhat.com>
8185
8186         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
8187         (_dbus_listen_unix_socket): fix off-by-one error in null
8188         termination spotted by Nalin
8189
8190 2003-03-31  Havoc Pennington  <hp@redhat.com>
8191
8192         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
8193         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
8194         having a real home directory available.
8195
8196 2003-03-31  Havoc Pennington  <hp@redhat.com>
8197
8198         * bus/Makefile.am (install-data-hook): create /var/run/dbus
8199
8200         * bus/messagebus.in: add init script for Red Hat /etc/init.d
8201
8202         * configure.in: add support for specifying a style of init script
8203         to install
8204
8205 2003-03-31  Havoc Pennington  <hp@redhat.com>
8206
8207         Fix some annoying DBusString API and fix all affected code.
8208
8209         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
8210         max_length argument
8211         (_dbus_string_get_data): change to return string instead of using
8212         an out param
8213         (_dbus_string_get_const_data): ditto
8214         (_dbus_string_get_data_len): ditto
8215         (_dbus_string_get_const_data_len): ditto
8216
8217 2003-03-31  Havoc Pennington  <hp@redhat.com>
8218
8219         * bus/main.c (main): fix up the command line arguments to be nicer
8220
8221 2003-03-31  Havoc Pennington  <hp@redhat.com>
8222
8223         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
8224         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
8225         final location that lands in the config file
8226
8227         * bus/config-loader-expat.c (bus_config_load): fix type of
8228         XML_Parser variable
8229
8230         * doc/TODO: remove TODO item for dbus_bus_get()
8231
8232         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
8233
8234 2003-03-31  Havoc Pennington  <hp@pobox.com>
8235
8236         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
8237         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
8238         argument since they are always client side
8239
8240         * dbus/dbus-server.c (dbus_server_get_address): new function
8241
8242         * bus/main.c (main): take the configuration file as an argument.
8243
8244         * test/data/valid-config-files/debug-allow-all.conf: new file to
8245         use with dispatch.c tests for example
8246
8247         * bus/test-main.c (main): require test data dir
8248
8249         * bus/bus.c (bus_context_new): change this to take a
8250         configuration file name as argument
8251
8252         * doc/config-file.txt (Elements): add <servicedir>
8253
8254         * bus/system.conf, bus/session.conf: new files
8255
8256         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
8257         well-known socket if none set
8258
8259         * configure.in: create system.conf and session.conf
8260
8261 2003-03-30  Havoc Pennington  <hp@pobox.com>
8262
8263         * bus/config-parser.c: hacking
8264
8265         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
8266         to shut down, since it could cause weirdness with the DBusList
8267         lock
8268
8269         * dbus/dbus-list.c (_dbus_list_test): add tests for the
8270         link-oriented stack routines
8271         (alloc_link): free the mempool if the first alloc from it fails
8272
8273         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
8274
8275         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
8276         from GLib
8277         (_dbus_string_skip_white): new
8278
8279         * doc/config-file.txt (Elements): add <includedir>
8280
8281 2003-03-28  Havoc Pennington  <hp@pobox.com>
8282
8283         * dbus/dbus-string.c (_dbus_string_copy_data_len)
8284         (_dbus_string_copy_data): new functions
8285
8286 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
8287
8288         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
8289         * dbus/dbus-bus.h:
8290         Add dbus_bus_get.
8291
8292         * dbus/dbus-memory.c:
8293         Fix a doc comment.
8294
8295 2003-03-28  Havoc Pennington  <hp@pobox.com>
8296
8297         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
8298         I think it may have just been superstition. Not sure.
8299
8300         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
8301         failures that were not being handled.
8302
8303         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
8304
8305         * dbus/dbus-memory.c: add ability to set number of mallocs in a
8306         row that will fail on out-of-memory.
8307
8308         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
8309         function for testing out-of-memory handling.
8310
8311         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
8312         allocation functions, they do map exactly to the expat ones.
8313
8314 2003-03-27  Havoc Pennington  <hp@redhat.com>
8315
8316         * bus/config-loader-libxml.c (bus_config_load): add another error
8317         check
8318
8319 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
8320
8321         * doc/TODO:
8322         Add note about automatic service activation.
8323
8324         * doc/dbus-specification.sgml:
8325         Rename the specification and clarify a few things.
8326
8327 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
8328
8329         * Doxyfile.in:
8330         * dbus/dbus-address.c:
8331         * dbus/dbus-dict.c:
8332         * dbus/dbus-marshal.c:
8333         * dbus/dbus-server-debug-pipe.c:
8334         * dbus/dbus-transport-unix.c:
8335         Fix documentation warnings.
8336
8337 2003-03-26  Havoc Pennington  <hp@pobox.com>
8338
8339         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
8340         after every test so it's quick and easy to see which leaked, and
8341         so we test multiple dbus_shutdown() calls
8342
8343         * configure.in: change configure.in XML stuff to also support
8344         expat
8345
8346         * config-loader-libxml.c: some hacking
8347
8348         * config-loader-expat.c: some hacking
8349
8350         * config-parser.c: some hacking, plus tests
8351
8352 2003-03-25  Havoc Pennington  <hp@redhat.com>
8353
8354         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
8355
8356         * configure.in: add --with-xml option to specify XML library,
8357         right now only libxml is supported.
8358
8359         * bus/config-loader-libxml.c, config-parser.c: sync some minor
8360         nonworking code between home and work, still just stubs
8361
8362 2003-03-24  Havoc Pennington  <hp@redhat.com>
8363
8364         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
8365         file
8366
8367         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
8368         NULL argument for "message" if the error is a well-known one,
8369         fill in a generic message in this case.
8370
8371         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
8372         favor of DBusError
8373
8374         * bus/test.c (bus_test_flush_bus): add
8375
8376         * bus/policy.c (bus_policy_test): test code stub
8377
8378 2003-03-24  Havoc Pennington  <hp@pobox.com>
8379
8380         * bus/connection.c (bus_connections_setup_connection): set up
8381         the "can this user connect" function, but it always returns
8382         TRUE until we have a config file parser so we can have a config
8383         file that allows connections.
8384
8385 2003-03-23  Havoc Pennington  <hp@pobox.com>
8386
8387         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
8388         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
8389         the mutex, so we can check for proper memory management
8390         and OOM handling.
8391
8392         * dbus/dbus-dataslot.c: remove the mutex from
8393         DBusDataSlotAllocator and lock it manually when using it,
8394         to simplify fitting it into the global slots framework.
8395
8396         * dbus/dbus-threads.c (init_static_locks): rework how we're
8397         handling global locks so they are easily shut down.
8398
8399         * bus/policy.c (bus_policy_append_rule): fix
8400
8401         * bus/test-main.c (main): check for memleaks
8402
8403         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
8404         test suite check for memleaks
8405
8406         * dbus/dbus-memory.c: add support in test mode for tracking
8407         number of outstanding blocks
8408
8409 2003-03-23  Havoc Pennington  <hp@pobox.com>
8410
8411         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
8412         policies code
8413
8414         * dbus/dbus-hash.h: add ULONG hash keys
8415
8416         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
8417         (_dbus_get_group_id): new function
8418
8419 2003-03-20  Havoc Pennington  <hp@redhat.com>
8420
8421         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
8422         new function
8423         (dbus_connection_get_unix_user): new function
8424
8425 2003-03-20  Havoc Pennington  <hp@pobox.com>
8426
8427         * bus/connection.c (bus_connection_send_oom_error): assert that
8428         message has a sender
8429         (connection_execute_transaction): ditto
8430         (bus_connection_preallocate_oom_error): fix to set the sender, and
8431         set recipient to the destination service, not the bus driver
8432
8433         * bus/policy.c: hacking
8434
8435         * dbus/dbus-message.c (dbus_message_service_is): new function
8436         (dbus_message_sender_is): new
8437
8438 2003-03-19  Havoc Pennington  <hp@redhat.com>
8439
8440         * bus/policy.c: start sketching code for policy restrictions on
8441         what connections can do.
8442
8443 2003-03-18  Havoc Pennington  <hp@redhat.com>
8444
8445         * doc/TODO: some notes on high-level todo items. Little nitpick
8446         stuff is all in @todo, so no need to add it here.
8447
8448         * doc/config-file.txt: some notes on how config file might look
8449
8450 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
8451
8452         * configure.in: 0.6
8453
8454         * NEWS: Update.
8455
8456 2003-03-17  Havoc Pennington  <hp@redhat.com>
8457
8458         * dbus/dbus-internals.h: add gcc attributes so that
8459         our printf-style functions warn on bad arguments to
8460         format
8461
8462         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
8463         format bug
8464
8465         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8466         printf format bug
8467
8468 2003-03-17  Havoc Pennington  <hp@redhat.com>
8469
8470         * bus/test-main.c (main): make it print something as it runs
8471         so make check doesn't look stuck
8472
8473         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
8474         from CVS, now obsolete
8475
8476 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
8477
8478         * bus/dispatch.c: (bus_dispatch):
8479         Refetch the service name since it may have been reallocated
8480         when dbus_message_set_sender was called.
8481
8482         * dbus/dbus-sysdeps.c: (_dbus_accept):
8483         Add address and address length variables and use them to stop
8484         valgrind from complaining.
8485
8486 2003-03-17  Havoc Pennington  <hp@pobox.com>
8487
8488         All tests pass, no memleaks, no valgrind complaints.
8489
8490         * bus/test.c: refcount handler_slot
8491
8492         * bus/connection.c (bus_connections_new): refcount
8493         connection_data_slot
8494
8495         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
8496         bytes so that auth scripts pass.
8497
8498         * bus/dispatch.c: init message_handler_slot so it gets allocated
8499         properly
8500
8501         * bus/dispatch.c (message_handler_slot_ref): fix memleak
8502
8503         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
8504         dealloc server_pipe_hash when no longer used for benefit of
8505         leak checking
8506
8507         * dbus/dbus-auth.c (process_command): memleak fix
8508
8509         * bus/dispatch.c (check_hello_message): memleak fix
8510
8511 2003-03-16  Havoc Pennington  <hp@pobox.com>
8512
8513         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
8514
8515 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
8516
8517         * bus/activation.c (bus_activation_activate_service): Append
8518         the pending activation entry to the list of pending activations.
8519
8520 2003-03-16  Havoc Pennington  <hp@pobox.com>
8521
8522         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
8523         connections
8524
8525         * dbus/dbus-address.c (create_entry): fix OOM handling when
8526         failing to alloc entry->method
8527
8528 2003-03-16  Havoc Pennington  <hp@pobox.com>
8529
8530         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
8531         the watch
8532
8533         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8534         add some missing dbus_set_result
8535
8536         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
8537         alloc the DBusMessageHandler
8538
8539         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
8540         the transport here, since we call this from the finalizer; it
8541         resulted in a double-finalize.
8542
8543         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
8544         where we tried to use transport->connection that was NULL,
8545         happened when transport was disconnected early on due to OOM
8546
8547         * bus/*.c: adapt to handle OOM for watches/timeouts
8548
8549         * dbus/dbus-transport-unix.c: port to handle OOM during
8550         watch handling
8551
8552         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
8553         reference to unused bytes instead of a copy
8554
8555         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
8556         out of memory
8557
8558         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
8559         FALSE on OOM
8560
8561         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
8562         of memory
8563
8564 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
8565
8566         * doc/dbus-specification.sgml:
8567         Document reply message for ActivateService.
8568
8569 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
8570
8571         * bus/activation.c: (bus_pending_activation_entry_free),
8572         (bus_pending_activation_free), (bus_activation_new),
8573         (bus_activation_unref), (bus_activation_service_created),
8574         (bus_activation_activate_service):
8575         * bus/activation.h:
8576         * bus/bus.c: (bus_context_new):
8577         * bus/desktop-file.c: (new_section):
8578         * bus/driver.c: (bus_driver_send_service_deleted),
8579         (bus_driver_handle_activate_service):
8580         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
8581         * bus/services.h:
8582         * dbus/dbus-connection.c:
8583         (dbus_connection_send_with_reply_and_block):
8584         * dbus/dbus-message.c: (dbus_message_append_args_valist):
8585         * dbus/dbus-protocol.h:
8586         Make activation work better. Now pending activations will be queued
8587         and the daemon won't try to activate services that are already registered.
8588
8589 2003-03-16  Havoc Pennington  <hp@pobox.com>
8590
8591         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
8592         connection data
8593
8594         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
8595         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
8596
8597 2003-03-16  Havoc Pennington  <hp@pobox.com>
8598
8599         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
8600         this. always run the test suite before commit...
8601
8602         * bus/*: adapt to DBusConnection API changes
8603
8604         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
8605         requires renaming stuff to avoid dbus_connection_dispatch name
8606         conflict.
8607
8608         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
8609         function
8610
8611         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8612         separate from _dbus_message_loader_return_buffer()
8613
8614         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
8615         this, because it's now always broken to use; the number of
8616         messages in queue vs. the number still buffered by the message
8617         loader is undefined/meaningless. Should use
8618         dbus_connection_get_dispatch_state().
8619         (dbus_connection_dispatch): rename from
8620         dbus_connection_dispatch_message
8621
8622 2003-03-16  Havoc Pennington  <hp@pobox.com>
8623
8624         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
8625         implementation
8626
8627 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
8628
8629         * dbus/dbus-connection.c:
8630         (dbus_connection_send_with_reply_and_block):
8631         Decrease connection->n_incoming when removing an entry
8632         from the list.
8633         * dbus/dbus-dict.c: (dbus_dict_entry_free),
8634         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
8635         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
8636         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
8637         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
8638         (dbus_dict_get_byte_array):
8639         Handle NULL arrays and strings. Also add support for byte arrays.
8640
8641         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
8642         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
8643         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
8644         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
8645         (_dbus_demarshal_dict), (demarshal_and_validate_len),
8646         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
8647         * dbus/dbus-marshal.h:
8648         Add support for marshalling and demarshalling empty arrays and strings.
8649
8650         * dbus/dbus-message.c: (dbus_message_append_args_valist),
8651         (dbus_message_append_string_array),
8652         (dbus_message_iter_get_boolean),
8653         (dbus_message_iter_get_boolean_array),
8654         (dbus_message_iter_get_int32_array),
8655         (dbus_message_iter_get_uint32_array),
8656         (dbus_message_iter_get_double_array),
8657         (dbus_message_iter_get_byte_array),
8658         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
8659         (check_message_handling):
8660         Add support for getting empty arrays and dicts.
8661
8662         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
8663         Don't do any validation at all for now, that's better than just checking
8664         for ASCII.
8665
8666         * test/data/valid-messages/emptiness.message:
8667         New test message with lots of empty arrays.
8668
8669 2003-03-16  Havoc Pennington  <hp@pobox.com>
8670
8671         * dbus/dbus-connection.c
8672         (_dbus_connection_queue_received_message_link): new function that
8673         can't fail due to OOM
8674
8675         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
8676         new function pops a message together with a list link
8677         containing it.
8678
8679         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
8680         message queuing functions to avoid needing to alloc memory
8681
8682 2003-03-16  Havoc Pennington  <hp@pobox.com>
8683
8684         Oops - test code was only testing failure of around 30 of the
8685         mallocs in the test path, but it turns out there are 500+
8686         mallocs. I believe this was due to misguided linking setup such
8687         that there was one copy of dbus_malloc etc. in the daemon and one
8688         in the shared lib, and only daemon mallocs were tested. In any
8689         case, the test case now tests all 500+ mallocs, and doesn't pass
8690         yet, though there are lots of fixes in this patch.
8691
8692         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
8693         this so that it doesn't need to allocate memory, since it
8694         has no way of indicating failure due to OOM (and would be
8695         annoying if it did).
8696
8697         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
8698
8699         * bus/Makefile.am: rearrange to create two self-contained
8700         libraries, to avoid having libraries with overlapping symbols.
8701         that was resulting in weirdness, e.g. I'm pretty sure there
8702         were two copies of global static variables.
8703
8704         * dbus/dbus-internals.c: move the malloc debug stuff to
8705         dbus-memory.c
8706
8707         * dbus/dbus-list.c (free_link): free list mempool if it becomes
8708         empty.
8709
8710         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
8711
8712         * dbus/dbus-address.c (dbus_parse_address): free list nodes
8713         on failure.
8714
8715         * bus/dispatch.c (bus_dispatch_add_connection): free
8716         message_handler_slot when no longer using it, so
8717         memory leak checkers are happy for the test suite.
8718
8719         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
8720
8721         * bus/bus.c (new_connection_callback): disconnect in here if
8722         bus_connections_setup_connection fails.
8723
8724         * bus/connection.c (bus_connections_unref): fix to free the
8725         connections
8726         (bus_connections_setup_connection): if this fails, don't
8727         disconnect the connection, just be sure there are no side
8728         effects.
8729
8730         * dbus/dbus-string.c (undo_alignment): unbreak this
8731
8732         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
8733         leaking
8734         (_dbus_auth_new): fix the order in which we free strings
8735         on OOM failure
8736
8737         * bus/connection.c (bus_connection_disconnected): fix to
8738         not send ServiceDeleted multiple times in case of memory
8739         allocation failure
8740
8741         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
8742         get the base service name
8743         (dbus_bus_register_client): don't return base service name,
8744         instead store it on the DBusConnection and have an accessor
8745         function for it.
8746         (dbus_bus_register_client): rename dbus_bus_register()
8747
8748         * bus/dispatch.c (check_hello_message): verify that other
8749         connections on the bus also got the correct results, not
8750         just the one sending hello
8751
8752 2003-03-15  Havoc Pennington  <hp@pobox.com>
8753
8754         Make it pass the Hello handling test including all OOM codepaths.
8755         Now to do other messages...
8756
8757         * bus/services.c (bus_service_remove_owner): fix crash when
8758         removing owner from an empty list of owners
8759         (bus_registry_ensure): don't leave service in the list of
8760         a connection's owned services if we fail to put the service
8761         in the hash table.
8762
8763         * bus/connection.c (bus_connection_preallocate_oom_error): set
8764         error flag on the OOM error.
8765
8766         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8767         handle _dbus_transport_set_connection failure
8768
8769         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
8770         to create watches up front and simply enable/disable them as
8771         needed.
8772         (unix_connection_set): this can now fail on OOM
8773
8774         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
8775         of enabling/disabling a watch or timeout.
8776
8777         * bus/loop.c (bus_loop_iterate): don't touch disabled
8778         watches/timeouts
8779
8780         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
8781
8782 2003-03-15  Havoc Pennington  <hp@pobox.com>
8783
8784         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
8785         write useful test code, after all that futzing around ;-)
8786
8787         Test does not yet pass because we can't handle OOM in
8788         _dbus_transport_messages_pending (basically,
8789         dbus_connection_preallocate_send() does not prealloc the write
8790         watch). To fix this, I think we need to add new stuff to
8791         set_watch_functions, namely a SetEnabled function so we can alloc
8792         the watch earlier, then enable it later.
8793
8794         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
8795         dbus-memory.c to the convenience lib
8796
8797         * bus/test.c: rename some static functions to keep them clearly
8798         distinct from stuff in connection.c. Handle client disconnection.
8799
8800 2003-03-14  Havoc Pennington  <hp@pobox.com>
8801
8802         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
8803         transport, tests more of the real codepath. Set up clients
8804         with bus_setup_debug_client.
8805
8806         * bus/test.c (bus_setup_debug_client): function to set up debug
8807         "clients" on the main loop
8808
8809         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
8810         support
8811
8812         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
8813         server type
8814
8815         * dbus/dbus-server-debug.c: support a debug server based on pipes
8816
8817         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
8818         (_dbus_close): new function
8819
8820         * configure.in: check for socketpair
8821
8822 2003-03-14  Havoc Pennington  <hp@redhat.com>
8823
8824         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
8825         cheesy hack
8826
8827         * dbus/dbus-transport-debug.c: rework this a good bit to be
8828         less complicated. hopefully still works.
8829
8830         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
8831         manually
8832
8833         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
8834         after running it
8835
8836         * dbus/dbus-message.c (dbus_message_copy): rename from
8837         dbus_message_new_from_message, fix it up to copy
8838         all the message fields, add test case
8839
8840         * bus/dispatch.c (bus_dispatch_test): add some more test code,
8841         not quite passing yet
8842
8843 2003-03-14  Havoc Pennington  <hp@pobox.com>
8844
8845         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
8846         until no work remains" in test code. (the large diff here
8847         is just code movement, no actual changes)
8848
8849         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
8850         1, no point waiting around for test code.
8851         (_dbus_server_debug_accept_transport): unref the timeout
8852         after adding it (right?)
8853
8854         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
8855
8856 2003-03-13  Havoc Pennington  <hp@redhat.com>
8857
8858         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
8859         out of memory
8860
8861         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
8862         of memory
8863
8864         * dbus/dbus-connection.h: Make AddWatchFunction and
8865         AddTimeoutFunction return a bool so they can fail on out-of-memory
8866
8867         * bus/bus.c (bus_context_new): set up timeout handlers
8868
8869         * bus/connection.c (bus_connections_setup_connection): set up
8870         timeout handlers
8871
8872         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
8873         can fail
8874
8875         * bus/bus.c (bus_context_new): adapt to changes
8876
8877         * bus/connection.c: adapt to changes
8878
8879         * test/watch.c: adapt to DBusWatch changes
8880
8881         * bus/dispatch.c (bus_dispatch_test): started adding this but
8882         didn't finish
8883
8884 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
8885
8886         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
8887
8888 2003-03-13  Havoc Pennington  <hp@pobox.com>
8889
8890         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
8891         set up a test framework as for the library
8892
8893 2003-03-12  Havoc Pennington  <hp@pobox.com>
8894
8895         Throughout: purge global variables, introduce BusActivation,
8896         BusConnections, BusRegistry, etc. objects instead.
8897
8898         * bus/bus.h, bus/bus.c: introduce BusContext as a global
8899         message bus object
8900
8901         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
8902         going to redo this a bit differently I think
8903
8904 2003-03-12  Havoc Pennington  <hp@redhat.com>
8905
8906         Mega-patch that gets the message bus daemon initially handling
8907         out-of-memory. Work still needed. Also lots of random
8908         moving stuff to DBusError instead of ResultCode.
8909
8910         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
8911
8912         * dbus/dbus-connection.c
8913         (dbus_connection_send_with_reply_and_block): use DBusError
8914
8915         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
8916         DBusResultCode
8917
8918         * dbus/dbus-connection.c (dbus_connection_send): drop the result
8919         code here, as the only failure possible is OOM.
8920
8921         * bus/connection.c (bus_connection_disconnect):
8922         rename bus_connection_disconnected as it's a notification only
8923
8924         * bus/driver.c (bus_driver_handle_acquire_service): don't free
8925         "name" on get_args failure, should be done by get_args;
8926         don't disconnect client for bad args, just return an error.
8927         (bus_driver_handle_service_exists): ditto
8928
8929         * bus/services.c (bus_services_list): NULL-terminate returned array
8930
8931         * bus/driver.c (bus_driver_send_service_lost)
8932         (bus_driver_send_service_acquired): send messages from driver to a
8933         specific client to the client's unique name, not to the broadcast
8934         service.
8935
8936         * dbus/dbus-message.c (decode_header_data): reject messages that
8937         contain no name field
8938         (_dbus_message_get_client_serial): rename to
8939         dbus_message_get_serial and make public
8940         (_dbus_message_set_serial): rename from set_client_serial
8941         (_dbus_message_set_reply_serial): make public
8942         (_dbus_message_get_reply_serial): make public
8943
8944         * bus/connection.c (bus_connection_foreach): allow stopping
8945         iteration by returning FALSE from foreach function.
8946
8947         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
8948         (dbus_connection_free_preallocated_send)
8949         (dbus_connection_preallocate_send): new API for sending a message
8950         without possibility of malloc failure.
8951         (dbus_connection_send_message): rename to just
8952         dbus_connection_send (and same for whole function family)
8953
8954         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
8955
8956         * dbus/dbus-sysdeps.c (_dbus_exit): new function
8957
8958         * bus/activation.c: handle/return errors
8959
8960         * dbus/dbus-errors.h: add more DBUS_ERROR #define
8961
8962         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
8963         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
8964         (_dbus_result_from_errno): move to this file
8965
8966 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
8967
8968         * dbus/dbus-marshal.c:
8969         (_dbus_marshal_set_string):
8970         Take a length argument so we can marshal the correct string
8971         length.
8972
8973         (_dbus_marshal_dict), (_dbus_demarshal_dict),
8974         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
8975         (_dbus_marshal_test):
8976         * dbus/dbus-marshal.h:
8977         Add support for marshalling and demarshalling dicts.
8978
8979         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
8980         Add support for TYPE DICT.
8981
8982         * dbus/dbus-message.c: (set_string_field):
8983         Adjust header padding.
8984
8985         (dbus_message_append_args_valist), (dbus_message_append_dict),
8986         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
8987         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
8988         (check_message_handling), (check_have_valid_message):
8989         * dbus/dbus-message.h:
8990         Add functions for setting and getting dicts.
8991
8992         * dbus/dbus-protocol.h:
8993         Add DBUS_TYPE_DICT.
8994
8995         * dbus/dbus.h:
8996         Add dbus-dict.h
8997
8998         * doc/dbus-specification.sgml:
8999         Add information about how dicts are marshalled.
9000
9001         * test/data/invalid-messages/dict-with-nil-value.message:
9002         * test/data/invalid-messages/too-short-dict.message:
9003         * test/data/valid-messages/dict-simple.message:
9004         * test/data/valid-messages/dict.message:
9005         Add sample messages containing dicts.
9006
9007 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
9008
9009         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
9010
9011 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
9012
9013         * dbus/Makefile.am:
9014         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9015         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
9016         (dbus_dict_set_int32), (dbus_dict_set_uint32),
9017         (dbus_dict_set_double), (dbus_dict_set_string),
9018         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9019         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9020         (dbus_dict_set_string_array), (_dbus_dict_test):
9021         * dbus/dbus-dict.h:
9022         Fix according to comments from Havoc.
9023
9024 2003-03-06  Michael Meeks  <michael@server.home>
9025
9026         * configure.in: if we don't have kde-config, disable have_qt.
9027
9028 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
9029
9030         * dbus/Makefile.am:
9031         Add dbus-dict.[ch]
9032
9033         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9034         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
9035         (dbus_dict_remove), (dbus_dict_get_value_type),
9036         (dbus_dict_get_keys), (dbus_dict_put_boolean),
9037         (dbus_dict_put_int32), (dbus_dict_put_uint32),
9038         (dbus_dict_put_double), (dbus_dict_put_string),
9039         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
9040         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
9041         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
9042         (dbus_dict_get_int32), (dbus_dict_get_uint32),
9043         (dbus_dict_get_double), (dbus_dict_get_string),
9044         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
9045         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
9046         (dbus_dict_get_string_array), (_dbus_dict_test):
9047         * dbus/dbus-dict.h:
9048         Add DBusDict implementation
9049
9050         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
9051         * dbus/dbus-test.h:
9052         Add _dbus_dict_test
9053
9054 2003-03-04  Havoc Pennington  <hp@pobox.com>
9055
9056         * test/data/auth/*: adapt to changes
9057
9058         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
9059         USERID_BASE64 and change USERNAME_BASE64 to put in username not
9060         userid
9061
9062         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
9063         more stuff from being in a context name, to make the protocol
9064         simpler to deal with
9065
9066         * dbus/dbus-errors.c (dbus_error_has_name): new function
9067         (dbus_error_is_set): new function
9068
9069         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
9070         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
9071
9072         * dbus/dbus-connection.c (dbus_connection_flush): also read
9073         messages during a flush operation
9074
9075         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
9076
9077 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
9078
9079         * configure.in: Check for gethostbyname on Solaris.
9080
9081         * dbus/dbus-transport.c: (_dbus_transport_open):
9082         Remove duplicate "tcp" entry.
9083
9084         * doc/dbus-specification.sgml:
9085         Clarify some things.
9086
9087 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
9088
9089         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
9090         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
9091         (_dbus_keyring_test):
9092         * dbus/dbus-md5.c: (_dbus_md5_compute):
9093         * dbus/dbus-sha.c: (_dbus_sha_compute):
9094         Plug memory leaks.
9095
9096 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
9097
9098         * README: Add some things.
9099
9100 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
9101
9102         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
9103         after case DBUS_TYPE_BOOELAN.
9104
9105 2003-03-02  Havoc Pennington  <hp@pobox.com>
9106
9107         * test/break-loader.c (randomly_set_extreme_ints): add test that
9108         sets really huge and small integers
9109
9110         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
9111         that length of boolean array fits in the string, and that
9112         string has room for boolean value in single-bool case.
9113
9114         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
9115         optional value to "ALIGN" command which is what to fill the
9116         alignment with.
9117
9118         * test/data/valid-messages/no-padding.message: add regression
9119         test for the message padding problem
9120
9121 2003-03-02  Havoc Pennington  <hp@pobox.com>
9122
9123         * dbus/dbus-message.c (decode_header_data): fix to always init
9124         message_padding, from Benjamin Dauvergne
9125
9126 2003-03-02  Havoc Pennington  <hp@pobox.com>
9127
9128         * configure.in: 0.5
9129
9130         * NEWS: Update.
9131
9132 2003-03-01  Joe Shaw  <joe@assbarn.com>
9133
9134         * configure.in: Check for "struct cmsgcred" and try to access its
9135         members for BSD-like unices.
9136
9137         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
9138         _dbus_read_credentials_unix_socket().
9139         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
9140         read() for reading the credential byte off the unix socket.  Use
9141         struct cmsgcred on systems that support it.
9142
9143 2003-02-27  Alexander Larsson  <alexl@redhat.com>
9144
9145         * glib/Makefile.am:
9146         * configure.in:
9147         Make gthreads-2.0 dependency optional. Don't build thread test if
9148         its not found.
9149
9150 2003-02-27  Havoc Pennington  <hp@pobox.com>
9151
9152         * dbus/dbus-connection.c
9153         (dbus_connection_send_message_with_reply_and_block): fix doh!
9154         doh! doh! bug that resulted in never removing a reply from the
9155         queue, no wonder we called get_reply_serial so much ;-)
9156
9157         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
9158         and client serial instead of demarshaling them every time
9159
9160 2003-02-27  Havoc Pennington  <hp@pobox.com>
9161
9162         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
9163         more inlined, using dbus-string-private.h, speeds things up
9164         substantially
9165
9166         * dbus/dbus-string.c (_dbus_string_free): apply align offset
9167         when freeing the string
9168         (_dbus_string_steal_data): fix for align offset
9169         (undo_alignment): new function
9170
9171 2003-02-26  Havoc Pennington  <hp@redhat.com>
9172
9173         All kinds of audit fixes from Owen, plus initial attempt to
9174         handle unaligned memory returned from malloc.
9175
9176         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
9177         leave room for align_offset and nul byte
9178         (fixup_alignment): function to track an align_offset and
9179         ensure real->str is aligned
9180         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
9181         to allow a nul byte plus align offset
9182         (_dbus_string_lock): fix overflow issue
9183         (_dbus_string_init_const_len): add assertions on sanity of len,
9184         assign allocated to be ALLOCATION_PADDING larger than len
9185         (set_length): fixup the overflow handling
9186         (_dbus_string_get_data_len): fix overflow in assertion
9187         (open_gap): detect overflow in size of gap to be opened
9188         (_dbus_string_lengthen): add overflow check
9189         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
9190         (_dbus_string_append): add overflow check
9191         (_dbus_string_append_unichar): overflow
9192         (_dbus_string_delete): fix overflow in assertion
9193         (_dbus_string_copy_len): overflow in assertion
9194         (_dbus_string_replace_len): overflows in assertions
9195         (_dbus_string_find): change to implement in terms of
9196         _dbus_string_find_to
9197         (_dbus_string_find_to): assorted fixage
9198         (_dbus_string_equal_c_str): assert c_str != NULL,
9199         fix logic so the function works
9200         (_dbus_string_ends_with_c_str): fix overflow thingy
9201         (_dbus_string_base64_encode): overflow fix
9202         (_dbus_string_validate_ascii): overflow
9203         (_dbus_string_validate_nul): overflow
9204
9205 2003-02-26  Havoc Pennington  <hp@redhat.com>
9206
9207         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
9208
9209 2003-02-26  Alexander Larsson  <alexl@redhat.com>
9210
9211         * configure.in:
9212         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
9213
9214         * dbus/dbus-connection.c:
9215         * dbus/dbus-connection.h:
9216         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
9217         Add dbus_connection_set_wakeup_main_function and use it when queueing
9218         incoming and outgoing messages.
9219
9220
9221         * dbus/dbus-dataslot.c:
9222         Threadsafe usage of DBusDataSlotAllocator
9223
9224         * dbus/dbus-message.c: (dbus_message_get_args_iter):
9225         dbus_new can fail.
9226
9227         * dbus/dbus-server-unix.c:
9228         Add todo comment
9229
9230         * glib/dbus-gmain.c:
9231         Implement the new wakeup functions for glib.
9232
9233         * glib/Makefile.am:
9234         * glib/test-thread-client.c:
9235         * glib/test-thread-server.c:
9236         * glib/test-thread.h:
9237         Initial cut at some thread test code. Not really done yet.
9238
9239 2003-02-26  Havoc Pennington  <hp@pobox.com>
9240
9241         * dbus/dbus-connection.c
9242         (dbus_connection_send_message_with_reply_and_block): fix crash
9243         where we ref'd the outgoing message instead of the returned reply
9244
9245         * dbus/dbus-transport-unix.c (do_authentication): check read watch
9246         at the end of this function, so if we didn't need to read for
9247         authentication, we reinstall it for receiving messages
9248
9249         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
9250         a NULL sender for peer-to-peer case
9251
9252         * dbus/dbus-transport-unix.c (check_read_watch): handle
9253         !authenticated case correctly
9254
9255         * glib/dbus-gmain.c: add support for DBusServer
9256
9257         * dbus/dbus-server.c: add data slot support
9258
9259         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
9260         return values and handle errors
9261
9262         * dbus/dbus-dataslot.c: factor out the data slot stuff from
9263         DBusConnection
9264
9265         * Doxyfile.in (INPUT): add glib subdir
9266
9267         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
9268         setup_with_g_main instead of hookup_with_g_main; write docs
9269
9270 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
9271
9272         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
9273         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9274         * dbus/dbus-message.c: (dbus_message_append_boolean),
9275         (dbus_message_append_boolean_array),
9276         (dbus_message_get_args_valist), (_dbus_message_test):
9277         * dbus/dbus-message.h:
9278         * doc/dbus-specification.sgml:
9279         Various fixes as pointed out by Havoc.
9280
9281         * test/data/invalid-messages/bad-boolean-array.message:
9282         * test/data/invalid-messages/bad-boolean.message:
9283         Add invalid boolean value test cases.
9284
9285 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
9286
9287         * dbus/dbus-internals.c: (_dbus_type_to_string):
9288         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
9289         (_dbus_marshal_validate_arg):
9290         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9291         * dbus/dbus-message.c: (dbus_message_append_args_valist),
9292         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
9293         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
9294         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
9295         (dbus_message_iter_get_double),
9296         (dbus_message_iter_get_boolean_array), (message_iter_test):
9297         * dbus/dbus-message.h:
9298         * dbus/dbus-protocol.h:
9299         * doc/dbus-specification.sgml:
9300         * test/data/valid-messages/lots-of-arguments.message:
9301         Add support for boolean and boolean array types.
9302
9303 2003-02-23  Havoc Pennington  <hp@pobox.com>
9304
9305         * dbus/dbus-keyring.c: finish most of this implementation and
9306         simple unit test
9307
9308         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
9309         these barf if the error isn't cleared to NULL
9310
9311         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
9312         (_dbus_create_directory): new function
9313
9314         * dbus/dbus-errors.c (dbus_set_error): fix warning
9315
9316         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
9317         (_dbus_string_hex_decode): new function
9318         (test_hex_roundtrip): test code
9319
9320         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
9321
9322         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
9323
9324         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
9325         the save-to-temp/rename trick to atomically write the new file
9326         (_dbus_string_parse_uint): new function
9327
9328 2003-02-22  Havoc Pennington  <hp@pobox.com>
9329
9330         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
9331
9332 2003-02-22  Havoc Pennington  <hp@pobox.com>
9333
9334         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
9335         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
9336
9337         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
9338
9339         * dbus/test/data/sha-1: add US government test suite for SHA-1
9340
9341 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9342
9343         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
9344         Make string arrays NULL-terminated.
9345
9346         * dbus/dbus-memory.c: (dbus_free_string_array):
9347         * dbus/dbus-memory.h:
9348         New function for freeing NULL-terminated string arrays.
9349
9350         * dbus/dbus-message-builder.c: (append_quoted_string),
9351         (_dbus_message_data_load):
9352         Add support for array types.
9353
9354         * dbus/dbus-message.c: (check_message_handling):
9355         Add more types as test cases.
9356
9357         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
9358         (_dbus_string_parse_double):
9359         Add the start offset to the end offset.
9360
9361         * test/data/valid-messages/lots-of-arguments.message:
9362         New test message with lots of arguments.
9363
9364 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9365
9366         * dbus/dbus-message.c: (dbus_message_append_nil),
9367         (dbus_message_append_int32), (dbus_message_append_uint32),
9368         (dbus_message_append_double), (dbus_message_append_string),
9369         (dbus_message_append_int32_array),
9370         (dbus_message_append_uint32_array),
9371         (dbus_message_append_double_array),
9372         (dbus_message_append_byte_array),
9373         (dbus_message_append_string_array):
9374         Fix all out-of-memory handling in these functions.
9375
9376 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9377
9378         * dbus/dbus-message.c: (dbus_message_append_nil):
9379         Fix a silly.
9380
9381 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9382
9383         * dbus/dbus-message.c: (dbus_message_append_args_valist),
9384         (dbus_message_append_nil), (dbus_message_append_int32_array),
9385         (dbus_message_append_uint32_array),
9386         (dbus_message_append_double_array),
9387         (dbus_message_append_byte_array),
9388         (dbus_message_append_string_array), (dbus_message_get_args_valist),
9389         (dbus_message_iter_get_int32_array),
9390         (dbus_message_iter_get_uint32_array),
9391         (dbus_message_iter_get_double_array),
9392         (dbus_message_iter_get_byte_array),
9393         (dbus_message_iter_get_string_array):
9394
9395         * dbus/dbus-message.h:
9396         Add functions for appending and getting arrays.
9397
9398 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9399
9400         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
9401         element size at least 8 bytes, fixes mempool tests on
9402         64-bit machines.
9403
9404 2003-02-20  Alexander Larsson  <alexl@redhat.com>
9405
9406         * dbus/dbus-transport-unix.c (unix_do_iteration):
9407         Unlock the connection mutex during a blocking select call.
9408         Add todo about how we need a way to wake up the select.
9409
9410         * dbus/dbus-connection-internal.h:
9411         * dbus/dbus-connection.c:
9412         Add _dbus_connection_lock and _dbus_connection_unlock.
9413
9414 2003-02-19  Havoc Pennington  <hp@pobox.com>
9415
9416         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
9417         Doxyfile.in, not Doxyfile
9418
9419         * dbus/dbus-keyring.c: do some hacking on this
9420
9421         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
9422
9423         * dbus/dbus-errors.c (dbus_set_error_const): do not call
9424         dbus_error_init
9425         (dbus_set_error): remove dbus_error_init, check for message ==
9426         NULL *before* we sprintf into it, and add @todo about including
9427         system headers in this file
9428
9429         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
9430
9431         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
9432
9433         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
9434         get various bits of user information based on either username
9435         or user ID
9436         (_dbus_homedir_from_username): new function
9437
9438 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
9439
9440         * configure.in:
9441         Add check for nonposix getpwnam_r
9442
9443         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
9444         Align the pool element size to a sizeof (void *) boundary.
9445
9446         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
9447         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
9448         General Solaris fixes.
9449
9450         * test/data/valid-messages/simplest-manual.message:
9451         Explicitly state that we want little-endian packing.
9452
9453 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
9454
9455         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9456
9457         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
9458         Added to create a transport connecting using a tcp/ip socket.
9459
9460         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
9461         to a tcp socket at given host and port.
9462         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
9463         hostname and port.
9464
9465         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9466
9467         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
9468         Added to create a server listening on a TCP/IP socket.
9469
9470 2003-02-19  Havoc Pennington  <hp@pobox.com>
9471
9472         Throughout: mop up all the Doxygen warnings and undocumented
9473         stuff.
9474
9475         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
9476         to search any paths.
9477
9478         * dbus/dbus-threads.c: move global mutex initializers to
9479         dbus-internals.h, multiple prototypes was confusing doxygen
9480         besides being kind of ugly
9481
9482         * Doxyfile (PREDEFINED): have Doxygen define
9483         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
9484         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
9485         (do not abuse the feature! it's for stuff like the autogenerated
9486         macros in dbus-md5.c, not just for things you don't feel like
9487         documenting...)
9488
9489 2003-02-18  Havoc Pennington  <hp@pobox.com>
9490
9491         * dbus/dbus-string.c (_dbus_string_zero): new function
9492
9493         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
9494         wrap it in some dbus-friendly API
9495
9496         * dbus/dbus-types.h: add 16-bit types
9497
9498 2003-02-18  Joe Shaw  <joe@assbarn.com>
9499
9500         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
9501         credentials from our currently running process.
9502         (get_word): Fix a buglet where we were copying the entire length
9503         instead of relative to our position.
9504
9505         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
9506         keys on the stack... it's 640k of data.
9507
9508         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
9509         read the credentials byte off the socket, even if we don't have
9510         SO_PEERCRED.
9511         (_dbus_poll): Implement poll() using select() for systems which
9512         don't have it.
9513
9514         * glib/test-dbus-glib.c (main): Print out an error if no
9515         parameters are given.
9516
9517         * test/data/auth/fallback.auth-script: Added.  Tests that a client
9518         can fallback to a secondary auth mechanism if the first fails.
9519
9520 2003-02-18  Havoc Pennington  <hp@pobox.com>
9521
9522         * AUTHORS: add Alex
9523
9524 2003-02-17  Havoc Pennington  <hp@pobox.com>
9525
9526         * doc/dbus-specification.sgml: lots of cosmetic
9527         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
9528         env variable to DBUS_BUS_ADDRESS, s/client/application/,
9529         s/server/bus/ (except in authentication section). Add a section
9530         "Message Bus Message Routing"
9531
9532 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
9533
9534         Release 0.4
9535
9536         * NEWS: Update
9537
9538 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
9539
9540         * doc/dbus-specification.sgml:
9541         Specification updates.
9542
9543 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
9544
9545         * bus/activation.c: (bus_activation_init), (child_setup),
9546         (bus_activation_activate_service):
9547         * bus/activation.h:
9548         * bus/main.c: (main):
9549         Set DBUS_ADDRESS environment variable.
9550
9551         * dbus/dbus-errors.c: (dbus_set_error):
9552         Don't use va_copy since that's a C99 feature.
9553
9554         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
9555         (_dbus_spawn_async):
9556         * dbus/dbus-sysdeps.h:
9557         Add child_setup_func to _dbus_spawn_async.
9558
9559         * doc/dbus-specification.sgml:
9560         Update specification.
9561
9562         * test/spawn-test.c: (setup_func), (main):
9563         Fix test.
9564
9565 2003-02-17  Alexander Larsson  <alexl@redhat.com>
9566
9567         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
9568         Added todo.
9569
9570 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
9571
9572         * doc/.cvsignore:
9573         * doc/Makefile.am:
9574         * doc/dbus-test-plan.sgml:
9575         Add test plan document.
9576
9577         * test/Makefile.am:
9578         Fix distcheck.
9579
9580 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
9581
9582         * dbus/dbus-message.c: (decode_header_data),
9583         (_dbus_message_loader_return_buffer):
9584         Set the header padding amount when loading a message.
9585
9586 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
9587
9588         * bus/dispatch.c: (send_one_message):
9589         Only send broadcast messages to registered connections.
9590
9591         * dbus/dbus-message.c: (dbus_message_name_is):
9592         * dbus/dbus-message.h:
9593         New convenience function.
9594
9595         * dbus/dbus-transport-debug.c: (do_reading):
9596         Only dispatch one message per run.
9597
9598         * test/Makefile.am:
9599         * test/bus-test.c: (new_connection_callback), (die),
9600         (test_hello_client1_handler), (test_hello_client2_handler),
9601         (test_hello_replies), (main):
9602
9603         * test/bus-test-loop.[ch]:
9604         Add these.
9605
9606 2003-02-16  Havoc Pennington  <hp@pobox.com>
9607
9608         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9609         backward conditional
9610
9611 2003-02-16  Alexander Larsson  <alexl@redhat.com>
9612
9613         * dbus/dbus-connection.c:
9614         Implement sent_message_with_reply. (with_reply_and block is still
9615         busted).
9616         Made dispatch_message not lose message if OOM.
9617
9618         * dbus/dbus-errors.h:
9619         Add NoReply error (for reply timeouts).
9620
9621 2003-02-16  Alexander Larsson  <alexl@redhat.com>
9622
9623         * dbus/dbus-hash.c (_dbus_hash_table_unref):
9624         Actually free keys and values when destroying hashtable.
9625
9626 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
9627
9628         * dbus/dbus-auth.c: (client_try_next_mechanism):
9629         Plug a leak.
9630
9631         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
9632         Return TRUE if there's no thread implementation around.
9633
9634         * glib/dbus-gmain.c: (free_source),
9635         (dbus_connection_hookup_with_g_main):
9636         Make sure to remove the GSource when the connection is finalized.
9637
9638 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
9639
9640         * bus/dispatch.c: (bus_dispatch_message_handler):
9641         * dbus/dbus-errors.h:
9642         Return an error if someone tries to send a message to a service
9643         that doesn't exist.
9644
9645 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
9646
9647         * bus/activation.c: (load_directory), (bus_activation_init),
9648         (bus_activation_activate_service):
9649         * bus/activation.h:
9650         * bus/driver.c:
9651         (bus_driver_handle_activate_service), (bus_driver_handle_message):
9652         More work on the activation handling.
9653
9654         * dbus/dbus-errors.h:
9655         Add some error messages
9656
9657         * dbus/dbus-message.c: (dbus_message_new_error_reply):
9658         * dbus/dbus-message.h:
9659         New function that creates an error message.
9660
9661         * dbus/dbus-protocol.h:
9662         Add ACTIVATE_SERVER message.
9663
9664         * dbus/dbus-server-unix.c: (unix_handle_watch),
9665         (_dbus_server_new_for_domain_socket):
9666         Call _dbus_fd_set_close_on_exec.
9667
9668         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
9669         (_dbus_spawn_async), (_dbus_disable_sigpipe),
9670         (_dbus_fd_set_close_on_exec):
9671         * dbus/dbus-sysdeps.h:
9672         Add _dbus_fd_set_close_on exec function. Also add function that checks
9673         that all open fds are set to close-on-exec and warns otherwise.
9674
9675         * dbus/dbus-transport-unix.c:
9676         (_dbus_transport_new_for_domain_socket):
9677         Call _dbus_fd_set_close_on_exec.
9678
9679 2003-02-16  Havoc Pennington  <hp@pobox.com>
9680
9681         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
9682         allow people to avoid setting SIGPIPE to SIG_IGN
9683         (_dbus_connection_new_for_transport): disable SIGPIPE unless
9684         we've been asked not to
9685
9686 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
9687
9688         * dbus/dbus-list.c: (_dbus_list_append_link),
9689         (_dbus_list_prepend_link):
9690         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
9691         (dbus_realloc):
9692         Warning fixes.
9693
9694 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
9695
9696         * bus/Makefile.am:
9697         * bus/activation.c: (bus_activation_entry_free),
9698         (add_desktop_file_entry), (load_directory), (bus_activation_init):
9699         * bus/activation.h:
9700         * bus/main.c: (main):
9701         Add simple activation support, doesn't work yet though.
9702
9703 2003-02-15   Zack Rusin  <zack@kde.org>
9704
9705         * qt/dbus-qthread.cpp:  small casting fix
9706
9707 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
9708
9709         * dbus/dbus-errors.c: (dbus_set_error):
9710         * dbus/dbus-errors.h:
9711         Add a few errors and make dbus_set_error void.
9712
9713         * dbus/dbus-sysdeps.c:
9714         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
9715         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
9716         * dbus/dbus-sysdeps.h:
9717         Add _dbus_spawn_async.
9718
9719         * test/spawn-test.c: (main):
9720         Test for _dbus_spawn_async.
9721
9722 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
9723
9724         * dbus/dbus-internals.h:
9725         Fix build without tests.
9726
9727         * dbus/dbus-list.c: (alloc_link):
9728         Fix a segfault when a malloc fails.
9729
9730         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
9731         (dbus_malloc0), (dbus_realloc):
9732         Add support for malloc debugging.
9733
9734 2003-02-15  Alexander Larsson  <alexl@redhat.com>
9735
9736         * dbus/dbus-threads.c:
9737         * dbus/dbus-threads.h:
9738         Add condvars. Remove static mutext from API.
9739         Implement static mutexes by initializing them from threads_init.
9740
9741         * glib/dbus-gthread.c:
9742         * qt/dbus-qthread.cpp:
9743         Update with the thread api changes.
9744
9745
9746         * dbus/dbus-list.c:
9747         * dbus/dbus-list.h:
9748         Turn StaticMutex into normal mutex + init function.
9749         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
9750         _dbus_list_append_link, _dbus_list_prepend_link
9751
9752
9753         * dbus/dbus-sysdeps.c:
9754         * dbus/dbus-sysdeps.h:
9755         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
9756         _dbus_atomic_dec. Only slow fallback implementation at the moment.
9757
9758         * dbus/dbus-protocol.h:
9759         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
9760
9761         * dbus/dbus-message.c:
9762         Make ref/unref atomic.
9763         Fix some docs.
9764
9765         * dbus/dbus-connection-internal.h:
9766         * dbus/dbus-connection.c:
9767         * dbus/dbus-connection.h:
9768         Make threadsafe.
9769         Change _peek to _borrow,_return & _steal_borrowed.
9770         Change disconnect callback to event.
9771         Make dbus_connection_dispatch_messages reentrant.
9772
9773         * dbus/dbus-transport.c:
9774         Don't ref the connection on calls to the transport
9775         implementation.
9776
9777         * dbus/dbus-message-handler.c:
9778         Make threadsafe.
9779
9780         * glib/dbus-gmain.c:
9781         Don't use peek_message anymore
9782
9783         * test/Makefile.am:
9784         * test/debug-thread.c:
9785         * test/debug-thread.h:
9786         Simple thread implementation that asserts() on deadlocks in
9787         single-threaded code.
9788
9789         * test/bus-test.c:
9790         (main) Call debug_threads_init.
9791
9792         * test/watch.c:
9793         Use disconnect message instead of disconnect callback.
9794
9795         * bus/connection.c:
9796         * bus/connection.h:
9797         Don't call dbus_connection_set_disconnect_function. Instead export
9798         bus_connection_disconnect.
9799
9800         * bus/dispatch.c:
9801         Call bus_connection_disconnect when we get a disconnected message.
9802
9803 2003-02-15  Havoc Pennington  <hp@pobox.com>
9804
9805         * dbus/dbus-message.c (dbus_message_new): fool around with the
9806         docs
9807
9808 2003-02-14  Havoc Pennington  <hp@pobox.com>
9809
9810         * dbus/dbus-mempool.c: fail if the debug functions so indicate
9811
9812         * dbus/dbus-memory.c: fail if the debug functions indicate we
9813         should
9814
9815         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
9816         (_dbus_decrement_fail_alloc_counter): debug functions to
9817         simulate memory allocation failures
9818
9819 2003-02-14  Havoc Pennington  <hp@pobox.com>
9820
9821         * dbus/dbus-errors.h (struct DBusError): add a word of padding
9822         to DBusError
9823
9824 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9825
9826         * bus/driver.c: (bus_driver_handle_hello):
9827         * bus/driver.h:
9828         * bus/services.c: (bus_service_lookup):
9829         Reorder message sending so we get a more sane order.
9830
9831         * test/bus-test.c: (message_handler):
9832         Fix tyop.
9833
9834 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9835
9836         * bus/driver.c: (bus_driver_send_service_deleted),
9837         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9838         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
9839         (bus_driver_send_welcome_message),
9840         (bus_driver_handle_list_services),
9841         (bus_driver_handle_acquire_service),
9842         (bus_driver_handle_service_exists):
9843         * dbus/dbus-bus.c: (dbus_bus_register_client),
9844         (dbus_bus_acquire_service), (dbus_bus_service_exists):
9845         * dbus/dbus-errors.c: (dbus_result_to_string):
9846         * dbus/dbus-errors.h:
9847         * dbus/dbus-message.c: (dbus_message_append_args),
9848         (dbus_message_append_args_valist), (dbus_message_get_args),
9849         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
9850         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
9851         (dbus_message_iter_get_byte_array),
9852         (dbus_message_iter_get_string_array), (message_iter_test),
9853         (check_message_handling), (_dbus_message_test):
9854         * dbus/dbus-message.h:
9855         * test/bus-test.c: (main):
9856         Change fields to arguments in messages, so that they won't be
9857         confused with header fields.
9858
9859         * glib/test-dbus-glib.c: (main):
9860         Remove append_fields from hello message.
9861
9862 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9863
9864         * dbus/dbus-errors.c:
9865         * dbus/dbus-message.c:
9866         * dbus/dbus-string.c:
9867         Documentation fixes.
9868
9869 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9870
9871         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
9872         (remove_timeout):
9873         Implement support for timeouts in dbus-glib.
9874
9875 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9876
9877         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9878         * dbus/dbus-message.c: (process_test_subdir):
9879         * test/break-loader.c: (find_breaks_based_on):
9880         Plug some memory leaks.
9881
9882 2003-02-13  Richard Hult  <rhult@codefactory.se>
9883
9884         * bus/main.c: Fix build.
9885
9886         * dbus/dbus-errors.h:
9887         * dbus/dbus-errors.c: Fix copyright for Anders.
9888
9889 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9890
9891         * bus/Makefile.am:
9892         Add utils.[ch]
9893
9894         * bus/connection.c: (bus_connection_foreach):
9895         Fix a warning.
9896
9897         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
9898         (unescape_string), (new_section), (parse_section_start),
9899         (parse_key_value), (report_error), (bus_desktop_file_load),
9900         (bus_desktop_file_get_string):
9901         * bus/desktop-file.h:
9902         Use DBusError for error reporting.
9903
9904         * bus/dispatch.c: (send_one_message),
9905         (bus_dispatch_message_handler):
9906         * bus/driver.c: (bus_driver_send_service_deleted),
9907         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9908         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
9909         (bus_driver_send_welcome_message),
9910         (bus_driver_handle_list_services),
9911         (bus_driver_handle_acquire_service),
9912         (bus_driver_handle_service_exists):
9913         * bus/loop.c: (bus_loop_run):
9914         * bus/main.c:
9915         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
9916
9917         * bus/utils.c: (bus_wait_for_memory):
9918         * bus/utils.h:
9919         New files with general utility functions.
9920
9921         * dbus/dbus-internals.h:
9922         Remove _DBUS_HANDLE_OOM.
9923
9924 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9925
9926         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
9927         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
9928         * dbus/dbus-errors.h:
9929         Add DBusError structure.
9930
9931 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9932
9933         * test/data/valid-messages/standard-acquire-service.message:
9934         * test/data/valid-messages/standard-hello.message:
9935         * test/data/valid-messages/standard-list-services.message:
9936         * test/data/valid-messages/standard-service-exists.message:
9937         Add some standard messages.
9938
9939 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9940
9941         * bus/driver.c: (bus_driver_send_welcome_message),
9942         (bus_driver_handle_list_services),
9943         (bus_driver_handle_acquire_service),
9944         (bus_driver_handle_service_exists), (bus_driver_handle_message):
9945         Update for API changes in libdbus.
9946
9947         * dbus/dbus-message.c: (dbus_message_new_reply):
9948         * dbus/dbus-message.h:
9949         Remove the name argument. The spec states that replies shouldn't
9950         have a name.
9951
9952 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
9953
9954         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
9955         (report_error), (bus_desktop_file_load), (lookup_section),
9956         (lookup_line), (bus_desktop_file_get_raw),
9957         (bus_desktop_file_get_string):
9958         * bus/desktop-file.h:
9959         Some fixes, and new functions for getting a key value from a section.
9960
9961 2003-02-13  Havoc Pennington  <hp@pobox.com>
9962
9963         * test/data/auth/fail-after-n-attempts.auth-script: new test
9964
9965         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
9966         reject the client.
9967
9968 2003-02-13  Havoc Pennington  <hp@pobox.com>
9969
9970         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
9971         dbus_credentials_match were backward
9972
9973         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
9974         NO_CREDENTIALS and ROOT_CREDENTIALS
9975
9976         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
9977         into here. Never process more commands after we've reached an
9978         end state; store further data as unused bytes.
9979
9980         * test/data/auth/*: add more auth tests
9981
9982         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
9983         command to match exact string and EXPECT_UNUSED to match unused
9984         bytes
9985
9986         * test/Makefile.am (dist-hook): fix to dist all the test stuff
9987
9988 2003-02-12  Havoc Pennington  <hp@pobox.com>
9989
9990         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
9991         \r off of popped lines
9992
9993         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
9994         scripts
9995
9996         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
9997         SEND, append \r\n
9998
9999 2003-02-12  Havoc Pennington  <hp@pobox.com>
10000
10001         * dbus/Makefile.am: remove break-loader from the build, since it
10002         moved.
10003
10004         * configure.in: add --enable-gcov to turn on coverage profiling
10005         flags and disable optimization
10006
10007 2003-02-10  Havoc Pennington  <hp@pobox.com>
10008
10009         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
10010         initial cut at test framework for DBusAuth from laptop.
10011         Doesn't quite work yet but it compiles and I need to get
10012         it off the 266mhz laptop. ;-)
10013
10014         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
10015         fix a memleak in error case
10016
10017 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
10018
10019         * bus/Makefile.am:
10020         * bus/desktop-file.c:
10021         * bus/desktop-file.h:
10022         Add a desktop file parser.
10023
10024 2003-02-11  Zack Rusin  <zack@kde.org>
10025
10026         * qt/message.[h|cpp]: sample implementation
10027         of the KDE wrapper for DBusMessage
10028
10029 2003-02-09  Zack Rusin  <zack@kde.org>
10030
10031         * test/bus-test.c: make_it_compile
10032         * doc/dbus-specification.sgml: minimal semantic fix
10033
10034 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
10035
10036         Release 0.3
10037
10038         * NEWS: Update
10039
10040 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
10041
10042         * dbus/Makefile.am:
10043         * dbus/dbus-break-loader.c:
10044         * test/Makefile.am:
10045         * test/break-loader.c:
10046         Move dbus-break-loader to test/ and rename it to break-loader.
10047
10048 2003-02-02  Havoc Pennington  <hp@pobox.com>
10049
10050         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
10051         for code to manage cookies in your home directory
10052
10053         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
10054
10055         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
10056         to authenticate, then disconnect the client.
10057
10058 2003-02-03  Alexander Larsson  <alexl@redhat.com>
10059
10060         * dbus/dbus-message.c (dbus_message_append_fields):
10061         Correct docs.
10062
10063 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10064
10065         * doc/dbus-specification.sgml:
10066         Update address format section.
10067
10068 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10069
10070         * test/Makefile.am:
10071         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
10072         (message_handler), (new_connection_callback), (loop_quit),
10073         (loop_run), (main):
10074         Add bus test.
10075
10076 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10077
10078         * bus/driver.c: (bus_driver_handle_service_exists):
10079         Simplify the code a bit.
10080
10081         * dbus/dbus-bus.c: (dbus_bus_service_exists):
10082         Fix a silly.
10083
10084 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10085
10086         * bus/Makefile.am:
10087         Add libdbus-daemon.la and link to it.
10088
10089 2003-02-01  James Willcox  <jwillcox@gnome.org>
10090
10091         * bus/driver.c: (bus_driver_handle_own_service):
10092         Actually include the service reply code in the message.
10093
10094 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10095
10096         * bus/driver.c: (bus_driver_handle_service_exists):
10097         Don't unref the incoming message.
10098
10099 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10100
10101         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
10102
10103 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10104
10105         * dbus/dbus-server.c: (dbus_server_listen):
10106         * dbus/dbus-transport.c: (_dbus_transport_open):
10107         ifdef out the calls to the debug transport and server.
10108
10109 2003-02-02  Alexander Larsson  <alexl@redhat.com>
10110
10111         * dbus/dbus-watch.c (dbus_watch_get_flags):
10112         Add note in the docs that ERROR or HANGUP won't be returned
10113         and are assumed always on.
10114
10115         * glib/dbus-gmain.c (add_watch):
10116         Always add IO_ERR | IO_HUP
10117
10118         * dbus/dbus-message.h:
10119         Add semicolon after dbus_message_iter_get_string_array().
10120         Makes qt code build again
10121
10122 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
10123
10124         * bus/driver.c: (create_unique_client_name),
10125         (bus_driver_handle_hello):
10126         Don't take a name, just use a numeric id to identify
10127         each client.
10128
10129         * dbus/Makefile.am:
10130         * dbus/dbus-bus.c: (dbus_bus_register_client),
10131         (dbus_bus_acquire_service), (dbus_bus_service_exists):
10132         * dbus/dbus-bus.h:
10133         Add new convenience functions for communicating with the bus.
10134
10135         * dbus/dbus-message.h:
10136
10137         * dbus/dbus-protocol.h:
10138         Fix a typo.
10139
10140 2003-02-01  Alexander Larsson  <alexl@redhat.com>
10141
10142         * dbus/dbus-message.c (dbus_message_append_fields):
10143         Add some more doc comments.
10144
10145 2003-02-01  Havoc Pennington  <hp@pobox.com>
10146
10147         * dbus/dbus-break-loader.c (randomly_modify_length): change
10148         a 4-byte value in the message as if it were a length
10149
10150         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
10151         execute bit on saved files
10152
10153 2003-02-01  Havoc Pennington  <hp@pobox.com>
10154
10155         * dbus/dbus-break-loader.c (main): new program to find messages
10156         that break the loader.
10157
10158         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
10159         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
10160
10161         * dbus/dbus-string.c (_dbus_string_set_byte): new
10162
10163 2003-01-31  Havoc Pennington  <hp@pobox.com>
10164
10165         * dbus/dbus-message.c: refactor the test code to be more general,
10166         in preparation for writing a "randomly permute test cases to
10167         try to break the loader" program.
10168
10169 2003-01-31  Havoc Pennington  <hp@pobox.com>
10170
10171         * doc/dbus-specification.sgml: work on the specification
10172
10173         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
10174         the protocol version of the message.
10175
10176         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
10177         no longer specifies that.
10178         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
10179         1/2/3/4)
10180
10181         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
10182         "break" for DBUS_TYPE_NIL, remove @todo
10183
10184 2003-01-31  Havoc Pennington  <hp@pobox.com>
10185
10186         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
10187         just set_is_error/get_is_error as this is a commonly-used
10188         function, and write docs.
10189
10190 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
10191
10192         * dbus/dbus-address.c: (dbus_address_entry_free):
10193         Free key and value lists.
10194
10195         * dbus/dbus-internals.c: (_dbus_type_to_string):
10196         Add the types we didn't have.
10197
10198         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10199         (_dbus_marshal_validate_arg):
10200         Add NIL types.
10201
10202         * dbus/dbus-message.c: (dbus_message_set_sender):
10203         Remove todo about being able to set sender to NULL.
10204
10205         (dbus_message_set_is_error_reply),
10206         (dbus_message_get_is_error_reply):
10207         * dbus/dbus-message.h:
10208         New functions.
10209
10210         * dbus/dbus-protocol.h:
10211         Add error reply flag.
10212
10213         * test/data/valid-messages/opposite-endian.message:
10214         Add NIL type to test.
10215
10216 2003-01-31  Havoc Pennington  <hp@pobox.com>
10217
10218         * doc/dbus-specification.sgml: fully specify the header.  Add
10219         flags and major protocol version, and change header/body len to
10220         unsigned.
10221
10222         * dbus/dbus-message-builder.c (append_saved_length): append length
10223         as uint32
10224
10225         * dbus/dbus-message.c (dbus_message_create_header): change header
10226         length and body length to unsigned. Add the new fields from the
10227         spec
10228         (_dbus_message_loader_return_buffer): unsigned header/body len
10229
10230 2003-01-30  Havoc Pennington  <hp@pobox.com>
10231
10232         * dbus/dbus-auth.c: rework to use only REJECTED, no
10233         MECHANISMS
10234
10235         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
10236         use REJECTED, suggested by Mark McLoughlin
10237
10238 2003-01-30  Havoc Pennington  <hp@pobox.com>
10239
10240         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
10241         a better way to report errors here. e.g.  "unix address lacks
10242         path" or something. also "no such file" when the path doesn't
10243         exist, etc.
10244
10245         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
10246         leaking list nodes
10247         (dbus_parse_address): add @todo about documenting address format,
10248         and allowing , and ; to be escaped
10249
10250 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
10251
10252         * dbus/Makefile.am:
10253         Add dbus-address.[ch]
10254
10255         * dbus/dbus-address.c: (dbus_address_entry_free),
10256         (dbus_address_entries_free), (create_entry),
10257         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
10258         (dbus_parse_address), (_dbus_address_test):
10259         * dbus/dbus-address.h:
10260         New files for dealing with address parsing.
10261
10262         * dbus/dbus-connection.c:
10263         Document timeout functions.
10264
10265         * dbus/dbus-message.c:
10266         Document dbus_message_new_from_message.
10267
10268         * dbus/dbus-server-debug.c:
10269         Document.
10270
10271         * dbus/dbus-server.c: (dbus_server_listen):
10272         Parse address and use correct server implementation.
10273
10274         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
10275         * dbus/dbus-string.h:
10276         New function with test.
10277
10278         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
10279         * dbus/dbus-test.h:
10280         Add address tests.
10281
10282         * dbus/dbus-transport-debug.c:
10283         Document.
10284
10285         * dbus/dbus-transport.c: (_dbus_transport_open):
10286         Parse address and use correct transport implementation.
10287
10288 2003-01-30  Havoc Pennington  <hp@pobox.com>
10289
10290         * dbus/dbus-message.c: use message->byte_order instead of
10291         DBUS_COMPILER_BYTE_ORDER throughout.
10292         (dbus_message_create_header): pad header to align the
10293         start of the body of the message to 8-byte boundary
10294
10295         * dbus/dbus-marshal.h: make all the demarshalers take const
10296         DBusString arguments.
10297
10298         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
10299         validate message args here, so we don't have to do slow validation
10300         later, and so we catch bad messages as they are incoming. Also add
10301         better checks on header_len and body_len. Also fill in
10302         message->byte_order
10303
10304         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
10305         implemented properly)
10306         (_dbus_string_validate_nul): new function to check all-nul
10307
10308         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
10309         get_arg_end_pos and remove all validation
10310         (_dbus_marshal_validate_arg): actually do validation here.
10311
10312 2003-01-29  Havoc Pennington  <hp@pobox.com>
10313
10314         * dbus/dbus-message.c (check_message_handling): fix assertion
10315         failure on set_client_serial
10316
10317 2003-01-28  Havoc Pennington  <hp@pobox.com>
10318
10319         * dbus/dbus-server-debug.c: Add doc section comments
10320
10321         * dbus/dbus-transport-debug.c: add doc section comments
10322
10323 2003-01-28  Havoc Pennington  <hp@redhat.com>
10324
10325         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
10326         the reverse order from how I had it
10327         (_dbus_string_base64_encode): reverse encoding order. I was
10328         basically byteswapping everything during encoding.
10329
10330 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
10331
10332         * dbus/dbus-connection-internal.h:
10333         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
10334         (_dbus_connection_remove_timeout):
10335         Add functions for adding and removing timeouts.
10336
10337         * dbus/dbus-message.c: (dbus_message_new_from_message):
10338         Add new function that takes a message and creates an exact
10339         copy of it, but with the refcount set to 1.
10340         (check_message_handling):
10341         Fix build error.
10342
10343         * dbus/dbus-server-protected.h:
10344         * dbus/dbus-server.c: (_dbus_server_init_base),
10345         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
10346         (dbus_server_set_timeout_functions):
10347         (_dbus_server_remove_timeout):
10348         New functions so that a server can add and remove timeouts.
10349
10350         (dbus_server_listen):
10351         Add commented out call to dbus_server_debug_new.
10352
10353         * dbus/dbus-timeout.c: (_dbus_timeout_new):
10354         Actually set the handler, doh.
10355
10356         * dbus/dbus-transport.c: (_dbus_transport_open):
10357         Add commented out call to dbus_transport_debug_client_new.
10358
10359         * dbus/Makefile.am:
10360         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
10361
10362 2003-01-28  Havoc Pennington  <hp@pobox.com>
10363
10364         * dbus/dbus-message.c (check_message_handling): function to check
10365         on the loaded message, iterates over it etc.
10366
10367 2003-01-28  Havoc Pennington  <hp@pobox.com>
10368
10369         * test/Makefile.am (dist-hook): fix make distdir
10370
10371         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
10372
10373 2003-01-27  Havoc Pennington  <hp@pobox.com>
10374
10375         * dbus/dbus-mempool.c (time_for_size): replace printf with
10376         _dbus_verbose
10377
10378         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
10379         empty lines; fix the SAVE_LENGTH stuff to be
10380         START_LENGTH/END_LENGTH so it actually works; couple other
10381         bugfixes
10382
10383         * test/Makefile.am (dist-hook): add dist-hook for .message files
10384
10385         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
10386         can be constant or locked.
10387         (_dbus_string_free): allow freeing a const string as
10388         documented/intended
10389
10390         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
10391
10392         * dbus/dbus-test-main.c (main): take an argument which is the
10393         directory containing test data
10394
10395         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
10396         argument to this and load all the messages in test/data/
10397         checking that they can be loaded or not loaded as appropriate.
10398
10399 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
10400
10401         * bus/dispatch.c: (bus_dispatch_message_handler):
10402         Dispatch messages sent to services.
10403
10404         * bus/driver.c: (bus_driver_send_service_deleted),
10405         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10406         (bus_driver_send_service_acquired):
10407         Add helper functions for sending service related messages.
10408
10409         (bus_driver_send_welcome_message):
10410         Send HELLO_REPLY instead of WELCOME.
10411
10412         (bus_driver_handle_list_services):
10413         Send LIST_SERVICES_REPLY instead of SERVICES.
10414
10415         (bus_driver_handle_own_service),
10416         (bus_driver_handle_service_exists):
10417         New message handlers.
10418
10419         (bus_driver_handle_message):
10420         Invoke new message handlers.
10421
10422         (bus_driver_remove_connection):
10423         Don't remove any services here since that's done automatically
10424         by bus_service_remove_owner now.
10425
10426         * bus/driver.h:
10427         New function signatures.
10428
10429         * bus/services.c: (bus_service_add_owner):
10430         Send ServiceAcquired message if we're the only primary owner.
10431
10432         (bus_service_remove_owner):
10433         Send ServiceAcquired/ServiceLost messages.
10434
10435         (bus_service_set_prohibit_replacement),
10436         (bus_service_get_prohibit_replacement):
10437         Functions for setting prohibit replacement.
10438
10439         (bus_service_has_owner):
10440         New function that checks if a connection is in the owner queue of
10441         a certain service.
10442
10443         * bus/services.h:
10444         Add new function signatures.
10445
10446         * dbus/dbus-list.c: (_dbus_list_test):
10447         Add tests for _dbus_list_remove_last and traversing the list backwards.
10448
10449         * dbus/dbus-list.h:
10450         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
10451         go any further, so return NULL then.
10452
10453         * dbus/dbus-protocol.h:
10454         Add new messages, service flags and service replies.
10455
10456 2003-01-26  Havoc Pennington  <hp@pobox.com>
10457
10458         * dbus/dbus-message-builder.c: implement, completely untested.
10459
10460         * test/data/*: add data to be used in testing.
10461         ".message" files are our simple loadable text format.
10462         ".message-raw" will be binary dumps of messages.
10463
10464         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
10465
10466 2003-01-26  Havoc Pennington  <hp@pobox.com>
10467
10468         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
10469
10470         * dbus/dbus-errors.c (dbus_result_to_string): add
10471         file errors
10472
10473         * dbus/dbus-message-builder.c: new file, will contain code to load
10474         up messages from files. Not implemented yet.
10475
10476 2003-01-26  Havoc Pennington  <hp@pobox.com>
10477
10478         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
10479         the sender by setting to NULL
10480
10481 2003-01-26  Havoc Pennington  <hp@pobox.com>
10482
10483         The unit tests pass, but otherwise untested.  If it breaks, the
10484         tests should have been better. ;-)
10485
10486         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
10487         the connection.
10488
10489         * dbus/dbus-message.c: redo everything so we maintain
10490         message->header as the only copy of the various fields.
10491         This avoids the possibility of out-of-memory in some cases,
10492         for example dbus_message_lock() can't run out of memory anymore,
10493         and avoids extra copying. Figured I may as well go ahead and do
10494         this since it was busted for dbus_message_lock to not return
10495         failure on OOM, and dbus_message_write_header was totally
10496         unchecked for OOM. Also fixed some random other bugs.
10497
10498         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
10499         that strings are nul-terminated. Also, end_pos can be equal
10500         to string length just not greater than, I think.
10501         (_dbus_marshal_set_int32): new function
10502         (_dbus_marshal_set_uint32): new function
10503         (_dbus_marshal_set_string): new function
10504
10505         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
10506         a warning, init timeout_list to NULL
10507         (dbus_connection_send_message): don't use uninitialized variable
10508         "serial"
10509
10510         * dbus/dbus-string.c (_dbus_string_replace_len): new function
10511
10512 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
10513
10514         * bus/driver.c: (bus_driver_handle_hello),
10515         (bus_driver_send_welcome_message):
10516         Plug leaks
10517
10518 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
10519
10520         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
10521         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
10522         (dbus_connection_unref):
10523         * dbus/dbus-marshal.c: (_dbus_marshal_test):
10524         * dbus/dbus-message.c: (dbus_message_unref),
10525         Plug memory leaks.
10526
10527         (dbus_message_get_fields):
10528         Remove debugging printout.
10529
10530         (_dbus_message_loader_return_buffer):
10531         Don't store the header string.
10532
10533         (_dbus_message_test):
10534         Plug leaks.
10535
10536 2003-01-26  Richard Hult  <rhult@codefactory.se>
10537
10538         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
10539         the file descriptor list, since it can change under us.
10540
10541 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10542
10543         * glib/dbus-gmain.c: (dbus_connection_prepare),
10544         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
10545         (remove_watch), (dbus_connection_hookup_with_g_main):
10546         Rewrite the glib handling to use its own GSource instead of a
10547         GIOChannel so we can catch messages put in the queue while waiting
10548         for a reply.
10549
10550 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10551
10552         * bus/Makefile.am:
10553         * bus/connection.c: (connection_disconnect_handler),
10554         (connection_watch_callback), (bus_connection_setup):
10555         * bus/dispatch.c: (send_one_message),
10556         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
10557         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
10558         * bus/dispatch.h:
10559         * bus/driver.c: (bus_driver_send_service_deleted),
10560         (bus_driver_send_service_created), (bus_driver_handle_hello),
10561         (bus_driver_send_welcome_message),
10562         (bus_driver_handle_list_services), (bus_driver_remove_connection),
10563         (bus_driver_handle_message):
10564         * bus/driver.h:
10565         Refactor code, put the message dispatching in its own file. Use
10566         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
10567         is disconnected.
10568
10569 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10570
10571         * dbus/dbus-internals.h:
10572         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
10573
10574         * dbus/dbus-message.c: (dbus_message_get_sender):
10575         * dbus/dbus-message.h:
10576         Implement dbus_message_get_sender.
10577
10578         * dbus/dbus-protocol.h:
10579         Add message and service defines.
10580
10581 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10582
10583         * dbus/dbus-connection.c: (dbus_connection_send_message):
10584         * dbus/dbus-message-internal.h:
10585         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
10586         (dbus_message_write_header):
10587         Remove _dbus_messag_unlock and don't set the client serial on a
10588         message if one already exists.
10589
10590 2003-01-24  Havoc Pennington  <hp@pobox.com>
10591
10592         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
10593         list_pool
10594
10595         * bus/driver.c (bus_driver_handle_list_services): fix a leak
10596         on OOM
10597
10598 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10599
10600         * dbus/dbus-list.c: (alloc_link), (free_link):
10601         Use a memory pool for the links.
10602
10603 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10604
10605         * bus/connection.c: (bus_connection_foreach):
10606         * bus/connection.h:
10607         Add new bus_connection_foreach function.
10608
10609         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
10610         Add function that broadcasts a message to all clients.
10611
10612         (bus_driver_send_service_created), (bus_driver_handle_hello),
10613         (bus_driver_send_welcome_message),
10614         (bus_driver_handle_list_services), (bus_driver_message_handler):
10615         Implement functions that take care of listing services, and notifying
10616         clients when new services are created.
10617
10618         * bus/services.c: (bus_services_list):
10619         * bus/services.h:
10620         Add new function that returns an array of strings with the currently
10621         registered services.
10622
10623         * glib/dbus-glib.h:
10624         * glib/dbus-gmain.c:
10625         Update copyright year.
10626
10627 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10628
10629         * dbus/dbus-connection.c: (dbus_connection_send_message):
10630         Unlock the message in case it was sent earlier.
10631
10632         (dbus_connection_send_message_with_reply_and_block):
10633         Remove the reply message from the list.
10634
10635         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10636         Set array_len and new_pos correctly.
10637
10638         (_dbus_marshal_test):
10639         Remove debug output.
10640
10641         * dbus/dbus-message-internal.h:
10642         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
10643         New function that returns the reply serial.
10644
10645         (_dbus_message_unlock):
10646         New function that unlocks a message and resets its header.
10647
10648         (dbus_message_append_string_array),
10649         (dbus_message_get_fields_valist),
10650         (dbus_message_iter_get_field_type),
10651         (dbus_message_iter_get_string_array),
10652         (dbus_message_get_fields),
10653         (dbus_message_append_fields_valist):
10654         Handle string arrays.
10655
10656         (dbus_message_set_sender):
10657         Make this function public since the bus daemon needs it.
10658
10659         (decode_header_data):
10660         Set the reply serial to -1 initially.
10661
10662         * dbus/dbus-message.h:
10663         Add dbus_message_set_sender.
10664
10665 2003-01-24  Havoc Pennington  <hp@pobox.com>
10666
10667         * doc/dbus-specification.sgml: add some stuff
10668
10669 2003-01-22  Havoc Pennington  <hp@pobox.com>
10670
10671         * doc/dbus-specification.sgml: Start to document the protocol.
10672
10673 2003-01-22  Havoc Pennington  <hp@pobox.com>
10674
10675         * dbus/dbus-connection.c
10676         (dbus_connection_send_message_with_reply_and_block): add some @todo
10677
10678         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
10679
10680 2003-01-21  Havoc Pennington  <hp@pobox.com>
10681
10682         (patch untested because can't compile)
10683
10684         * bus/driver.c (create_unique_client_name): make this function
10685         never recycle client names. Also, caller should initialize
10686         the DBusString.
10687
10688         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
10689
10690 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
10691
10692         * dbus/dbus-marshal.c: (_dbus_marshal_double),
10693         (_dbus_marshal_int32), (_dbus_marshal_uint32),
10694         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
10695         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
10696         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10697         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10698         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
10699         * dbus/dbus-marshal.h:
10700         * dbus/dbus-protocol.h:
10701         Add support for marshalling and demarshalling integer, double
10702         and string arrays.
10703
10704 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
10705
10706         * bus/Makefile.am:
10707         Add driver.[ch]
10708
10709         * bus/connection.c: (connection_disconnect_handler):
10710         Remove the connection from the bus driver's list.
10711
10712         (connection_watch_callback): Dispatch messages.
10713
10714         (free_connection_data): Free connection name.
10715
10716         (bus_connection_setup): Add connection to the bus driver's list.
10717         (bus_connection_remove_owned_service):
10718         (bus_connection_set_name), (bus_connection_get_name):
10719         Add functions for setting and getting the connection's name.
10720
10721         * bus/connection.h:
10722         Add function headers.
10723
10724         * bus/driver.c: (create_unique_client_name),
10725         (bus_driver_handle_hello_message),
10726         (bus_driver_send_welcome_message), (bus_driver_message_handler),
10727         (bus_driver_add_connection), (bus_driver_remove_connection):
10728         * bus/driver.h:
10729         * bus/main.c:
10730         * bus/services.c: (bus_service_free):
10731         * bus/services.h:
10732         New file that handles communication and registreation with the bus
10733         itself.
10734
10735 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
10736
10737         * dbus/dbus-connection.c: (dbus_connection_send_message):
10738         Add a new client_serial parameter.
10739
10740         (dbus_connection_send_message_with_reply):
10741         Remove a @todo since we've implemented the blocking function.
10742
10743         (dbus_connection_send_message_with_reply_and_block):
10744         New function that sends a message and waits for a reply and
10745         then returns the reply.
10746
10747         * dbus/dbus-connection.h:
10748         Add new functions.
10749
10750         * dbus/dbus-errors.c: (dbus_result_to_string):
10751         * dbus/dbus-errors.h:
10752         Add new DBUS_RESULT.
10753
10754         * dbus/dbus-message-internal.h:
10755         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
10756         (_dbus_message_set_sender), (dbus_message_write_header),
10757         (dbus_message_new_reply), (decode_header_data),
10758         (_dbus_message_loader_return_buffer), (_dbus_message_test):
10759         * dbus/dbus-message.h:
10760         Add new functions that set the reply serial and sender.
10761         Also marshal and demarshal them correctly and add test.
10762
10763         * dbus/dbus-protocol.h:
10764         Add new DBUS_MESSAGE_TYPE_SENDER.
10765
10766         * glib/dbus-glib.h:
10767         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
10768         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
10769         (dbus_connection_hookup_with_g_main):
10770         * glib/test-dbus-glib.c: (main):
10771         Rewrite to use GIOChannel and remove the GSource crack.
10772
10773         * test/echo-client.c: (main):
10774         * test/watch.c: (check_messages):
10775         Update for changed APIs
10776
10777 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
10778
10779         * dbus/Makefile.am: Add dbus-timeout.[cħ]
10780
10781         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
10782         Create a DBusTimeoutList.
10783         (dbus_connection_set_timeout_functions): Add new function to
10784         set timeout callbacks
10785
10786         * dbus/dbus-connection.h: Add public DBusTimeout API.
10787
10788         * dbus/dbus-message.c: (dbus_message_get_service):
10789         * dbus/dbus-message.h:  New function.
10790
10791         * dbus/dbus-server.c: Fix small doc typo.
10792
10793         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
10794
10795 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
10796
10797         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
10798         of the string, just as long as specified.
10799
10800 2003-01-19  Havoc Pennington  <hp@pobox.com>
10801
10802         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
10803         new function
10804
10805         * dbus/dbus-server.c (dbus_server_set_max_connections)
10806         (dbus_server_get_max_connections, dbus_server_get_n_connections):
10807         keep track of current number of connections, and add API for
10808         setting a max (but haven't implemented enforcing the max yet)
10809
10810 2003-01-18  Havoc Pennington  <hp@pobox.com>
10811
10812         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
10813         reading/writing if read_watch != NULL or write_watch != NULL.
10814
10815         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
10816         the message loader code to actually load message->header and
10817         message->body into the newly-created message.
10818
10819         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
10820         in OOM case
10821
10822         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
10823         (dbus_connection_get_max_message_size)
10824         (dbus_connection_set_max_live_messages_size)
10825         (dbus_connection_get_max_live_messages_size): implement some
10826         resource limitation functions
10827
10828         * dbus/dbus-resources.c: new file implementing some of the
10829         resource limits stuff
10830
10831         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
10832         missing docs, add @todo to handle OOM etc.
10833
10834         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
10835         docs
10836
10837 2003-01-18  Havoc Pennington  <hp@pobox.com>
10838
10839         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
10840         connection if it hasn't been already.
10841
10842         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
10843         replace with DisconnectFunction.
10844
10845 2003-01-18  Havoc Pennington  <hp@pobox.com>
10846
10847         Building --disable-verbose-mode --disable-asserts --disable-tests
10848         cuts the library from 112K to 45K or so
10849
10850         * configure.in: check for varargs macro support,
10851         add --enable-verbose-mode, --enable-asserts.
10852
10853         * dbus/dbus-internals.h (_dbus_assert): support
10854         DBUS_DISABLE_ASSERT
10855         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
10856
10857 2003-01-18  Havoc Pennington  <hp@pobox.com>
10858
10859         * dbus/dbus-test.c: include config.h so that tests actually run
10860
10861         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
10862         so the failure mode when that assumption fails will be plenty
10863         obvious.
10864
10865 2003-01-18  Havoc Pennington  <hp@pobox.com>
10866
10867         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
10868
10869         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
10870         the distribution
10871
10872         * test/Makefile.am: don't use special variable "TESTS" for echo-*
10873         since we don't want to use those in make check
10874
10875 2003-01-15  Havoc Pennington  <hp@redhat.com>
10876
10877         Release 0.2
10878
10879         * NEWS: update
10880
10881 2003-01-15  Havoc Pennington  <hp@redhat.com>
10882
10883         * test/Makefile.am: fix so that test source code ends up in the
10884         distribution on make distcheck
10885
10886 2003-01-15  Havoc Pennington  <hp@redhat.com>
10887
10888         Release 0.1.
10889
10890         * NEWS: update
10891
10892 2003-01-15  Havoc Pennington  <hp@redhat.com>
10893
10894         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
10895         fix build when --disable-tests
10896
10897         * Makefile.am (EXTRA_DIST): put HACKING in here
10898
10899         * HACKING: document procedure for making a tarball release.
10900
10901 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
10902
10903         * bus/connection.c: (connection_error_handler),
10904         (bus_connection_setup):
10905         * bus/main.c: (main):
10906         Make sure that the DBusConnectionData struct is NULLed
10907         out to prevent a segfault.
10908
10909         * dbus/dbus-errors.c: (dbus_result_to_string):
10910         * dbus/dbus-errors.h:
10911         * dbus/dbus-message.c: (dbus_message_get_fields),
10912         (dbus_message_get_fields_valist), (_dbus_message_test):
10913         * dbus/dbus-message.h:
10914         Make dbus_message_get_fields return a result code so we can
10915         track invalid fields as well as oom.
10916
10917 2003-01-11  Havoc Pennington  <hp@pobox.com>
10918
10919         * configure.in: change --enable-test/--enable-ansi action-if-given
10920         to enable_foo=$enableval instead of enable_foo=yes
10921
10922 2003-01-08  Havoc Pennington  <hp@pobox.com>
10923
10924         * dbus/dbus-string.c (_dbus_string_align_length): new function
10925
10926         * dbus/dbus-test-main.c: move main() for test app here
10927         * dbus/dbus-test.c
10928         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
10929         symbol to run tests, because dbus-test isn't in the main
10930         library
10931
10932         Code review nitpicks.
10933
10934         * dbus/dbus-message.c (dbus_message_write_header): add newlines
10935         for people with narrow emacs ;-). Assert client_serial was filled
10936         in. Assert message->name != NULL.
10937         (dbus_message_append_fields): have "first_field_type" arg separate
10938         from va list, needed for C++ binding that also uses varargs IIRC
10939         and helps with type safety
10940         (dbus_message_new): add @todo about using DBusString to store
10941         service/name internally
10942         (dbus_message_new): don't leak ->service and ->name on OOM later
10943         in the function
10944         (dbus_message_unref): free the service name
10945         (dbus_message_get_fields): same change to varargs
10946         i.e. first_field_type
10947         (_dbus_message_loader_return_buffer): assert that the message data
10948         is aligned (if not it's a bug in our code). Put in verbose griping
10949         about why we set corrupted = TRUE.
10950         (decode_header_data): add FIXME that char* is evil.  Was going to
10951         add FIXME about evil locale-specific string.h strncmp, but just
10952         switched to wacky string-as-uint32 optimization. Move check for
10953         "no room for field name" above get_const_data_len() to avoid
10954         assertion failure in get_const_data_len if we have trailing 2
10955         bytes or the like. Check for service and name fields being
10956         provided twice. Don't leak service/name on error. Require field
10957         names to be aligned to 4 bytes.
10958
10959         * dbus/dbus-marshal.c: move byte swap stuff to header
10960         (_dbus_pack_int32): uscore-prefix
10961         (_dbus_unpack_int32): uscore-prefix
10962         (_dbus_unpack_uint32): export
10963         (_dbus_demarshal_string): add @todo complaining about use of
10964         memcpy()
10965         (_dbus_marshal_get_field_end_pos): add @todo about bad error
10966         handling allowing corrupt data to go unchecked
10967
10968 2003-01-08  Havoc Pennington  <hp@redhat.com>
10969
10970         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
10971         to the select() as needed for authentication. (should be using
10972         _dbus_poll() not select, but for another day)
10973
10974         * dbus/dbus.h: include dbus/dbus-protocol.h
10975
10976 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
10977
10978         * dbus/Makefile.am (dbusinclude_HEADERS): Install
10979         dbus-connection.h
10980
10981 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
10982
10983         * dbus/dbus-internals.c: (_dbus_type_to_string):
10984         New function that returns a string describing a type.
10985
10986         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
10987         * dbus/dbus-marshal.h:
10988         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
10989         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
10990         (dbus_message_iter_get_byte_array):
10991         * dbus/dbus-message.h:
10992         Add new convenience functions for appending and getting message fields.
10993         Also add demarshalling routines for byte arrays.
10994
10995 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
10996
10997         * dbus/dbus-connection-internal.h:
10998         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
10999         (_dbus_connection_get_next_client_serial),
11000         (dbus_connection_send_message):
11001         * dbus/dbus-internals.h:
11002         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
11003         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
11004         (_dbus_marshal_uint32), (_dbus_demarshal_double),
11005         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
11006         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
11007         (_dbus_verbose_bytes), (_dbus_marshal_test):
11008         * dbus/dbus-marshal.h:
11009         * dbus/dbus-message-internal.h:
11010         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
11011         (dbus_message_write_header), (_dbus_message_lock),
11012         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
11013         (dbus_message_get_name), (dbus_message_append_int32),
11014         (dbus_message_append_uint32), (dbus_message_append_double),
11015         (dbus_message_append_string), (dbus_message_append_byte_array),
11016         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
11017         (dbus_message_iter_unref), (dbus_message_iter_has_next),
11018         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
11019         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
11020         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
11021         (decode_header_data), (_dbus_message_loader_return_buffer),
11022         (message_iter_test), (_dbus_message_test):
11023         * dbus/dbus-message.h:
11024         * dbus/dbus-protocol.h:
11025         * dbus/dbus-test.c: (main):
11026         * dbus/dbus-test.h:
11027         * glib/test-dbus-glib.c: (message_handler), (main):
11028         * test/echo-client.c: (main):
11029         * test/watch.c: (check_messages):
11030         Make messages sendable and receivable for real.
11031
11032 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
11033
11034         * dbus/dbus-marshal.c: (_dbus_marshal_double),
11035         (_dbus_marshal_string), (_dbus_marshal_byte_array):
11036         * dbus/dbus-message.c: (dbus_message_append_int32),
11037         (dbus_message_append_uint32), (dbus_message_append_double),
11038         (dbus_message_append_string), (dbus_message_append_byte_array):
11039         Handle OOM restoration.
11040
11041 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
11042
11043         * dbus/dbus-marshal.c: (_dbus_marshal_string),
11044         (_dbus_demarshal_string), (_dbus_marshal_test):
11045         * dbus/dbus-marshal.h:
11046         * dbus/dbus-message.c: (dbus_message_get_name),
11047         Document these functions.
11048
11049         (dbus_message_append_int32), (dbus_message_append_uint32),
11050         (dbus_message_append_double), (dbus_message_append_string),
11051         (dbus_message_append_byte_array):
11052         * dbus/dbus-message.h:
11053         Add functions for adding message fields of different types.
11054
11055         * dbus/dbus-protocol.h:
11056         Add the different types.
11057
11058 2003-01-05  Havoc Pennington  <hp@pobox.com>
11059
11060         * bus/connection.c: implement routines for handling connections,
11061         first thing is keeping a list of owned services on each connection
11062         and setting up watches etc.
11063
11064         * bus/services.c: implement a mapping from service names to lists
11065         of connections
11066
11067         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
11068
11069         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
11070         to use static mutexes for global data
11071
11072         * dbus/dbus-connection.c (dbus_connection_set_data): add new
11073         collection of functions to set/get application-specific data
11074         on the DBusConnection.
11075
11076 2003-01-04  Havoc Pennington  <hp@pobox.com>
11077
11078         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
11079         (_dbus_poll): new function
11080
11081         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
11082         copied from GLib
11083
11084         * bus/loop.c: initial code for the daemon main loop
11085
11086 2003-01-04  Havoc Pennington  <hp@pobox.com>
11087
11088         * test/watch.c (error_handler): make it safe if the error handler
11089         is called multiple times (if we s/error handler/disconnect
11090         handler/ we should just guarantee it's called only once)
11091
11092         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
11093         error handler on disconnect (it's quite possible we should
11094         just change the error handler to a "disconnect handler," I'm
11095         not sure we have any other meaningful errors)
11096
11097         * configure.in: check for getpwnam_r
11098
11099         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
11100         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
11101         mechanism as in SASL spec, using socket credentials
11102
11103         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
11104         (_dbus_send_credentials_unix_socket): new function
11105
11106         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
11107         dbus_accept()
11108         (_dbus_write): only check errno if <0 returned
11109         (_dbus_write_two): ditto
11110
11111 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
11112
11113         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
11114         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
11115         (_dbus_marshal_test):
11116         * dbus/dbus-marshal.h:
11117         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
11118         to _dbus_marshal_utf8_string. Also fix some tests.
11119
11120 2002-12-28  Harri Porten  <porten@kde.org>
11121
11122         * configure.in: added check for C++ compiler and a very cheesy
11123         check for the Qt integration
11124
11125         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
11126
11127         * qt/Makefile.am: added
11128
11129         * qt/.cvsignore: added
11130
11131         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
11132         latter, added #ifdef QT_THREAD_SUPPORT guard.
11133
11134         * dbus/Makefile.am: added missing headers for make dist
11135
11136 2002-12-28  Kristian Rietveld  <kris@gtk.org>
11137
11138         * dbus/Makefile.am: fixup export-symbols-regex.
11139
11140 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
11141
11142         * acinclude.m4: Add this file and put the
11143         PKG_CHECK_MODULE macro in it.
11144
11145 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
11146
11147         * dbus/dbus-marshal.c: (_dbus_marshal_string),
11148         (_dbus_demarshal_double), (_dbus_demarshal_int32),
11149         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11150         (_dbus_marshal_test):
11151         Make the demarshalling routines align the pos argument.
11152         Add string marshalling tests and fix the obvious bugs
11153         discovered.
11154
11155 2002-12-26  Havoc Pennington  <hp@pobox.com>
11156
11157         * dbus/dbus-auth.c: fixes fixes fixes
11158
11159         * dbus/dbus-transport-unix.c: wire up support for
11160         encoding/decoding data on the wire
11161
11162         * dbus/dbus-auth.c (_dbus_auth_encode_data)
11163         (_dbus_auth_decode_data): append to target string
11164         instead of nuking it.
11165
11166 2002-12-26  Havoc Pennington  <hp@pobox.com>
11167
11168         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
11169         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
11170         doh
11171
11172         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
11173         avoid swap_bytes() overhead (ignoring possible assembly stuff for
11174         now). Main point is because I wanted unpack_uint32 to implement
11175         _dbus_verbose_bytes
11176         (_dbus_verbose_bytes): new function
11177
11178         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
11179
11180         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
11181         mechanism to handle a corrupt message stream
11182         (_dbus_message_loader_new): fix preallocation to only prealloc,
11183         not prelengthen
11184
11185         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
11186         (_dbus_string_test): enhance tests for copy/move and fix the
11187         functions
11188
11189         * dbus/dbus-transport-unix.c: Hold references in more places to
11190         avoid reentrancy problems
11191
11192         * dbus/dbus-transport.c: ditto
11193
11194         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
11195         leak reference count in no-message case
11196
11197         * test/watch.c (do_mainloop): handle adding/removing watches
11198         during iteration over the watches. Also, ref the connection/server
11199         stored on a watch, so we don't try to mangle a destroyed one.
11200
11201         * dbus/dbus-transport-unix.c (do_authentication): perform
11202         authentication
11203
11204         * dbus/dbus-auth.c (get_state): add a state
11205         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
11206         (_dbus_auth_get_unused_bytes): append the unused bytes
11207         to the passed in string, rather than prepend
11208
11209         * dbus/dbus-transport.c (_dbus_transport_init_base): create
11210         the auth conversation DBusAuth
11211
11212         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
11213         (_dbus_transport_new_for_domain_socket): when creating a
11214         transport, pass in whether it's a client-side or server-side
11215         transport so we know which DBusAuth to create
11216
11217 2002-12-03  Havoc Pennington  <hp@pobox.com>
11218
11219         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
11220         _after_ finalizing the derived members
11221         (unix_connection_set): unref watch if we fail to add it
11222
11223         * dbus/dbus-connection.c (dbus_connection_unref): delete the
11224         transport first, so that the connection owned by the
11225         transport will be valid as the transport finalizes.
11226
11227         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
11228         if necessary, and remove watches from the connection.
11229
11230         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
11231
11232 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
11233
11234         * dbus/dbus-marshal.c: (_dbus_marshal_string),
11235         (_dbus_demarshal_double), (_dbus_demarshal_int32),
11236         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11237         (_dbus_marshal_test):
11238         * dbus/dbus-marshal.h:
11239         Add string marshal functions and have the demarshal functions
11240         return the new position.
11241
11242 2002-12-25  Havoc Pennington  <hp@pobox.com>
11243
11244         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
11245         it is a simple protocol that just maps directly to SASL.
11246
11247         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
11248         initial implementation, not actually used yet.
11249
11250         * dbus/dbus-string.c (_dbus_string_find): new function
11251         (_dbus_string_equal): new function
11252         (_dbus_string_base64_encode): new function
11253         (_dbus_string_base64_decode): new function
11254
11255 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
11256
11257         * dbus/Makefile.am:
11258         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
11259         (_dbus_marshal_int32), (_dbus_marshal_uint32),
11260         (_dbus_demarshal_double), (_dbus_demarshal_int32),
11261         (_dbus_demarshal_uint32), (_dbus_marshal_test):
11262         * dbus/dbus-marshal.h:
11263         * dbus/dbus-protocol.h:
11264         * dbus/dbus-test.c: (main):
11265         * dbus/dbus-test.h:
11266         Add un-optimized marshalling/demarshalling routines.
11267
11268 2002-12-25  Harri Porten  <porten@kde.org>
11269
11270         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
11271
11272 2002-12-24  Zack Rusin  <zack@kde.org>
11273
11274         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
11275         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
11276         main loop stuff
11277
11278 2002-12-24  Havoc Pennington  <hp@pobox.com>
11279
11280         * glib/dbus-gthread.c: fix include
11281
11282         * glib/dbus-glib.h: rename DBusMessageHandler for now.
11283         I think glib API needs to change, though, as you don't
11284         want to use DBusMessageFunction, you want to use the
11285         DBusMessageHandler object. Probably
11286         dbus_connection_open_with_g_main_loop()
11287         and dbus_connection_setup_g_main_loop() or something like that
11288         (but think of better names...) that just create a connection
11289         that has watch/timeout functions etc. already set up.
11290
11291         * dbus/dbus-connection.c
11292         (dbus_connection_send_message_with_reply): new function just to
11293         show how the message handler helps us deal with replies.
11294
11295         * dbus/dbus-list.c (_dbus_list_remove_last): new function
11296
11297         * dbus/dbus-string.c (_dbus_string_test): free a string that
11298         wasn't
11299
11300         * dbus/dbus-hash.c: use memory pools for the hash entries
11301         (rebuild_table): be more paranoid about overflow, and
11302         shrink table when we can
11303         (_dbus_hash_test): reduce number of sprintfs and write
11304         valid C89. Add tests for case where we grow and then
11305         shrink the hash table.
11306
11307         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
11308
11309         * dbus/dbus-connection.c (dbus_connection_register_handler)
11310         (dbus_connection_unregister_handler): new functions
11311
11312         * dbus/dbus-message.c (dbus_message_get_name): new
11313
11314         * dbus/dbus-list.c: fix docs typo
11315
11316         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
11317         an object representing a handler for messages.
11318
11319 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
11320
11321         * glib/dbus-glib.h:
11322         * glib/dbus-gthread.c: (dbus_gthread_init):
11323         Don't use the gdbus prefix for public functions.
11324
11325 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
11326
11327         * Makefile.am:
11328         * configure.in:
11329         Add GLib checks and fixup .pc files
11330
11331         * glib/Makefile.am:
11332         * glib/dbus-glib.h:
11333         * glib/dbus-gmain.c: (gdbus_connection_prepare),
11334         (gdbus_connection_check), (gdbus_connection_dispatch),
11335         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
11336         (dbus_connection_gsource_new):
11337         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
11338         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
11339         * glib/test-dbus-glib.c: (message_handler), (main):
11340         Add GLib support.
11341
11342 2002-12-15  Harri Porten  <porten@kde.org>
11343
11344         * autogen.sh: check for libtoolize before attempting to use it
11345
11346         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
11347         struct.
11348
11349         * .cvsignore: ignore more stamp files
11350
11351         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
11352
11353         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
11354         without make install.
11355
11356 2002-12-15  Havoc Pennington  <hp@pobox.com>
11357
11358         * dbus/dbus-threads.c: add thread stubs that a higher library
11359         layer can fill in. e.g. the GLib wrapper might fill them in with
11360         GThread stuff. We still need to use this thread API to
11361         thread-safe-ize the library.
11362
11363 2002-12-12  Havoc Pennington  <hp@pobox.com>
11364
11365         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
11366         below new interfaces and include fewer system headers.
11367
11368         * dbus/dbus-sysdeps.c (_dbus_read): new function
11369         (_dbus_write): new function
11370         (_dbus_write_two): new function
11371         (_dbus_connect_unix_socket): new function
11372         (_dbus_listen_unix_socket): new function
11373
11374         * dbus/dbus-message-internal.h: change interfaces to use
11375         DBusString
11376
11377 2002-12-11  Havoc Pennington  <hp@pobox.com>
11378
11379         * dbus/dbus-types.h: add dbus_unichar
11380
11381         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
11382
11383         * dbus/dbus-connection.c (dbus_connection_send_message): return
11384         TRUE on success
11385
11386         * dbus/dbus-transport.c: include dbus-watch.h
11387
11388         * dbus/dbus-connection.c: include dbus-message-internal.h
11389
11390         * HACKING: add file with coding guidelines stuff.
11391
11392         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
11393         handling here, for security purposes (as in vsftpd). Not actually
11394         using this class yet.
11395
11396         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
11397         system/libc usage here, as in vsftpd, for ease of auditing (and
11398         should also simplify portability). Haven't actually moved all the
11399         system/libc usage into here yet.
11400
11401 2002-11-25  Havoc Pennington  <hp@pobox.com>
11402
11403         * dbus/dbus-internals.c (_dbus_verbose): fix to not
11404         always print the first verbose message.
11405
11406 2002-11-24  Havoc Pennington  <hp@pobox.com>
11407
11408         * test/echo-client.c, test/echo-server.c: cheesy test
11409         clients.
11410
11411         * configure.in (AC_CHECK_FUNCS): check for writev
11412
11413         * dbus/dbus-message.c (_dbus_message_get_network_data): new
11414         function
11415
11416         * dbus/dbus-list.c (_dbus_list_foreach): new function
11417
11418         * dbus/dbus-internals.c (_dbus_verbose): new function
11419
11420         * dbus/dbus-server.c, dbus/dbus-server.h: public object
11421         representing a server that listens for connections.
11422
11423         * dbus/.cvsignore: create
11424
11425         * dbus/dbus-errors.h, dbus/dbus-errors.c:
11426         public API for reporting errors
11427
11428         * dbus/dbus-connection.h, dbus/dbus-connection.c:
11429         public object representing a connection that
11430         sends/receives messages. (Same object used for
11431         both client and server.)
11432
11433         * dbus/dbus-transport.h, dbus/dbus-transport.c:
11434         Basic abstraction for different kinds of stream
11435         that we might read/write messages from.
11436
11437 2002-11-23  Havoc Pennington  <hp@pobox.com>
11438
11439         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
11440         _DBUS_INT_MAX
11441
11442         * dbus/dbus-test.c (main): add list test, and include
11443         dbus-test.h as intended
11444
11445         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
11446         (_dbus_hash_table_remove_int): return value indicates
11447         whether the entry existed to remove
11448
11449         * dbus/dbus-list.c: add linked list utility class,
11450         with docs and tests
11451
11452         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
11453         array sometimes.
11454
11455 2002-11-23  Havoc Pennington  <hp@pobox.com>
11456
11457         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
11458         DBUS_END_DECLS to nothing, that should fix this once and for all
11459
11460         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
11461
11462         * dbus/dbus-message.c, dbus/dbus-hash.c:
11463         add some missing @brief
11464
11465 2002-11-23  Havoc Pennington  <hp@pobox.com>
11466
11467         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
11468         to avoid confusing Doxygen
11469
11470         * dbus/dbus-hash.c: @} not }@
11471
11472         * dbus/dbus-message.c (struct DBusMessage): split out
11473         internals docs
11474
11475 2002-11-23  Havoc Pennington  <hp@pobox.com>
11476
11477         * configure.in: pile on more warning flags if using gcc
11478
11479         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
11480         to document static functions
11481
11482         * configure.in: add summary to end of configure so it
11483         looks nice and attractive
11484
11485         * dbus/dbus-hash.c: finish implementation and write unit
11486         tests and docs
11487
11488         * configure.in: add --enable-tests to enable unit tests
11489
11490         * dbus/dbus-test.c: test program to run unit tests
11491         for all files in dbus/*, initially runs a test for
11492         dbus-hash.c
11493
11494         * dbus/dbus-internals.h: file to hold some internal utility stuff
11495
11496 2002-11-22  Havoc Pennington  <hp@redhat.com>
11497
11498         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
11499         "ported" away from Tcl
11500
11501         * dbus/dbus-types.h: header for types such as dbus_bool_t
11502
11503 2002-11-22  Havoc Pennington  <hp@redhat.com>
11504
11505         * dbus/dbus.h: fixups for doc warnings
11506
11507         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
11508         macros
11509         (QUIET): make it quiet so we can see warnings
11510
11511         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
11512
11513 2002-11-22  Havoc Pennington  <hp@redhat.com>
11514
11515         * Makefile.am: include "Doxyfile" target in all-local
11516
11517         * configure.in: generate the Doxyfile
11518
11519         * Doxyfile.in: move Doxyfile here, so we can use
11520         configure to generate a Doxyfile with the right
11521         version number etc.
11522
11523 2002-11-22  Havoc Pennington  <hp@redhat.com>
11524
11525         * dbus/dbus-message.c: move inline docs into .c file
11526
11527         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
11528         so all docs are under doc/
11529         (MAN_EXTENSION): generate man pages. Use extension
11530         ".3dbus" which matches ".3qt" on my system,
11531         I guess this is OK, I don't know really.
11532         (FILE_PATTERNS): look for .c files not .h, makes sense
11533         for plain C I think
11534
11535 2002-11-22  Havoc Pennington  <hp@pobox.com>
11536
11537         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
11538         because any app can be a server, and any app can be a client,
11539         the bus is a special kind of server.
11540
11541 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
11542
11543         * Doxyfile : adding. Still needs Makefile rules to be generated
11544         automatically (just run "doxygen" in the toplevel dir for now to
11545         generate docs)
11546
11547         * dbus/dbus-message.h : Adding sample docs (javadoc since
11548         resembles gtk-doc a little more)
11549
11550         * dbus/dbus.h : Adding sample docs
11551
11552 2002-11-21  Havoc Pennington  <hp@redhat.com>
11553
11554         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
11555         so we can allow ourselves to include files directly,
11556         instead of having to use dbus.h
11557
11558         * dbus/dbus.h: fill in
11559
11560         * dbus/dbus-message.h: sketch out a sample header file.
11561         Include griping if you include it directly instead of
11562         via dbus.h
11563
11564         * dbus/dbus-macros.h: new file with macros for extern "C",
11565         TRUE/FALSE, NULL, etc.
11566
11567         * doc/file-boilerplate.c: put include guards in here
11568
11569 2002-11-21  Havoc Pennington  <hp@redhat.com>
11570
11571         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
11572
11573         * COPYING: include the GPL as well, and license code
11574         under both AFL and GPL.
11575
11576 2002-11-21  Havoc Pennington  <hp@redhat.com>
11577
11578         * acconfig.h: get rid of this
11579
11580         * autogen.sh (run_configure): add --no-configure option
11581
11582         * configure.in: remove AC_ARG_PROGRAM to make
11583         autoconf complain less. add AC_PREREQ.
11584         add AC_DEFINE third arg.
11585
11586 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
11587
11588         * doc/Makefile.am:
11589         Fix references so we can distcheck.
11590
11591 2002-11-21  Havoc Pennington  <hp@redhat.com>
11592
11593         * Initial module creation
11594