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