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