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