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