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