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