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