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