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