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