* python/__init__.py: Version updated (0, 43, 0)
[platform/upstream/dbus.git] / ChangeLog
1 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2
3         * python/__init__.py: Version updated (0, 43, 0)
4         
5         * python/dbus_bindings.pyx: 
6         - Fixed type objects to have self passed into __init__
7         - Added the Variant type
8         - Add the ability to specify types or signatures for Array, Variant and Dictionary
9         - (Connection::send_with_reply_handlers): return a PendingCall object
10         - (_pending_call_notification): handle the case when an error is returned 
11         without an error message in the body
12         - (MessageIter::get_boolean): return True or False instead of an integer
13         - (MessageIter::python_value_to_dbus_sig): add direct checking of types and
14         add checks for objects with embeded signatures or types (Array, Variant and 
15         Dictionary)
16         - (MessageIter::append_byte): handle case when the value is a dbus.Byte
17         - (MessageIter::append_dict): handle embeded types or signatures
18         - (MessageIter::append_array): handle embeded types or signatures
19         - (MessageIter::append_variant): new method
20         
21         * python/proxies.py:
22         - (DeferedMethod): New. Dummy executable object used when queuing calls blocking on
23         introspection data
24         - (ProxyMethod::__call__): add the timeout keyword for specifying longer or
25         shorter timeouts for method calls
26         - (ProxyObject): Add first pass at an introspection state machine
27         - (ProxyObject::__init__): Add introspect keyword for turing off an on 
28         introspection. 
29         - (ProxyObject::_Introspect): Internal Introspect call that bypasses the usual
30         mechanisms for sending messages.  This is to avoid a deadlock where the Intospect
31         call would be queued waiting for the Introspect call to finish ;-)
32         - (ProxyObject::_introspect_reply_handler): New.  This method is called when
33         introspection returns with no error
34         - (ProxyObject::_introspect_error_handler): New.  This method is called when
35         introspection encounters an error
36         - (ProxyObject::__getattr__): Code to handle different introspection states.
37         Queue async calls or block blocking calls if we are introspecting.  Pass through
38         as normal if we are not or are done with introspecting.
39         
40         * python/service.py: Import signal and method from decorators.py
41
42         * python/types.py: Add Variant type
43
44 2005-08-16  Colin Walters  <walters@verbum.org>
45
46         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
47         DBusError message is NULL.
48
49 2005-08-09  Havoc Pennington  <hp@redhat.com>
50
51         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
52         malloc'd copy of the name parameter
53
54 2005-08-09  Havoc Pennington  <hp@redhat.com>
55
56         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
57         warning if the reply serial is set to 0
58
59 2005-08-04  Colin Walters  <walters@verbum.org>
60
61         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
62         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
63         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
64         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
65         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
66         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
67         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
68         * glib/dbus-gvalue.h (dbus_g_value_types_init)
69         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
70         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
71         
72         Prefix name with _ to ensure they're not exported.  All callers
73         updated.
74
75         * glib/dbus-gvalue.c (typecode_to_gtype)
76         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
77         (signature_iter_to_g_type_dict)
78         (signature_iter_to_g_type_array)
79         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
80         (dbus_gtypes_from_arg_signature):
81         Move to dbus-gsignature.c.
82
83         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
84         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
85         (dbus_binding_tool_output_glib_client): Ditto.
86
87         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
88         and dbus-gsignature.h
89
90         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
91         unused variable.
92
93 2005-08-03  Colin Walters  <walters@verbum.org>
94
95         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
96         catch any incompatible changes accidentally made.
97
98 2005-08-03  Havoc Pennington  <hp@redhat.com>
99
100         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
101         typo, from Julien Puydt
102
103         * bus/connection.c (bus_connection_disconnected): we were always
104         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
105
106 2005-08-01  Colin Walters  <walters@verbum.org>
107
108         Patch from Joe Markus Clarke:   
109         
110         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
111         use-after-free.
112
113 2005-08-01  Colin Walters  <walters@verbum.org>
114         
115         Patch from Joe Markus Clarke:   
116         
117         * tools/dbus-send.c (main): 
118         
119         Don't use C99 style initializers (bug #3933).
120         
121 2005-08-01  Colin Walters  <walters@verbum.org>
122
123         Patch from Joe Markus Clarke:   
124
125         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
126         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
127         * glib/dbus-gobject.c (write_interface):
128
129         Don't use C99 style initializers (bug #3933).
130
131 2005-07-31  Havoc Pennington  <hp@redhat.com>
132
133         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
134         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
135
136 2005-07-30  Havoc Pennington  <hp@redhat.com>
137
138         * fix a bunch of Doxygen warnings and mistakes
139
140 2005-07-30  Havoc Pennington  <hp@redhat.com>
141
142         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
143         DBUS_BUILD_TESTS since it's now used in production code
144
145 2005-07-29  Havoc Pennington  <hp@redhat.com>
146
147         * test/glib/test-profile.c (write_junk): initialize the junk
148         buffer so valgrind doesn't have a breakdown
149
150 2005-07-29  Havoc Pennington  <hp@redhat.com>
151
152         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
153         (match_rule_matches): remove unused arg
154         (test_matching): add tests for match_rule_matches()
155
156         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
157         do arg0='foo' arg5='bar' in the match rules
158         (match_rule_matches): don't match if the arg0='foo' doesn't match.
159
160         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
161
162 2005-07-29  Ross Burton  <ross@openedhand.com>
163
164         * dbus/dbus-connection.c:
165         Don't create a DBusCondVar which is never used.
166
167 2005-07-27  Ross Burton  <ross@openedhand.com>
168
169         * dbus/dbus-message.c:
170         Reduce the size of the maximum cached message to 10K.
171
172 2005-07-25  Ross Burton  <ross@openedhand.com>
173
174         * glib/dbus-gproxy.c:
175         Remove matches when all proxies are unregistered.
176
177 2005-07-24  Colin Walters  <walters@verbum.org>
178
179         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
180         typedata; recursive arrays won't have it.
181
182         * test/glib/test-dbus-glib.c:
183         * test/glib/test-service-glib.c:
184         * test/glib/test-service-glib.xml: Add recursive arrays tests.
185         
186 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
187
188         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
189         proxies.py, service.py: Cleanup of code after running it through the
190         pyflakes code checker mostly dealing with undefined names.  
191         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
192
193 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
194
195         * NEWS: Update to 0.35.2
196
197 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
198
199         * python/_dbus.py: Remove import of the dbus.services
200         module as it no longer exists (patch from Dimitur Kirov)
201
202         * python/service.py (Object::__init__): Fixed typo
203         s/name/bus_name (patch from Dimitur Kirov)
204
205         * python/examples/example-signal-emitter.py: import dbus.glib
206         to get the main loop and use glib mainloop instead of gtk so
207         X doesn't have to be running.
208
209         * python/examples/example-signal-recipient.py: import dbus.glib
210         to get the main loop and use glib mainloop instead of gtk so
211         X doesn't have to be running. Import the decorators module
212         directly.
213
214         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
215         didn't pick up on but are needed to build
216
217         * configure.in: upped version to 0.35.2
218
219         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
220         added Colin Walters' SELinux API rename patch from head 
221         s/unix sercurity context/selinux security context/
222
223 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
224
225         * python/Makefile.am: dbus_binding.pxd.in should be included 
226         in EXTRA_DIST not dbus_binding.pxd
227         fix up $(srcdir) hopefully for the last time
228
229         * NEWS: Update to 0.35.1
230
231 2005-07-16  Colin Walters  <walters@verbum.org>
232
233         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
234         from bus_driver_handle_get_connection_unix_security_context.  Update for
235         error usage.
236         (message_handlers): Update for renames.
237
238         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
239         _dbus_string_init failure correctly.
240         (bus_selinux_append_context): Convert SID to context.  Append it
241         as a byte array.
242         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
243         hasn't been called.
244
245         * bus/selinux.h: Update prototype.
246
247         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
248         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
249
250 2005-07-15  Colin Walters  <walters@verbum.org>
251
252         * doc/TODO: Add note about convenience wrappers.
253
254 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
255
256         * NEWS: Update to 0.35
257
258 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
259
260         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
261         so distcheck doesn't fail
262
263         * glib/examples/Makefile.am: Add example-service.xml and 
264         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
265
266         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
267         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
268
269         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
270         compiler looks in the right places during distcheck
271
272 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
273
274         * glib/example/Makefile.am: Fix a typo which cause make distcheck
275         to fail
276
277 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
278
279         * python/examples/example-service.py,
280         python/examples/example-signal-emitter.py: Fixed up examples
281         for API changes
282
283 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
284
285         * python/__init__.py: Upped to version (0,42,0) because of
286         the API change
287
288 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
289
290         * ChangeLog: fix date in last entry
291
292         * configure.in, bus/system.conf.in: add the ability to configure 
293         the system bus user at compiletime with the --with-dbus-user flag
294         (patch from Kristof Vansant)
295
296 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
297
298         * bus/dispatch.c, test/test-service.c: Add testcase
299         for sending messages to oneself (TODO item).
300
301         * python/service.py (class Object): Swap ordering of bus_name 
302         and object_path parameters to better support inheritance.
303
304         * doc/dbus-tutorial.xml: change Python docs to reflect change
305         in parameter ordering and fix the inheritance section.
306
307         * doc/TODO: remove sending message to oneself TODO item
308
309 2005-07-15  Ross Burton  <ross@openedhand.com>
310
311         * glib/dbus-gproxy.c:
312         Fix a leak when calling methods via the proxy.
313
314 2005-07-15  Colin Walters  <walters@verbum.org>
315
316         * bus/selinux.c (bus_selinux_append_context): Wrap in
317         HAVE_SELINUX.
318
319 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
320
321         * python/_dbus.py (Bus::remove_signal_receiver):
322         don't add a callback to the match if none has been passed in
323         
324         * python/matchrules.py (SignalMatchTree::remove): if the rule
325         being matched does not have a callback treat it as a wildcard
326         fix matching logic
327
328         * doc/dbus-tutorial.xml: Add Python tutorial
329
330 2005-07-14  Colin Walters  <walters@verbum.org>
331
332         * bus/driver.c
333         (bus_driver_handle_get_connection_unix_security_context): New function.
334         (message_handlers): Add.
335
336         * bus/selinux.c (bus_selinux_append_context): New function; appends
337         security context to message.
338
339         * bus/selinux.h: Prototype.
340
341         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
342
343 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
344
345         * bus/activation.c: clean up all tabs to be 8 spaces 
346         (bus_activation_activate_service): make sure we clean up
347         if activation fails
348
349         * bus/dispatch.c: clean up all tabs to be 8 spaces 
350         (check_shell_fail_service_auto_start): New function
351         tests to make sure we get fail properly when trying to auto start a service
352         with a faulty command line
353         (check_shell_service_success_auto_start): New function tests to make sure
354         auto started services get the arguments on the command line
355
356         * test/test-shell-service.c: Added service for testing auto-starting with 
357         command line arguments
358
359         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
360         test/data/valid-service-files/debug-shell-echo-success.service.in:
361         Added service files for testing auto-starting with command line arguments
362
363         * */.cvsignore: added a bunch of generated files to various .cvsignore files
364
365 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
366
367         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
368         
369         * dbus/Makefile.am: added new files to build.
370
371         * bus/activation.c (bus_activation_activate_service): support
372         activation commands with parameters.
373
374         * test/shell-test.c: added test program for the shell parsing
375         code.
376
377 2005-07-13  David Zeuthen  <davidz@redhat.com>
378
379         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
380         64 bit signed and unsigned parameters
381
382 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
383
384         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
385
386         * python/service.py (class Name): renamed BusName to make it clearer
387         what the object is for (a name on the bus)
388
389         * python/examples/example-service.py,
390         python/examples/example-signal-emitter.py: change the Name object to
391         BusName
392
393 2005-07-12  Colin Walters  <walters@verbum.org>
394
395         Patch from Jim Gettys <Jim.Gettys@hp.com>.
396
397         * tools/dbus-launch.c: Include sys/select.h.
398
399 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
400         * python/dbus_bindings.pyx.in: removed
401
402         * python/dbus_bindings.pyx: Added.
403         - Fixed some memleaks (patch from 
404         Sean Meiners <sean.meiners@linspireinc.com>)
405         - Broke out the #include "dbus_h_wrapper.h" and put it in its
406         own pxd file (Pyrex definition)
407         - Broke out glib dependancies into its own pyx module
408         
409         * python/dbus_bindings.pdx: Added.
410         - Defines C class Connection for exporting to other modules
411
412         * python/dbus_glib_bindings.pyx: Added.
413         - New module to handle lowlevel dbus-glib mainloop integration
414
415         * python/glib.py: Added.
416         - Registers the glib mainloop when you import this module
417
418         * python/services.py: Removed (renamed to service.py)
419         
420         * python/service.py: Added.
421         - (class Server): renamed Name
422
423         * python/__init__.py: Bump ro version (0,41,0)
424         -don't import the decorators or service module
425         by default.  These now reside in the dbus.service namespace
426
427         * python/_dbus.py (Bus::__init__): Add code run the main loop 
428         setup function on creation 
429
430         * python/examples/example-service.py,
431         python/examples/example-signal-emitter.py: update examples
432
433         * python/examples/gconf-proxy-service.py,
434         python/examples/gconf-proxy-service2.py: TODO fix these up
435
436         * doc/TODO: Addition
437         - Added a Python Bindings 1.0 section
438         - added "Add match on args or match on details to match rules"
439
440
441 2005-07-12  Colin Walters  <walters@verbum.org>
442
443         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
444         (statemachine-glue.h): 
445         * glib/examples/Makefile.am (example-service-glue.h) 
446         (example-signal-emitter-glue.h): 
447         * glib/Makefile.am (dbus-glib-error-switch.h): 
448         Add libtool --mode=execute so we use the built library instead
449         of any installed one.
450
451 2005-07-11  Colin Walters  <walters@verbum.org>
452
453         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
454         (dbus_g_value_types_init): Remove assertion.
455         (dbus_g_value_get_g_type, dbus_g_value_open)
456         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
457         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
458         functions related to DBusGValue.  Now we marshal/demarshal
459         structures as GValueArray.
460         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
461         structures.
462         (signature_iter_to_g_type_array): Don't call
463         signature_iter_to_g_type_struct.
464         (signature_iter_to_g_type_struct): Delete.
465         (dbus_gvalue_to_signature): Delete.
466         (dbus_gvalue_to_signature): New function with same name as other
467         one; we can convert structures to signatures.
468         (demarshal_valuearray): New function.
469         (get_type_demarshaller): Use it.
470         (demarshal_recurse): Delete.
471         (marshal_proxy): New function.
472         (marshal_map): Warn if we can't determine signature from type.
473         (marshal_collection_ptrarray): Ditto.
474         (marshal_collection_array): Ditto.
475         (get_type_marshaller): Use marshal_valuearray.
476         (marshal_recurse): Delete.
477         (_dbus_gvalue_test): Add some tests.
478
479         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
480         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
481         (dbus_g_value_open, dbus_g_value_iterator_get_value)
482         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
483         (dbus_g_value_free): Remove prototypes.
484
485         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
486         G_TYPE_VALUE_ARRAY.
487
488         * glib/examples/example-service.c:
489         * glib/examples/example-client.c: Implement GetTuple.
490
491         * test/glib/test-dbus-glib.c:
492         * test/glib/test-service-glib.c:
493         * test/glib/test-service-glib.xml: Add structure tests.
494
495 2005-07-10  Colin Walters  <walters@verbum.org>
496
497         * doc/TODO: Knock off some GLib items with this patch.
498
499         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
500         (_dbus_gvalue_signals_error): New functions.
501
502         * glib/dbus-gvalue-utils.h: Prototype them.
503
504         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
505         and change to not output const/retval flags for input args.  All
506         callers updated.
507         (invoke_object_method): Refactor to handle return values.  Add
508         some more comments in various places.  Remove debug g_print.
509
510         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
511
512         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
513         Handle G_TYPE_NONE.
514         (compute_gsignature): New function; refactored from code from
515         compute_marshaller and compute_marshaller_name.  Enhance to
516         handle return values and async ops more cleanly.  Update for
517         async ops returning NONE instead of BOOLEAN.
518         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
519         and output appropriate string.
520         (generate_glue): Handle return value annotation.  Also don't dump
521         constness flag for input arguments.
522
523         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
524         files shared between installed library and utilities.
525         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
526         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
527         binding tool can access gtype utility functions.
528
529         * test/glib/test-service-glib.c: 
530         * test/glib/test-service-glib.xml: 
531         * test/glib/test-dbus-glib.c: Add some tests for return values.
532
533 2005-07-09  Colin Walters  <walters@verbum.org>
534
535         * glib/dbus-gparser.c (parse_annotation): Add annotations to
536         argument if available, not method.
537
538         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
539         (invoke_object_method): First, remove some redundant
540         GValues (object_value, error_value) in favor of working on
541         array directly.  Second, rework constness to be less buggy.
542         Now we iterate directly over the argument metadata instead
543         of parallel iterating over output signature and metadata.
544
545         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
546
547         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
548         annotation on input args.
549         
550 2005-07-09  Colin Walters  <walters@verbum.org>
551
552         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
553         Define.
554
555         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
556         annotation.
557
558         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
559         (method_dir_signature_from_object_info): Handle arg_iterate change.
560         (write_interface): Ditto.
561         (lookup_object_info): Don't barf if format_version is > 0.
562         (invoke_object_method): Handle arg constness.
563
564         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
565         (arg_info_new): Create.
566         (arg_info_unref): Destroy.
567         (arg_info_get_annotations, arg_info_get_annotation) 
568         (arg_info_add_annotation): New functions.
569
570         * glib/dbus-gidl.h: Prototype them.
571
572         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
573         args, disallow them in properties.
574         (parse_annotation): Handle arg annotations.
575
576         * test/glib/test-service-glib.xml: 
577         * test/glib/test-service-glib.c: Update to make some methods
578         const.
579
580 2005-07-08  Colin Walters  <walters@verbum.org>
581
582         * test/glib/test-service-glib.xml: 
583         * test/glib/test-service-glib.c:
584         * test/glib/test-dbus-glib.c: Test a{sv}.
585
586         * glib/examples/statemachine/statemachine.c:
587         * glib/examples/statemachine/statemachine-server.c:
588         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
589         add progress bar, etc.
590
591         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
592         needed anymore due to generic array/map marshalling.
593         (dbus_g_value_types_init): Don't register basic arrays or the
594         string/string hash.
595         (dbus_gtype_from_signature_iter): Don't try to recurse into
596         variants.
597         (dbus_gtype_to_signature): Check collection/map before type
598         metadata.
599         (demarshal_garray_basic): Renamed to demarshal_collection_array.
600         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
601         generic map creation/append functions instead of hash table
602         specifically.
603         (get_type_demarshaller): Handle maps.
604         (demarshal_collection): Dispatch on collection type to either
605         demarshal_collection_ptrarray or demarshal_collection_array.
606         (get_type_marshaller): Handle maps.
607         (marshal_collection): Dispatch collection type to either
608         marshal_collection_ptrarray or marshal_collection_array.
609         (_dbus_gvalue_test): New test.
610
611         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
612         (hash_free_from_gtype): Use it to free GValues.
613         (hashtable_append): New function.
614         (ptrarray_append): Fix prototype.
615         (slist_append): Ditto.
616         (_dbus_gvalue_utils_test): Extend tests.
617
618         * glib/dbus-gtype-specialized.c
619         (dbus_g_type_specialized_init_append): Renamed from
620         dbus_g_type_specialized_collection_init_append.  Remove const from
621         value, since we steal it.
622         (dbus_g_type_specialized_map_append): New function.
623
624         * glib/dbus-gtype-specialized.h: Update prototypes.
625         Add DBusGTypeSpecializedMapAppendFunc.
626
627         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
628         _dbus_gvalue_test.
629         
630         * glib/dbus-gtest.h: Prototype it.
631
632 2005-07-08  Ross Burton  <ross@openedhand.com>
633
634         * dbus/dbus-glib.h:
635         Add DBysGAsyncData for the async bindings.
636
637         * glib/dbus-binding-tool-glib.c:
638         Re-enable the async bindings.
639
640         * test/glib/test-dbus-glib.c:
641         Add a test for the generated async bindings.
642
643 2005-07-08  Colin Walters  <walters@verbum.org>
644
645         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
646         connection concept.
647         
648 2005-07-08  Colin Walters  <walters@verbum.org>
649         
650         * tools/Makefile.am: Kill of print-introspect in favor of using
651         dbus-send --print-reply=literal.
652
653         * test/glib/test-service-glib.xml: 
654         * test/glib/test-service-glib.c (my_object_get_objs): New test
655         for "ao".
656
657         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
658         (main): Test GetObjs.
659
660         * glib/examples/statemachine/Makefile.am:
661         * glib/examples/statemachine/sm-marshal.list:
662         * glib/examples/statemachine/statemachine-client.c:
663         * glib/examples/statemachine/statemachine-server.c:
664         * glib/examples/statemachine/statemachine-server.xml:
665         * glib/examples/statemachine/statemachine.c:
666         * glib/examples/statemachine/statemachine.h:
667         * glib/examples/statemachine/statemachine.xml:
668
669         New example.
670
671         * glib/examples/example-service.c (main): Move invocation
672         of dbus_g_object_type_install_info earlier, to emphasize it
673         should only be done once.
674
675         * glib/examples/example-signal-emitter.c (main): Ditto.
676
677         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
678
679         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
680         (dbus_gvalue_marshal): Update prototypes.
681
682         * glib/dbus-gvalue.c: Update all marshalling functions to take
683         const GValue instead of GValue.
684         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
685         types.
686         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
687         change.
688         (dbus_gtype_to_signature): Handle generic collecitons and maps.
689         Return a newly-allocated string.
690         (demarshal_proxy, demarshal_object_path, demarshal_object)
691         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
692         we get the wrong types from message.
693         (get_type_demarshaller): New function, extracted from
694         dbus_gvalue_demarshal.
695         (demarshal_collection): New function, demarshals generic
696         collection.
697         (dbus_gvalue_demarshal): Just invoke result of
698         get_type_demarshaller.  Throw error if we don't have one.
699         (marshal_garray_basic): Abort on OOM.
700         (get_type_marshaller): New function, extracted from
701         dbus_gvalue_marshal.
702         (collection_marshal_iterator, marshal_collection): New functions;
703         implements generic marshalling for an iteratable specialized
704         collection.
705         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
706
707         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
708         G_TYPE_STRING.
709         (ptrarray_value_from_gvalue): Ditto.
710         (ptrarray_append, ptrarray_free): New functions.
711         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
712         (slist_append, slist_end_append, slist_free): New functions.
713         (dbus_g_type_specialized_builtins_init): Add append fuctions
714         for GPtrArray and GSList.  Register GSList.
715         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
716
717         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
718         New.
719         (dbus_g_type_specialized_collection_init_append)
720         (dbus_g_type_specialized_collection_append)
721         (dbus_g_type_specialized_collection_end_append): Prototype.
722         (DBusGTypeSpecializedCollectionVtable): Add append_func and
723         end_append_func.
724
725         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
726         (dbus_g_type_specialized_collection_append) 
727         (dbus_g_type_specialized_collection_end_append): New functions.
728         (dbus_g_type_map_value_iterate): Take const GValue.
729         (dbus_g_type_collection_value_iterate): Ditto.
730
731         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
732         _dbus_gvalue_utils_test.
733         
734         * glib/dbus-gtest.h: Prototype it.
735
736         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
737         using uninitialized owner_list.
738         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
739         public API.
740         (dbus_g_proxy_end_call_internal): Update to use error set
741         from dbus_gvalue_demarshal instead of setting it here.
742         (dbus_g_proxy_begin_call): Move return_if_fail here.
743
744         * glib/dbus-gobject.c (write_interface): Update for
745         dbus_gtype_to_signature returning new string.
746
747         * configure.in: Add glib/examples/statemachine.
748
749 2005-07-08  Joe Shaw  <joeshaw@novell.com>
750
751         * configure.in: Add a configure option, --with-console-auth-dir
752         
753         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
754         new setting.  Patch from Kay Sievers.
755
756 2005-07-06  Colin Walters  <walters@verbum.org>
757
758         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
759         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
760         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
761         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
762         Delete in favor of dbus_g_proxy_begin_call and
763         dbus_g_proxy_cancel_call.
764         (DBusGProxyCall, DBusGProxyCallNotify): New.
765         (dbus_g_proxy_begin_call): Change prototype to take callback, user
766         data, and destroy function.  This replaces
767         dbus_g_pending_call_set_notify.
768         (dbus_g_proxy_cancel_call): Prototype.
769         (DBusGAsyncData): Delete, shouldn't be needed anymore.
770
771         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
772         pending_calls map.
773         (struct _DBusGProxyManager): Add bus_proxy member, which is an
774         internal proxy for calls to the bus. Remove
775         pending_nameowner_calls, now the internal proxy keeps track.
776         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
777         pending_nameowner_calls.
778         (got_name_owner_cb): Update prototype, and use
779         dbus_g_proxy_end_call.
780         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
781         (dbus_g_proxy_manager_register): Delete directly libdbus code in
782         favor of using internal proxy.
783         (dbus_g_proxy_manager_unregister): Update to use
784         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
785         (dbus_g_proxy_init): Initialize pending calls map.
786         (dbus_g_proxy_constructor): New.
787         (dbus_g_proxy_class_init): Add get/set property functions,
788         constructor, and add NAME, PATH, and INTERFACE properties.
789         (cancel_pending_call): New function.
790         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
791         cancel them.
792         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
793         (GPendingNotifyClosure): New structure.
794         (d_pending_call_notify, d_pending_call_free): Moved here from
795         dbus-glib.c.
796         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
797         ordering.
798         (manager_begin_bus_call): New internal function for talking to
799         internal bus proxy.
800         (dbus_g_proxy_new): Construct object using GObjet properties.
801         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
802         Create closure of same, and insert call into map of pending calls.
803         (dbus_g_proxy_end_call_internal): Take call id instead of pending
804         call.  Look up pending call in current set.  Remove it when we've
805         completed.
806         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
807         (dbus_g_proxy_begin_call): Change API to take callback, user data,
808         and destroy function directly.
809         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
810         (dbus_g_proxy_call): Invoke with NULL callback.
811         (dbus_g_proxy_cancel_call): New function, replaces
812         dbus_g_pending_call_cancel.
813
814         * glib/dbus-gparser.c (validate_signature): Fix call to
815         dbus_set_g_error.
816
817         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
818         New quark for attaching metadata to GType.
819         (info_hash): Delete.
820         (lookup_object_info): Look up using quark.
821         (dbus_g_object_type_install_info): Check that a type is classed,
822         not that it's an object.  Also just install type data using quark
823         instead of using global hash.
824
825         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
826         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
827         (GPendingNotifyClosure): Delete.
828         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
829         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
830
831         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
832         client method generation until we can fix it...
833         
834         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
835         (load_from_service_thread_func): Ditto.
836
837         * tools/dbus-names-model.c (struct NamesModel): Hold
838         DBusGProxyCall.
839         (have_names_notify): Update prototype, use
840         dbus_g_proxy_cancel_call.
841         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
842
843         * tools/dbus-monitor.c (filter_func): Update for print_message
844         API change.
845
846         * test/glib/test-dbus-glib.c: Add more tests for async
847         invocations.  Update many begin_call/end_call pairs to just use
848         dbus_g_proxy_call.
849
850         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
851         allows us to dump print-introspect.c.
852
853         * tools/dbus-print-message.h (print_message): Add literal argument
854         to print_message which is intended to allow printing arguments without
855         metadata like "string=".
856
857         * tools/dbus-print-message.c (print_iter): Add literal argument.
858         (print_message): Allow printing string messages literally.
859
860 2005-07-05  Colin Walters  <walters@verbum.org>
861
862         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
863         Remove value refcount leak, original patch from Jorn Baayen
864         <jorn@openedhand.com>.  Also remove useless extra value in favor
865         of prepending to value array directly.
866
867 2005-07-02  Colin Walters  <walters@verbum.org>
868
869         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
870
871 2005-07-01  Colin Walters  <walters@verbum.org>
872
873         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
874         
875         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
876         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
877         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
878         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
879
880 2005-06-30  Colin Walters  <walters@verbum.org>
881
882         * test/glib/test-dbus-glib.c:
883         * test/glib/test-service-glib.c:
884         * test/glib/test-service-glib.xml: Update tests for new error
885         setting bits, also add async tests (patch from Ross Burton).
886
887         * test/glib/Makefile.am (test_service_glib_LDADD): Add
888         DBUS_GLIB_THREADS_LIBS.
889
890         * glib/dbus-gproxy.c (get_name_owner)
891         (dbus_g_pending_call_end_valist): Ditto.
892
893         * glib/dbus-gobject.c (error_metadata): New mapping from GError
894         domain (GQuark) to DBusGErrorInfo.  
895         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
896         quark in error_metadata.  Take message interface as default
897         error message interface.
898         (gerror_to_dbus_error_message): Pass message interface.
899         (dbus_set_g_error): Resurrected.
900         (dbus_g_error_info_free): New function.
901         (dbus_g_object_type_install_info): Use g_type_class_ref instead
902         of _peek to actually create the object class if it hasn't been
903         created yet.
904         (dbus_g_error_domain_register): New function.
905
906         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
907
908         * glib/dbus-gparser.c (validate_signature): Ditto.
909
910         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
911         (dbus_g_error_domain_register): Prototype.
912
913         * glib/dbus-glib.c (dbus_g_error_set): Delete.
914         Update tests.
915
916 2005-06-29  Colin Walters  <walters@verbum.org>
917
918         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
919         DBUS_TYPE_G_OBJECT_PATH.
920
921         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
922         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
923         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
924         (dbus_g_object_path_get_g_type): New function.
925         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
926         to DBUS_TYPE_G_OBJECT_PATH by default.
927         (demarshal_proxy): Remove unused name variable.
928         (demarshal_object_path, marshal_object_path): New functions.
929         (demarshal_proxy_array, marshal_proxy_array): Delete.
930         
931         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
932         DBUS_TYPE_G_OBJECT_PATH to char *.
933         (dbus_g_type_get_lookup_function): Map builtin
934         DBUS_TYPE_G_OBJECT_PATH.
935
936         * test/glib/test-dbus-glib.c
937         * test/glib/test-service-glib.c (my_object_objpath): 
938         Adapt tests to new object path marshalling.
939
940 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
941
942         * configure.in: force check for Python >= 2.4
943
944 2005-06-29  Colin Walters  <walters@verbum.org>
945         
946         Patch from Ross Burton <ross@openedhand.com>
947         
948         * glib/dbus-gobject.c (invoke_object_method): Unset object
949         value in all cases, not only in async case.
950
951 2005-06-29  Colin Walters  <walters@verbum.org>
952
953         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
954         name_call for keeping track of any outgoing GetNameOwner call.
955         Also add for_owner and associated.
956         (struct _DBusGProxyManager): Add owner_names, which is hash table
957         that maps a base name to a list of names it owns (that we're
958         interested in).  Add pending_nameowner_calls which is a list of
959         all outstanding GetNameOwner; avoids us having to iterate over
960         every proxy.  Add unassociated_proxies which keeps track of name
961         proxies with no associated name owner.
962         (dbus_g_proxy_manager_unref): Destroy owner_names.
963         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
964         name refcounts.
965         (find_name_in_info, name_owner_foreach)
966         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
967         (dbus_g_proxy_manager_monitor_name_owner)
968         (dbus_g_proxy_manager_unmonitor_name_owner)
969         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
970         New functions; they manipulate the owner_names mapping.
971         (got_name_owner_cb): New function.
972         (get_name_owner): New function, extracted from
973         dbus_g_proxy_new_for_name_owner.
974         (dbus_g_proxy_manager_register): For now we need to keep track of
975         all NameOwnerChanged.  Also if the proxy is for a name, if we
976         don't already know the name owner, queue a new GetNameOwner
977         request and add it to our list of unassociated proxies.  Otherwise
978         inc the refcount.
979         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
980         cancel any pending GetNameOwner call, etc.
981         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
982         the owner_names mapping to look up the current names for the
983         signal source, and dispatch to any proxies for that name.
984         (dbus_g_proxy_new): Initialize new members.
985         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
986         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
987         (dbus_g_pending_call_end_valist): New function, extracted from
988         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
989         but want to use the GLib infrastructure.  Also note how many
990         arguments in reply were over.
991         (dbus_g_pending_call_end): New function, just call
992         dbus_g_pending_call_end_valist.
993         (dbus_g_proxy_end_call_internal): Just call
994         dbus_g_pending_call_end_valist.
995
996         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
997         of builtin marshaller for STRING_STRING_STRING.
998
999         * test/glib/test-dbus-glib.c: 
1000         * test/glib/test-service-glib.c:
1001         * test/glib/test-service-glib.xml:
1002         Extend tests to cover name proxies, destruction of owner proxies,
1003         etc.
1004         
1005         * glib/examples/example-signal-recipient.c
1006         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
1007         
1008         * tools/dbus-send.c (main): Print D-BUS error name in addition
1009         to message.
1010
1011 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
1012
1013         * python/dbus_bindings.pyx.in (cunregister_function_handler,
1014         cmessage_function_handler): Patch from 
1015         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
1016         by using the Py_GILState_Ensure/Release to synchronize with the
1017         python runtime.
1018         
1019 2005-06-28  Ray Strode  <rstrode@redhat.com>
1020
1021         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
1022         babysitter helper process on last unref, bug #2813.
1023
1024 2005-06-27  Colin Walters  <walters@verbum.org>
1025
1026         * test/glib/test-dbus-glib.c: 
1027         * test/glib/test-service-glib.c:
1028         * test/glib/test-service-glib.xml:
1029         Test hash table signal emitting.
1030
1031         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
1032         types to their fundamental basis types, since this is what
1033         marshallers operate on.  Also add an entry for VOID__BOXED.
1034         (dbus_g_object_register_marshaller_array): Convert to fundamental.
1035
1036 2005-06-26  Havoc Pennington  <hp@redhat.com>
1037
1038         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
1039         from Don Park
1040
1041 2005-06-26  Colin Walters  <walters@verbum.org>
1042
1043         * glib/dbus-glib.c (dbus_set_g_error): Delete.
1044         (dbus_g_error_set): New public function from its ashes; used by
1045         both service-side method implementation and GLib bindings
1046         internals.
1047         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
1048         (_dbus_glib_test): Add some tests.
1049
1050         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
1051
1052         * test/glib/test-service-glib.c (my_object_throw_error): Use
1053         dbus_g_error_set.
1054
1055         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
1056         errors thrown by dbus_g_error_set.
1057
1058         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
1059
1060         * glib/dbus-gparser.c (validate_signature): Ditto.
1061
1062         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
1063         (dbus_g_proxy_end_call_internal): Ditto.
1064
1065         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
1066         converts DBUS_ERROR_x to DBUS_GERROR_x.
1067         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
1068
1069         * doc/TODO: Remove error TODO.
1070
1071         * doc/dbus-tutorial.xml: Update with documentation about error
1072         handling.
1073
1074         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
1075         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
1076         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
1077
1078 2005-06-22  Colin Walters  <walters@verbum.org>
1079         
1080         Patch from Ross Burton <ross@openedhand.com>
1081
1082         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
1083
1084 2005-06-20  Colin Walters  <walters@verbum.org>
1085
1086         * configure.in: Add glib/examples.
1087
1088         * glib/Makefile.am: Add examples/
1089
1090         * glib/examples/.cvsignore
1091         * glib/examples/Makefile.am
1092         * glib/examples/example-client.c
1093         * glib/examples/example-service.c
1094         * glib/examples/example-service.xml
1095         * glib/examples/example-signal-emitter.c
1096         * glib/examples/example-signal-emitter.xml
1097         * glib/examples/example-signal-recipient.c:
1098         New files; GLib binding examples, ported from
1099         python/examples.
1100
1101 2005-06-20  Colin Walters  <walters@verbum.org>
1102
1103         * dbus/dbus-glib.h: 
1104         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
1105         dbus_g_proxy_call.
1106
1107         * glib/dbus-binding-tool-glib.c: 
1108         * doc/dbus-tutorial.xml: 
1109         * test/glib/test-dbus-glib.c: Update for rename.
1110         
1111 2005-06-20  Colin Walters  <walters@verbum.org>
1112
1113         Patch suggested by Ross Burton <ross@openedhand.com>
1114
1115         * glib/dbus-gobject.c (export_signals): Free signal name.
1116         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
1117         memory leak.  Add a bit of documentation.
1118         (dbus_g_method_return_error): Free context, and note we do
1119         so.
1120
1121 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
1122
1123         * dbus/dbus-glib.h:
1124         * glib/dbus-gobject.c:
1125         * glib/dbus-gproxy.c:
1126         * glib/dbus-gvalue.c: Predeclare structs as 
1127         typedef struct _Something Something instead of 
1128         typedef struct Something Something, so we can 
1129         redeclare the prototypes. Other GNOME libraries 
1130         do this already.
1131
1132 2005-06-17  Colin Walters  <walters@verbum.org>
1133
1134         * tools/dbus-names-model.c (have_names_notify): Fix call
1135         to dbus_g_proxy_end_call.
1136         
1137 2005-06-17  Colin Walters  <walters@verbum.org>
1138
1139         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
1140         spew warnings if we get malformed remote signals.
1141
1142         * glib/dbus-gobject.c (propsig_iterate): New function.
1143         (lookup_object_info): New function, extracted from
1144         lookup_object_and_method.
1145         (introspect_properties, introspect_signals): Delete; these
1146         are merged into write_interface.
1147         (write_interface): Write out signals and properties here;
1148         dump the org.gtk.object stuff and use the interface given
1149         in the introspection data blob.  Also fix up property XML.
1150         (lookup_values): New function.
1151         (introspect_interfaces): Gather a mapping from interface to a
1152         list of its methods, signals, and properties, then write out
1153         each interface.
1154         (lookup_object_and_method): Use lookup_object_info.
1155         (struct DBusGSignalClosure): Add interface.
1156         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
1157         we can just use the constant data.
1158         (dbus_g_signal_closure_finalize): Don't free signal name.
1159         (signal_emitter_marshaller): Use interface from signal closure.
1160         (export_signals): Only export signals mentioned in introspection
1161         blob.
1162         (dbus_g_connection_register_g_object): Warn if we have no
1163         introspection data for an object.
1164         (funcsig_equal): Remove unused variable.
1165         (dbus_g_object_register_marshaller): Take varargs instead of
1166         list.
1167         (dbus_g_object_register_marshaller_array): New function,
1168         extracted from old dbus_g_object_register_marshaller.
1169
1170         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
1171         signals and property data.
1172         (write_quoted_string): New function, extracted from generate_glue.
1173         (generate_glue): Write signals and properties to introspection
1174         blob.
1175
1176         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
1177         exported_signals and exported_properties.
1178         (dbus_g_object_register_marshaller): Update prototype.
1179         (dbus_g_object_register_marshaller_array): Prototype.
1180         
1181         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
1182
1183         * test/glib/test-service-glib.c: Add new test signals and method
1184         to emit them.
1185
1186         * test/glib/test-service-glib.xml: Add some test signals.
1187
1188         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
1189         and my-object-marshal.h
1190         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
1191         my-object-marshal.c.
1192         (my-object-marshal.c, my-object-marshal.h): Implement.
1193
1194         * test/glib/.cvsignore: Update.
1195
1196         * doc/TODO: Remove two GLib TODO items fixed by this
1197         patch.
1198
1199 2005-06-16  Colin Walters  <walters@verbum.org>
1200
1201         * doc/TODO: Update for GLib bindings.
1202         
1203 2005-06-16  Colin Walters  <walters@verbum.org>
1204
1205         * glib/dbus-binding-tool-glib.c:
1206         * glib/dbus-gobject.c:
1207         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
1208         from Ross Burton, for his GLib bindings work.
1209
1210 2005-06-16  Colin Walters  <walters@verbum.org>
1211
1212         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
1213         to iterate instead of walking to G_TYPE_INVALID.
1214
1215         Patch based on a patch from Ryan Gammon.
1216
1217 2005-06-16  Colin Walters  <walters@verbum.org>
1218
1219         * bus/bus.c (bus_context_new): Set parser to NULL
1220         after we unref it (Patch from Chris Boscolo, #2174).
1221         
1222 2005-06-16  Colin Walters  <walters@verbum.org>
1223
1224         * python/dbus_bindings.pyx.in: Import size_t,
1225         __int64_t, __uint64_t, and __signed.
1226
1227         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
1228         Define cmsg struct, output it.
1229         (_dbus_read_credentials_unix_socket):
1230         Use cmsg struct.
1231         
1232         Patch from Joe Markus Clarke for FreeBSD support.
1233         
1234 2005-06-16  Colin Walters  <walters@verbum.org>
1235
1236         * tools/dbus-send.c (append_array): Use strtok.
1237         (append_dict): New function.
1238         (type_from_name): New function, extracted from main.
1239         (main): Handle sending dicts.
1240
1241         * tools/dbus-print-message.c (print_iter): Print dict
1242         entries.
1243         
1244 2005-06-16  Colin Walters  <walters@verbum.org>
1245
1246         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
1247         values as the empty string (#2948).
1248         
1249 2005-06-16  Colin Walters  <walters@verbum.org>
1250
1251         * dbus/Makefile.am:
1252         * mono/doc/Makefile.am:
1253         * test/glib/Makefile.am:
1254
1255         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
1256
1257 2005-06-16  Colin Walters  <walters@verbum.org>
1258
1259         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
1260         header byte order from expected byte order (Patch from Chris Wilson, #3475).
1261
1262         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
1263         Increment pointer after swapping fixed array.  Add assertion
1264         for array length.
1265                 
1266 2005-06-15  Colin Walters  <walters@verbum.org>
1267
1268         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
1269         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
1270         
1271 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1272
1273         * NEWS: Update to 0.34
1274
1275 2005-06-15  David Zeuthen  <davidz@redhat.com>
1276
1277         * configure.in (LT_CURRENT): Revert back to 1 as the library
1278         hasn't changed and we've certainly not committed to protocol
1279         stability yet.  All this does is to break ABI. See commit note
1280         from hp@redhat.com 2005-05-05 for details.
1281         
1282 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1283
1284         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
1285         (_dbus_connection_run_builtin_filters): New method
1286         (dbus_connection_dispatch): Run the builtin filters which in turn
1287         runs the peer filter which handles Ping messages.
1288
1289         * doc/TODO: 
1290          - Ping isn't handled: This patch fixes it
1291          
1292          - Add a test case for the Ping message: added TODO item
1293
1294 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1295
1296         * dbus/dbus-message.c:
1297         (dbus_message_has_path): New method
1298         (dbus_message_has_interface): New method
1299         (dbus_message_has_member): New method
1300
1301         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
1302         New method
1303
1304         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
1305         the keyring directory is private to the user
1306
1307         * doc/TODO:
1308          - The convenience functions in dbus-bus.h should perhaps have
1309          the signatures that they would have if they were autogenerated
1310          stubs. e.g. the acquire service function. We should also evaluate
1311          which of these functions to include, in light of the fact that
1312          GLib/Qt native stubs will probably also exist.: Punted
1313
1314          - add dbus_message_has_path(), maybe has_member/interface:
1315          fixed in this patch
1316
1317          - in dbus-keyring.c, enforce that the keyring dir is not
1318          world readable/writable: Fixed in this patch
1319
1320 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
1321
1322         * dbus/dbus-marshal-validate.h: Added a new validation
1323         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
1324         out of memory errors when validating signitures
1325
1326         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
1327         in places where we previously used DBUS_VALID and a FALSE return 
1328         value to indicate OOM
1329         
1330         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
1331         Use a stack to track the number of elements inside containers.  The 
1332         stack values are then used to validate that dict entries have only two
1333         elements within them.
1334         (validate_body_helper): check the reason for failure when validating
1335         varients
1336         
1337         * dbus/dbus-message.c (load_message): use 
1338         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
1339         DBUS_VALID and a FALSE return value to indicate OOM
1340
1341         * doc/TODO: remove "- validate dict entry number of fields" as this
1342         patch fixes it
1343
1344 2005-06-14  David Zeuthen  <davidz@redhat.com>
1345
1346         * bus/bus.c (process_config_every_time): Drop existing conf-dir
1347         watches (if applicable) and add new watches
1348
1349         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
1350         (main): Setup SIGIO signal handler if using D_NOTIFY
1351
1352         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
1353
1354         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
1355         (merge_included): Also merge conf_dirs list
1356         (bus_config_parser_unref): Clear conf_dirs list
1357         (include_dir): Add directory to conf_dirs list
1358         (bus_config_parser_get_conf_dirs): New function
1359
1360         * bus/dir-watch.[ch]: New files
1361
1362         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
1363
1364         * configure.in: Add checks for D_NOTIFY on Linux
1365
1366 2005-06-14  Colin Walters  <walters@verbum.org>
1367
1368         * glib/dbus-binding-tool-glib.c:
1369         * glib/dbus-gobject.c:
1370         * glib/dbus-gvalue.c: Fix indentation and brace style.
1371         
1372 2005-06-14  Ross Burton <ross@openedhand.com>.
1373
1374         * glib/dbus-glib.h: Make DBusGMethodInvocation
1375         a private structure.  Rearrange prototypes a bit.
1376         
1377         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
1378         documentation for first_arg_type.
1379         
1380         * glib/dbus-gobject.c: Move DBusGMethodInvocation
1381         here, add documentation.  Move dbus_g_method_return
1382         and dbus_g_method_return_error into public API
1383         section.
1384
1385 2005-06-14  Colin Walters  <walters@verbum.org>
1386
1387         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
1388         Add missing return statements, noticed by Ross Burton.
1389         
1390 2005-06-13  Ross Burton <ross@openedhand.com>.
1391
1392         * glib/dbus-gobject.c: Handle errors on message
1393         demarshalling by sending error message back.
1394         * glib/dbus-gvalue.c: Initialize return variables.
1395
1396 2005-06-13  Colin Walters  <walters@verbum.org>
1397
1398         * glib/Makefile.am: Fix thinko in last patch.
1399
1400 2005-06-13  Colin Walters  <walters@verbum.org>
1401
1402         * glib/Makefile.am: Move dbus-gtype-specialized.c
1403         and dbus-gtype-specialized.h into a _HEADERS variable,
1404         install them.
1405
1406 2005-06-12  Colin Walters  <walters@verbum.org>
1407
1408         Async signals and various bugfixes and testing by
1409         Ross Burton <ross@openedhand.com>.
1410
1411         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
1412         (dbus_gvalue_genmarshal_name_from_type)
1413         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
1414         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
1415         (dbus_g_value_types_init, dbus_gtype_from_signature)
1416         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
1417         (dbus_gtypes_from_arg_signature): New function prototypes.
1418         (dbus_gvalue_demarshal): Take context and error arguments.
1419         (dbus_gvalue_demarshal_variant): New function.
1420         (dbus_gvalue_demarshal_message): New function.
1421         (dbus_gvalue_store): Delete.
1422
1423         * glib/dbus-gvalue.c:
1424
1425         File has been almost entirely rewritten; now we special-case
1426         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
1427         hash tables correctly, etc.  Full support for recursive values
1428         is not yet complete.
1429
1430         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
1431         argument of signal to G_TYPE_POINTER since we now pass a
1432         structure.
1433         (lookup_g_marshaller): Delete in favor of
1434         _dbus_gobject_lookup_marshaller.
1435         (marshal_dbus_message_to_g_marshaller): Use
1436         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
1437         to handle remote signal callbacks.
1438         (dbus_g_proxy_new_from_proxy): New function; creates a new
1439         DBusGProxy by copying an existing one.
1440         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
1441         (dbus_g_proxy_get_path): New functions.
1442         (dbus_g_proxy_marshal_args_to_message): New function;
1443         factored out of existing code.
1444         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
1445         from a varargs array.
1446         (dbus_g_proxy_begin_call_internal): New function.
1447         (dbus_g_proxy_end_call_internal): New function.
1448         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
1449         as arguments; simply invoke dbus_g_proxy_begin_call_internal
1450         after collecting args into value array.
1451         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
1452         invoke dbus_g_proxy_end_call_internal.
1453         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
1454         end_call_internal.
1455         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
1456         types.
1457         (array_free_all): New function.
1458         (dbus_g_proxy_add_signal): Take GTypes.
1459
1460         * glib/dbus-gobject.h:
1461         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1462         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
1463         Prototype.
1464
1465         * glib/dbus-gobject.c: Add a global marshal_table hash which
1466         stores mappings from type signatures to marshallers.  Change lots
1467         of invocations of dbus_gtype_to_dbus_type to
1468         dbus_gtype_to_signature.
1469         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1470         (introspect_signals): Fix test for query.return_type.
1471         (set_object_property): Update invocation of dbus_gvalue_demarshal.
1472         (invoke_object_method): Many changes.  Handle asynchronous
1473         invocations.  Convert arguments with
1474         dbus_gvalue_demarshal_message.  Handle errors.  Use
1475         DBusSignatureIter instead of strlen on args. Handle all arguments
1476         generically.  Special-case variants.
1477         (dbus_g_method_return, dbus_g_method_return_error): New function.
1478         (DBusGSignalClosure): New structure, closes over signal
1479         information.
1480         (dbus_g_signal_closure_new): New function.
1481         (dbus_g_signal_closure_finalize): New function.
1482         (signal_emitter_marshaller): New function; is special marshaller
1483         which emits signals on bus.
1484         (export_signals): New function; introspects object signals and
1485         connects to them.
1486         (dbus_g_object_type_install_info): Take GType instead of
1487         GObjectClass.
1488         (dbus_g_connection_register_g_object): Invoke export_signals.
1489         (dbus_g_connection_lookup_g_object): New function.
1490         (DBusGFuncSignature) New structure; used for mapping type
1491         signatures to marshallers.
1492         (funcsig_hash): New function; hashes DBusGFuncSignature.
1493         (funcsig_equal): New function; compares DBusGFuncSignature.
1494         (_dbus_gobject_lookup_marshaller): New function.
1495         (dbus_g_object_register_marshaller): New function; used to
1496         register a marshaller at runtime for a particular signature.
1497
1498         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
1499
1500         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
1501         which notes a server method implementation should be
1502         asynchronous.
1503
1504         * glib/dbus-binding-tool-glib.c
1505         (dbus_binding_tool_output_glib_server): Call
1506         dbus_g_value_types_init.
1507         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
1508         variants specially.
1509         (dbus_g_type_get_lookup_function): Turn GType into an invocation
1510         of a lookup function.
1511         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
1512         (write_untyped_out_args): New method; write output arguments.
1513         (write_formal_declarations_for_direction): Function for
1514         writing prototypes.
1515         (write_formal_parameters_for_direction): Function for
1516         writing implementations.
1517         (write_typed_args_for_direction): Function for writing
1518         arguments prefixed with GTypes.
1519         (write_async_method_client): Write out async version
1520         of method.
1521
1522         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
1523         (dbus_g_type_get_marshal_name): Move mapping from GType
1524         to marshal name into here.
1525         (dbus_g_type_get_c_name): Move into here.
1526         (compute_marshaller): Convert signature to type with
1527         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
1528         (compute_marshaller_name): Ditto.
1529         (compute_marshaller): Handle async signal annotations.
1530         (gather_marshallers): Return if we don't have a known
1531         prefix.
1532         (generate_glue): Collect introspection blob here, and
1533         write all of the blob at the end.  This allows an object
1534         with multiple interfaces to work.
1535         Mark async methods in introspection blob.
1536
1537         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
1538         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
1539         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
1540
1541         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
1542         avoids people accidentally using DBUS_TYPE_* which should
1543         not be necessary anymore.
1544         Do include dbus-gtype-specialized.h, which are utilities
1545         for GLib container types.
1546         Add various #defines for types such as
1547         DBUS_TYPE_G_BOOLEAN_ARRAY.
1548         (DBusGValueIterator, DBusGValue): Define, not fully used
1549         yet.
1550         (dbus_g_value_get_g_type): Type for recursive value.
1551         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1552         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1553         (dbus_g_value_free): Prototypes.
1554         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
1555         (dbus_g_proxy_set_interface): Prototype.
1556         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
1557         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
1558         types.
1559         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
1560         Accessors.
1561         (DBusGAsyncData, DBusGMethodInvocation): Structures for
1562         doing async invocations.
1563         (dbus_g_method_return, dbus_g_method_return_error):
1564         Prototypes.
1565         * doc/dbus-tutorial.xml: Update GLib section.
1566         
1567         * tools/dbus-viewer.c (load_child_nodes): Update
1568         for new invocation type of dbus_g_proxy_end_call.
1569         (load_from_service_thread_func): Ditto.
1570
1571         * tools/print-introspect.c (main): Ditto.
1572
1573         * tools/dbus-names-model.c (have_names_notify)
1574         (names_model_reload, names_model_set_connection)
1575         Use GTypes.
1576
1577         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
1578         needed since Python bindings use GLib bindings.
1579
1580         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
1581         Add --prefix argument.
1582
1583         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
1584         unneeded --ignore-unsupported arg.
1585         
1586         * test/glib/test-service-glib.c: 
1587         * test/glib/test-service-glib.xml:
1588         * test/glib/test-dbus-glib.c: Add many more tests.
1589
1590 2005-06-06  David Zeuthen  <davidz@redhat.com>
1591
1592         * doc/TODO: Add item about need to remove deprecated functions.
1593
1594         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
1595
1596         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
1597         to repair the ABI which was broken with the last commit.
1598
1599 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
1600
1601         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
1602         (dbus_connection_disconnect): renamed to dbus_connection_close 
1603         for API symmetry with dbus_connection_open
1604         (_dbus_connection_open_internal): 
1605         s/dbus_connection_disconnect/dbus_connection_close
1606
1607         * dbus/dbus-bus.c (dbus_bus_get):
1608         s/dbus_connection_disconnect/dbus_connection_close
1609
1610         * bus/connection.c (bus_connections_unref, 
1611         bus_connections_setup_connection, bus_connections_expire_incomplete):
1612         s/dbus_connection_disconnect/dbus_connection_close
1613
1614         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
1615         kill_client_connection_unchecked, check_hello_connection):
1616         s/dbus_connection_disconnect/dbus_connection_close
1617
1618         * bus/bus.c (new_connection_callback):
1619         s/dbus_connection_disconnect/dbus_connection_close
1620
1621         * tools/dbus-send.c (main):
1622         s/dbus_connection_disconnect/dbus_connection_close
1623
1624         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
1625         s/dbus_connection_disconnect/dbus_connection_close
1626         
1627         * test/test-service.c (path_message_func, filter_func):
1628         s/dbus_connection_disconnect/dbus_connection_close
1629         
1630         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
1631         
1632 2005-05-25  Colin Walters  <walters@verbum.org>
1633
1634         * dbus/dbus-protocol.h: Move various bus service #defines such
1635           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
1636           dbus/dbus-shared.h.
1637         * dbus/dbus-shared.h: Various defines moved here.
1638         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
1639
1640 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
1641
1642         * python/__init__.py: Python bindings deserve a minor version
1643         update.  Upped to (0, 40, 2)
1644
1645 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
1646
1647         * python/decorators.py: add explicitly_pass_message decorator
1648         for passing in the dbus message as keyword for edge case signal
1649         handling
1650
1651         * python/matchrules.py (SignalMatchRule.__repr__): fix output
1652         to conform with what dbus expects for match rules
1653         (SignalMatchRule.execute): add the dbus message as a keyword
1654         if the signal handler has requested it
1655
1656         * python/examples/example/signal-recipient.py: added some more
1657         examples on how to hook up to signals
1658
1659 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
1660
1661         * python/decorators.py: import dbus_bindings
1662
1663         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
1664         SignalMatchNode): new classes that implement wildcard signal
1665         callback matching using a tree lookup. Heavily modified from a
1666         patch sent by Celso Pinto (fd.o bug #3241)
1667
1668         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
1669         use new match classes to handle signals.
1670
1671 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
1672         
1673         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
1674
1675 2005-05-18  Havoc Pennington  <hp@redhat.com>
1676
1677         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
1678         gettext. Not really worth requiring yet perhaps, but any
1679         production quality 1.0 would require it so we should go ahead and
1680         get things set up. We do have a couple token calls to
1681         bindtextdomain in the code already.
1682
1683 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
1684
1685         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
1686         when using recursive g_main_loops
1687
1688         * python/_dbus.py (class Bus): add the ProxyObjectClass
1689         alias for ProxyObject to make it easier for the Twisted 
1690         networking framework to integrate dbus.
1691
1692         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
1693         alias for ProxyMethod to make it easier for the Twisted 
1694         networking framework to integrate dbus. 
1695
1696 2005-05-11  Ross Burton  <ross@openedhand.com>
1697
1698         * glib/dbus-glib-tool.c: Add --prefix argument.
1699         * glib/dbus-binding-tool-glib.h: Add prefix argument.
1700         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
1701         Add prefix argument.
1702         (generate_glue): Pass prefix argument down.
1703         (dbus_binding_tool_output_glib_server): Pass prefix to
1704         glib-genmarshal.
1705         
1706 2005-05-11  Colin Walters  <walters@verbum.org>
1707
1708         * tools/dbus-send.c (append_array): New function.
1709         (append_arg): Broken out from main.
1710         (main): Add cheesy hack to send arrays and variants.
1711         (usage): Update.
1712         * tools/dbus-print-message.c (print_iter): Broken out
1713         from main.
1714
1715 2005-05-11  Colin Walters  <walters@verbum.org>
1716
1717         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
1718         New function, returns signature string for signature iter.
1719         * dbus/dbus-signature.h: Prototype it.
1720         * dbus/dbus-message.c (dbus_message_iter_get_signature):
1721         New function, returns signature string for message iter.
1722         (dbus_message_iter_get_array_len): New function, returns
1723         length of array.
1724         (dbus_message_iter_get_fixed_array): Fix assertion; this
1725         function should be used when the iter is pointing to the
1726         contents of an array
1727         * dbus/dbus-message.h: Prototypes.
1728         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
1729         New function; returns length of an array.
1730         * dbus/dbus-marshal-recursive.h: Prototype it.
1731         
1732 2005-05-11  Colin Walters  <walters@verbum.org>
1733
1734         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
1735         compilation error.
1736         
1737 2005-05-08  Havoc Pennington  <hp@redhat.com>
1738
1739         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
1740         daemon's pid, not the parent's pid, to the file descriptor.
1741         Reported by Taj Morton.
1742
1743 2005-05-05  Havoc Pennington  <hp@redhat.com>
1744
1745         * configure.in (LT_*): add notes on how the libtool versioning
1746         works to save thinking. Increment soname to indicate protocol
1747         breakage (though really the library interface hasn't changed I
1748         guess)
1749
1750         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1751         verify the GUID received from server matches what we were
1752         expecting, if we had an expectation
1753
1754         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
1755         (_dbus_auth_get_guid_from_server): new function
1756         (send_begin): parse the OK args
1757
1758         * doc/dbus-specification.xml: add GUID to the auth protocol
1759
1760 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
1761
1762         * Fix my name in previous changelog ;)
1763
1764         * python/proxies.py (ProxyObject.__getattr__): add further patch
1765         from Anthony Baxter to throw an AttributeError when python 
1766         __special__ functions are called instead of marshling them over 
1767         the bus (Bug#1685 comment 3).
1768
1769 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
1770
1771         * python/Makefile.am: changed to use pyexecdir for the binding
1772         shared libraries (Bug#2494)
1773
1774         * python/exceptions.py: bring exceptions over from the bindings
1775         so they can be used in applications (Bug#2036)
1776         Make all exceptions derive from DBusException
1777
1778         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
1779         of classes so that print obj doesn't throw an exception (Bug #1685)
1780
1781 2005-05-03  Ross Burton  <ross@openedhand.com>
1782
1783         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
1784         Return if we get an error during registration.  Set up a
1785         weak reference on object to unregister if object is destroyed.
1786         (unregister_gobject): New function.
1787         
1788 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
1789
1790         * python/dbus_bindings.pyx.in: 
1791         - added new type classes for hinting to the marashaler what type 
1792         to send over the wire
1793         - added int16 and uint16 marshalers
1794         - Fixed a bug in the type constants that caused int32 to go out
1795         as uint16 over the wire
1796         * python/dbus.py: split up into different files and renamed _dbus.py
1797         * python/__init__.py, python/_util.py, python/decorators.py, 
1798         python/exceptions.py, python/proxies.py, python/services.py,
1799         python/types.py: new files split off from dbus.py
1800         * python/Makefile.am: Add new files, remove dbus.py and 
1801         install all python files to <python module dir>/dbus
1802         * python/examples/*: Added #!/usr/bin/env python to the top of
1803         every example.  Patch provided by Tatavarty Kalyan
1804
1805 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
1806
1807         * NEWS: Update to 0.33
1808
1809 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
1810
1811         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
1812         method for doing async calls
1813         (_pending_call_notification): New C function for handling pendning call
1814         callbacks
1815         (set_notify): New method for setting pending call notification
1816         
1817         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
1818         Async capabilities added to remote method calls
1819         (Sender): class removed
1820         (RemoteService): class removed
1821         (ObjectTree): class removed for now
1822         (RemoteObject): Renamed to ProxyObject
1823         (RemoteMethod): Renamed to ProxyMethod
1824         (method): Decorator added for decorating python methods as dbus methods
1825         (signal): Decorator added for decorating python methods as signal emitters
1826         (ObjectType): Metaclass added for generating introspection data and the
1827         method callback vtable
1828         (Interface): Wrapper class added to wrap objects in a dbus interface
1829         (Object): Uses ObjectType as its metaclass and exports Introspect
1830         of the org.freedesktop.DBus.Introspectable interface
1831         (ValidationException, UnknownMethodException): new exceptions
1832
1833         * python/examples/*: Modified to fit with the new bindings
1834
1835 2005-04-23  Havoc Pennington  <hp@redhat.com>
1836
1837         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
1838         reported by Tony Houghton
1839
1840         * test/test-service.c (main): test
1841         dbus_connection_get_object_path_data()
1842
1843         * dbus/dbus-object-tree.c (find_handler): be sure we always init
1844         the exact_match
1845         (_dbus_object_tree_get_user_data_unlocked): new function used by
1846         dbus_connection_get_object_path_data()
1847         (do_register): add assertion test for get_user_data_unlocked
1848         (object_tree_test_iteration): more tests
1849
1850         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
1851         new function from Dan Reed to let you get the user data from 
1852         dbus_connection_register_object_path()
1853
1854 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
1855
1856         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
1857         in numerous places that did not account for the NULL terminator
1858         (signature_from_seed): changed the manual string copy loop to 
1859         just use strcpy instead
1860         make check should now pass
1861
1862 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
1863
1864         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
1865         so that it allows messages that are not signals to pass in 
1866         NULL as the interface.
1867
1868 2005-04-18  David Zeuthen  <davidz@redhat.com>
1869
1870         * glib/dbus-gmain.c (io_handler_destroy_source): 
1871         (timeout_handler_destroy_source, connection_setup_free): 
1872         Also unref the source to avoid memory leaks.
1873
1874 2005-04-13  David Zeuthen  <davidz@redhat.com>
1875
1876         * bus/config-parser.c (bus_config_parser_new): Bump this to a
1877         more reasonable, yet still totally arbitrary, value :-). 
1878
1879 2005-04-13  David Zeuthen  <davidz@redhat.com>
1880
1881         * doc/TODO: Added an "important for 1.0" item about selinux
1882         allow/deny messages
1883
1884 2005-04-13  David Zeuthen  <davidz@redhat.com>
1885
1886         * bus/selinux.c: Add c-file-style to top of file
1887         (log_audit_callback): Don't free the data here anymore
1888         (bus_selinux_check): Don't take spid and tpid since appending
1889         that to auxdata may OOM.
1890         (bus_selinux_allows_acquire_service): Handle OOM and signal back
1891         to the caller if we are OOM by taking an error object.
1892         (bus_selinux_allows_send): -do-
1893
1894         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
1895         and bus_selinux_allows_send
1896
1897         * bus/bus.c (bus_context_check_security_policy): Pass error and
1898         pass on OOM thrown by bus_selinux_allows_send()
1899
1900         * bus/services.c (bus_registry_acquire_service): Pass error and
1901         pass on OOM thrown by bus_selinux_allows_acquire_service()
1902
1903 2005-04-13  Havoc Pennington  <hp@redhat.com>
1904
1905         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
1906         message at a time to avoid monopolizing the main loop, bug 
1907         #2953 from Benjamin Otte
1908
1909 2005-04-09  Havoc Pennington  <hp@redhat.com>
1910
1911         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
1912         possible overlap, fix from Daniel Reed
1913         (fixup_alignment): fix signedness warnings
1914         (_dbus_string_append_unichar): ditto
1915
1916 2005-04-09  Havoc Pennington  <hp@redhat.com>
1917
1918         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
1919
1920         * glib/dbus-glib-tool.c (main): fix warning
1921
1922         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
1923
1924         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
1925         add a new function that can be used in simple applications that
1926         don't have a main loop and are willing to block
1927
1928 2005-04-05  David Zeuthen  <davidz@redhat.com>
1929
1930         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
1931
1932         * glib/dbus-gmain.c:
1933         (io_handler_destroy_source): Remove from list of IO handlers
1934         of the ConnectionSetup object
1935         (timeout_handler_destroy_source): -do- for timeout handlers
1936         (io_handler_source_finalized): Don't remove from list since
1937         we now do that in io_handler_destroy_source(). Renamed from
1938         io_handler_source_destroyed
1939         (timeout_handler_source_destroyed): -do- for timeout handlers
1940         (connection_setup_free): It is now safe to iterate over all
1941         IO and timeout handlers as the _destroy_source removes them
1942         from the list synchronously
1943
1944 2005-03-30  Havoc Pennington  <hp@redhat.com>
1945
1946         * configure.in: change check to gtk 2.4
1947
1948         * tools/dbus-viewer.c (name_combo_changed_callback): remove
1949         gtk_combo_box_get_active_text() usage to decrement GTK requirement
1950         to 2.4
1951
1952 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
1953
1954         * News: Update 0.32
1955
1956         * HACKING: Fixed realease instructions.  configure.in should be updated to
1957           the next release by the person who made the last release.
1958
1959 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
1960
1961         * python/lvalue_cast_post_process.py - removed.  Patch has been
1962           submitted to Pyrex maintainers that fixes gcc4.0 errors
1963
1964         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
1965
1966 2005-03-24  Daniel Reed  <n@ml.org>
1967
1968         * tools/Makefile.am: Make print-introspect and
1969         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
1970
1971 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
1972
1973         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
1974
1975         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
1976           had in Red Hat packages for a while but for some reason never 
1977           got merged upstream
1978           (_dbus_is_a_number): New checks if a string
1979           can be converted to a number and does the conversion if it can
1980           (_dbus_user_database_lookup): Add check to see if the given username
1981           is a udi.  This allows udi's to be used instead of usernames in the
1982           config file.
1983           (_dbus_user_database_lookup_group): Add check to see if the given groupname
1984           is a gdi.  This allows gdi's to be used instead of groupnames in the
1985           config file.
1986
1987 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
1988
1989         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
1990           code so that it compiles with gcc4.0
1991
1992         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
1993           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
1994           results back to dbus_binding.c
1995
1996 2005-03-20  Colin Walters  <walters@verbum.org>
1997
1998         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
1999
2000         * configure.in: Require GTK+ 2.6.
2001         
2002 2005-03-20  Colin Walters  <walters@verbum.org>
2003
2004         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
2005
2006 2005-03-17  Tom Parker  <palfrey@tevp.net>
2007
2008         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
2009         print DBUS_UID_UNSET; instead print passed username.  Also
2010         be sure to actually use gid looked up in cache.
2011         
2012         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
2013         for DBUS_GID_UNSET and groupname.
2014
2015 2005-03-17  Colin Walters  <walters@verbum.org>
2016
2017         * bus/print-introspect.c: Move to tools/.
2018         * bus/run-with-tmp-session-bus.sh: Ditto.
2019         
2020         * glib/Makefile.am (dbus-glib-bindings.h): Move
2021         generation to tools/Makefile.am.
2022
2023         * test/glib/run-test.sh: Update to handle move
2024         of run-with-tmp-session-bus.sh.
2025
2026         * test/glib/test-service-glib.c: Update to handle
2027         move of dbus-glib-bindings.h.
2028
2029         * tools/print-introspect.c: Moved here
2030         from bus/, and ported to GLib bindings.
2031
2032         * tools/run-with-tmp-session-bus.sh: Moved here
2033         from bus/.
2034
2035         * tools/Makefile.am: Generate dbus-glib-bindings.h
2036         and dbus-bus-introspect.xml here.
2037
2038         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
2039         Update.
2040
2041 2005-03-17  Colin Walters  <walters@verbum.org>
2042
2043         * bus/driver.c (write_args_for_direction): Use
2044         _dbus_string_get_const_data to retrieve string;
2045         _dbus_string_get_const_data_len doesn't actually return
2046         a NULL-terminated substring.
2047
2048         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
2049         (main): Change to use org_freedesktop_DBus_request_name
2050         instead of using g_proxy_begin_call/end_call.
2051
2052 2005-03-15  Joe Shaw  <joeshaw@novell.com>
2053
2054         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
2055         generating the finalizer.  Fixes from Ben Maurer.
2056
2057 2005-03-12  Joe Shaw  <joeshaw@novell.com>
2058
2059         * mono/BusDriver.cs: Update method names: ListServices
2060         becomes ListNames; GetOwner becomes GetNameOwner.
2061
2062         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
2063         onto the eval stack when removing the delegate.
2064
2065 2005-03-12  Joe Shaw  <joeshaw@novell.com>
2066
2067         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
2068         LT_CURRENT.  Set it to the autoconf variable.
2069                                                                                 
2070         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
2071         classes that disconnects the signal handler delegate from the
2072         service object.  Fixes a big leak of proxy objects on the
2073         client side of things.  Patch from Ben Maurer
2074         <bmaurer@ximian.com>
2075
2076 2005-03-12  Colin Walters  <walters@verbum.org>
2077
2078         * bus/driver.c (write_args_for_direction): New function,
2079         parses a type signature into arguments and outputs to
2080         XML.
2081         (bus_driver_handle_introspect): Use it instead of
2082         hardcoding XML for certain signatures.
2083         
2084         * bus/Makefile.am (dbus-bus-introspect.xml): Add
2085         dependency on dbus-daemon.
2086
2087         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
2088         argument, pass it to dbus_binding_tool_output_glib_client.
2089
2090         * glib/dbus-binding-tool-glib.c
2091         (generate_client_glue): Protect against multiple inclusion.
2092         (dbus_binding_tool_output_glib_client): Add
2093         G_BEGIN_DECLS/G_END_DECLS.
2094
2095         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
2096         Change to just take iface prefix directly.
2097         (write_formal_parameters): Clarify error message.
2098         (check_supported_parameters): New function; checks to see type
2099         signatures of method parameters are supported.
2100         (generate_client_glue): Handle ignore_unsupported flag.
2101         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
2102         parameter.
2103
2104         * glib/Makefile.am (dbus-glib-bindings.h): Pass
2105         --ignore-unsupported by default until glib bindings
2106         support arrays.
2107
2108 2005-03-11  Colin Walters  <walters@verbum.org>
2109
2110         * glib/Makefile.am: Generate dbus-glib-bindings.h and
2111         install it.
2112
2113         * bus/print-introspect.c: New file; prints introspection
2114         data for a given name and object path.
2115
2116         * bus/run-with-tmp-session-bus.sh: New file, refactored
2117         from test/glib/run-test.sh.  Creates a temporary session
2118         bus and runs another program.
2119
2120         * test/glib/run-test.sh: Refactor to invoke
2121         run-with-tmp-session-bus.sh.
2122
2123         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
2124         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
2125         macros instead of hardcoding.
2126
2127         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
2128
2129 2005-03-11  Joe Shaw  <joeshaw@novell.com>
2130
2131         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
2132         this unref; it doesn't match up evenly in some codepaths.
2133         (_dbus_connection_block_pending_call): Unref at every exitpoint;
2134         this evenly matches with the ref near the top of this function.
2135
2136 2005-03-09  Joe Shaw  <joeshaw@novell.com>
2137
2138         * dbus/dbus-object-tree.c
2139         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
2140         and we try to unregister a path that's not registered, still go
2141         through the process of unlocking and don't just return.
2142
2143 2005-03-09  Colin Walters  <walters@verbum.org>
2144
2145         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
2146         to this are generated for client-side wrappers.  Invokes a
2147         D-BUS method and returns reply values.  
2148
2149         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
2150         function; writes signature string for argument direction.
2151         (write_args_for_direction): Change to pass input values directly
2152         instead of via address, and fix indentation.
2153         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
2154         make generated wrappers inlineable.
2155
2156         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
2157         note about using dbus_type_is_fixed.
2158
2159         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
2160         dbus/dbus-signature.c as dbus_type_is_fixed.
2161
2162         All callers updated.
2163
2164         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
2165         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
2166
2167         * dbus/dbus-signature.h: Prototype.
2168
2169         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
2170         error printf code.
2171
2172         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
2173         appropriate instead of just freeing it.
2174         (main): Free returned strings using g_free.
2175
2176         * test/glib/Makefile.am (test-service-glib-glue.h)
2177         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
2178
2179         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
2180         simply maps a simple D-BUS type to GType.
2181         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
2182         GType.
2183         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
2184         initialize the value with it.
2185         (dbus_gvalue_binding_type_from_type): Unused, delete.
2186         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
2187         various types instead of unmarshalling to value data directly.
2188         Remove can_convert boolean.
2189         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
2190         returning directly instead of using can_convert boolean.
2191         (dbus_gvalue_store): New function; not related to D-BUS per-se.
2192         Stores a GValue in a pointer to a value of its corresponding C
2193         type.
2194
2195         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
2196         add dbus_gvalue_store.
2197
2198 2005-03-08  Joe Shaw  <joeshaw@novell.com>
2199
2200         Fix a bunch of lifecycle and memory management problems
2201         in the mono bindings.
2202
2203         * mono/Arguments.cs (Arguments): Implement IDisposable
2204
2205         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
2206         strictly a static class.
2207
2208         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
2209         delegates into this file.
2210         (Connection): Implement IDisposable.
2211         (Dispose): Disconnect the connection and set the raw connection
2212         pointer to IntPtr.Zero.
2213         (~Connection): Call Dispose().
2214         (RegisterObjectPath): Added.  Manages the registration of object
2215         paths so we can cleanly disconnect them at dispose/finalize time.
2216         (UnregisterObjectPath): Ditto.
2217         (set_RawConnection): Unregister all of the object paths when
2218         changing the underlying DBusConnection.  Add them back onto the
2219         new connection, if any.
2220
2221         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
2222         more unmanaged resources anymore, so it's not necessary.  Move all
2223         the DBusObjectPathVTable stuff out of here.
2224         (Handler): Save references to our delegates so that they don't get
2225         finalized.  Call Connection.RegisterObjectPath() instead of
2226         dbus_connection_register_object_path() directly.
2227         (Message_Called): Dispose the message after we're finished with
2228         it.
2229
2230         * mono/Message.cs (Message): Implement IDisposable.
2231         (Dispose): Dispose the Arguments, and set the RawMessage to
2232         IntPtr.Zero.
2233         (SendWithReplyAndBlock): We own the ref to the reply that comes
2234         back from dbus_connection_send_with_reply_and_block() so add a
2235         comment about that and unref it after we've constructed a managed
2236         MethodReturn class around it.  Fixes a big, big leak.
2237
2238         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
2239         method.
2240         (BuildSignalHandler): After we've sent the Signal message, dispose
2241         of it.
2242         (BuildMethod): Dispose of the method call and reply messages after
2243         we've sent the message and extracted the data we want from the
2244         reply.
2245
2246         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
2247         anymore.
2248         (Service_FilterCalled): Dispose of the message after we're
2249         finished with it.
2250
2251 2005-03-08  Joe Shaw  <joeshaw@novell.com>
2252
2253         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
2254         After we attach our pending call to the connection, unref
2255         it.  Fixes a leak.
2256  
2257         * mono/Connection.cs (set_RawConnection): Disconnect our
2258         filter and match callbacks from the old connection and
2259         reconnect them to the new connection, if any.
2260
2261         * mono/DBusType/Array.cs: "Code" is a static member, so
2262         don't use "this" to refer to it.  Fix for stricter checking
2263         in Mono 1.1.4.
2264  
2265         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
2266         object path that we pass into unmanaged code.
2267  
2268         * mono/DBusType/String.cs (Append): Don't leak the string
2269         that we pass into unmanged code.
2270
2271 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
2272         * NEWS: Update for 0.31
2273
2274         * configure.in: Release 0.31
2275         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
2276
2277         * qt/Makefile.am: fixed build
2278
2279         * dbus/Makefile.am: soname bump for libdbus
2280
2281         * glib/Makefile.am: soname bump for libdbus-glib
2282
2283 2005-03-05  Havoc Pennington  <hp@redhat.com>
2284
2285         * dbus/dbus-sysdeps.c:
2286         (pseudorandom_generate_random_bytes_buffer): fix to have no return
2287         value
2288         (_dbus_generate_random_bytes_buffer): fix return value
2289
2290         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
2291         checks actually work, from Tom Parker <fdo@tevp.net>
2292
2293 2005-03-01  Colin Walters  <walters@verbum.org>
2294
2295         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
2296         functions copied from dbus-glib-tool.c.
2297         (main): Convert lots of error code to use them.
2298         Also add some testing for introspection bits.
2299
2300 2005-03-01  Colin Walters  <walters@verbum.org>
2301         
2302         * doc/TODO: Remove introspection signature TODO.
2303
2304 2005-02-27  Colin Walters  <walters@verbum.org>
2305
2306         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
2307         Change return value to const char * instead of int so we can do
2308         full signatures.
2309         (struct PropertyInfo, struct ArgInfo): Store char *.
2310         (property_info_new, arg_info_new): Update parameters, strdup.
2311         (property_info_unref, arg_info_unref): Free.
2312
2313         * glib/dbus-gidl.h: Update prototypes.
2314
2315         * glib/dbus-gparser.c (basic_type_from_string): Delete.
2316         (validate_signature): New function, just validates signature and
2317         sets GError.
2318         (parse_property, parse_arg): Invoke validate_signature.  Store
2319         signature instead of just type code.
2320
2321         * glib/dbus-gvalue.c (base_type_from_signature): New utility
2322         function to return a primary type for a signature, dropping
2323         information about types in container types.
2324         (dbus_gvalue_genmarshal_name_from_type)
2325         (dbus_gvalue_binding_type_from_type)
2326         (dbus_gvalue_ctype_from_type): Update to take full signature
2327          instead of type code.
2328         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
2329
2330         * glib/dbus-gvalue.h: Update prototypes for above.
2331
2332         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
2333         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
2334         (introspect_properties, introspect_signals, write_interface):
2335         Update to handle signatures, and remove usage of
2336         _dbus_gutils_type_to_string.
2337         (handle_introspect): Print out type codes instead of e.g. "string"
2338         in hardcoded introspection XML; also use x_AS_STRING constants
2339         instead of hardcoding in string.
2340
2341         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
2342         to string.  Remove usage of _dbus_gutils_type_to_string.
2343
2344         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
2345
2346         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
2347         deletion.
2348         
2349         * glib/dbus-binding-tool-glib.c (compute_marshaller)
2350         (compute_marshaller_name, generate_glue): Handle signature change
2351         to string.
2352         (write_formal_parameters, write_args_for_direction): Ditto, and
2353         remove FIXME.
2354
2355         * tools/dbus-tree-view.c (type_to_string): Delete.
2356         (info_set_func_text): Update to print full signatures.
2357
2358         * test/glib/test-service-glib.xml: Change types to new
2359         introspection format.
2360
2361 2005-02-26  Havoc Pennington  <hp@redhat.com>
2362
2363         * doc/TODO: remove the "guid" item
2364
2365         * test/glib/test-profile.c (no_bus_thread_func): use open_private
2366         (with_bus_thread_func): use open_private
2367
2368         * dbus/dbus-connection.c (dbus_connection_open_private): new
2369         function that works like the old dbus_connection_open()
2370         (dbus_connection_open): now returns an existing connection if
2371         possible
2372
2373         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
2374         through the GUID to the transport
2375
2376         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
2377         GUID in hex-encoded form.
2378
2379         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2380         pass GUID argument in to the transport
2381
2382         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
2383         guid argument
2384
2385         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
2386
2387         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
2388
2389 2005-02-25  Havoc Pennington  <hp@redhat.com>
2390
2391         * doc/dbus-specification.xml: document the GUID thing
2392
2393         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
2394         globally unique ID for the server, and put a "guid=hexencoded"
2395         field in the address
2396
2397         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
2398
2399         * dbus/dbus-message.c: ditto
2400
2401         * dbus/dbus-dataslot.c: ditto
2402
2403         * dbus/dbus-list.c: ditto
2404
2405         * dbus/dbus-internals.h: wait, just include
2406         dbus-threads-internal.h here
2407         
2408         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
2409         use in main library
2410
2411         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
2412
2413 2005-02-24  Colin Walters  <walters@verbum.org>
2414
2415         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
2416
2417 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
2418
2419         * glib/Makefile.am: added dbus-gobject.h to sources list
2420         so distcheck doesn't fail
2421         
2422 2005-02-24  Havoc Pennington  <hp@redhat.com>
2423
2424         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
2425         you must disconnect before unref, since locking and other things
2426         are screwed up otherwise. Fix assorted other locking stuff.
2427
2428         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
2429         fix compilation
2430
2431         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
2432         into a private header and don't export from the library
2433
2434         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
2435
2436 2005-02-24  Colin Walters  <walters@verbum.org>
2437         
2438         * dbus/dbus-signature.c: New file; implements various functions
2439         related to type signatures.  Includes an interator for parsing,
2440         validation functions.
2441         (dbus_type_is_basic): Moved here from
2442         dbus-marshal-basic.c:_dbus_type_is_basic.
2443         (dbus_type_is_container): Moved here from
2444         dbus-marshal-basic.c:_dbus_type_is_container.
2445
2446         All callers of _dbus_type_is_container and _dbus_type_is_basic
2447         updated, and include dbus-signature.h.
2448
2449         * dbus/dbus-signature.h: New file; prototypes for the above.
2450
2451         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
2452         dbus-signature.h.
2453
2454         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
2455         function factored out of _dbus_first_type_in_signature.
2456         (_dbus_first_type_in_signature_c_str): New function; returns first
2457         type code for a type signature character.
2458
2459         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
2460         handle function moves.
2461
2462         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
2463
2464         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
2465         function; skips to next complete type in type signature.
2466         Implemented using previous skip_one_complete_type.  Now
2467         skip_one_complete_type just delegates to
2468         _dbus_type_signature_next.
2469
2470         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
2471         to dbus-signature.c
2472         (_dbus_type_is_container): Ditto.
2473
2474         * doc/dbus-specification.xml: Update introspection sample to
2475         use real type signatures.
2476
2477         * dbus/dbus-test.h: Prototype signature test.
2478
2479         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
2480         signature tests.
2481
2482         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
2483
2484 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
2485
2486         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
2487         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
2488
2489 2005-02-21  Colin Walters  <walters@verbum.org>
2490
2491         * dbus/dbus-test-main.c (main): Take optional specific test
2492         argument.
2493
2494         * dbus/dbus-test.c (run_test): New function, runs a test function
2495         with no data directory.
2496         (run_data_test): Like above, but takes data directory.
2497         (dbus_internal_do_not_use_run_tests): Take
2498         specific test argument.  Replace lots of cut n' paste code
2499         with run_test and run_data_test.
2500
2501         * dbus/dbus-test.h: Update prototype for
2502         dbus_internal_do_not_use_run_tests.
2503
2504 2005-02-20  Havoc Pennington  <hp@redhat.com>
2505
2506         Fix bugs reported by Daniel P. Berrange
2507         
2508         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
2509         (protected_change_watch): new function
2510         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
2511         (_dbus_server_add_watch): change to work like the
2512         dbus-connection.c equivalents; like those, probably kind of
2513         busted, but should at least mostly work for now
2514         (dbus_server_disconnect): drop the lock if we were already
2515         disconnected, patch from Daniel P. Berrange
2516
2517         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
2518         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
2519         same stuff
2520
2521         * doc/TODO: todo about unscrewing this mess
2522
2523 2005-02-19  Colin Walters  <walters@verbum.org>
2524
2525         * glib/dbus-binding-tool-glib.c
2526         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
2527
2528         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
2529         as errno.h and sys/stat.h.
2530         (lose): New function, prints error with
2531         newline and exits.
2532         (lose_gerror): Similar, but takes GError for message.
2533         (main): Add --output argument to specify output file to write to,
2534         instead of always printing to stdout.  In this mode, determine
2535         timestamps on source files to see whether any are newer than the
2536         target file.  If not, exit.  Also convert a number of error
2537         messages to use lose (since it's shorter), and switch to using
2538         g_io_channel_shutdown.
2539
2540 2005-02-19  Havoc Pennington  <hp@redhat.com>
2541
2542         * glib/dbus-gobject.c
2543         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
2544
2545         * glib/dbus-glib.c: fix doxygen warnings
2546
2547         * glib/dbus-gparser.c (parse_annotation): error if an annotation
2548         is found on an <arg>
2549
2550 2005-02-17  Colin Walters  <walters@verbum.org>
2551
2552         * glib/dbus-gobject.h: Don't export
2553         _dbus_glib_marshal_dbus_message_to_gvalue_array.
2554         
2555         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
2556         (invoke_object_method): Handle it.
2557
2558         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2559         Handle rename.
2560         
2561 2005-02-17  Colin Walters  <walters@verbum.org>
2562
2563         * bus/.cvsignore, doc/.cvsignore
2564         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
2565         Update.
2566
2567 2005-02-17  Colin Walters  <walters@verbum.org>
2568         
2569         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
2570         Rename to DBUS_SERVICE_DBUS.
2571         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
2572         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
2573         Change the value from "org.freedesktop.Local"
2574         to "org.freedesktop.DBus.Local".
2575         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
2576         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
2577         DBUS_INTERFACE_INTROSPECTABLE.
2578         Change the value from "org.freedesktop.Introspectable"
2579         to "org.freedesktop.DBus.Introspectable".
2580         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
2581         DBUS_INTERFACE_PROPERTIES.
2582         Change the value from "org.freedesktop.Properties"
2583         to "org.freedesktop.DBus.Properties".
2584         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
2585         DBUS_INTERFACE_PEER.
2586         Change the value from "org.freedesktop.Peer"
2587         to "org.freedesktop.DBus.Peer".
2588         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
2589         DBUS_INTERFACE_LOCAL.
2590         Change the value from "org.freedesktop.Local"
2591         to "org.freedesktop.DBus.Local".
2592
2593         All other users of those constants have been changed.
2594
2595         * bus/driver.c (bus_driver_handle_introspect): Use constants.
2596
2597         * glib/dbus-gobject.c (handle_introspect): Use constants.
2598
2599         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
2600
2601 2005-02-17  Colin Walters  <walters@verbum.org>
2602
2603         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
2604         (parse_node, parse_interface, parse_method, parse_signal)
2605         (parse_property, parse_annotation): Lose if we're currently in an
2606         annotation.
2607         (parse_annotation): New function.
2608         (parser_start_element, parser_end_element): Handle annotation.
2609         (parse_method, parse_interface): Remove support for c_name attribute,
2610         switch to annotations.
2611
2612         * glib/dbus-gidl.h (interface_info_get_binding_names)
2613         (method_info_get_binding_names)
2614         (interface_info_get_binding_name, method_info_get_binding_name)
2615         (interface_info_set_binding_name, method_info_set_binding_name):
2616         Remove.
2617         (interface_info_get_annotations, method_info_get_annotations)
2618         (interface_info_get_annotation, method_info_get_annotation)
2619         (interface_info_add_annotation, method_info_add_annotation):
2620         Prototype.
2621
2622         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
2623         for "bindings".
2624         (struct MethodInfo): Ditto.
2625         Straightfoward conversion of binding methods into annotation methods
2626         as prototyped.
2627
2628         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
2629
2630         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
2631
2632         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
2633         Use new annotation API.
2634
2635         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
2636         annotation element.
2637         
2638         * doc/dbus-specification.xml: Discuss introspection annotations,
2639         include list of well-known annotations.
2640
2641         * test/glib/test-service-glib.xml: Make validate against new DTD.
2642
2643 2005-02-17  Colin Walters  <walters@verbum.org>
2644
2645         This patch is based on initial work from
2646         Paul Kuliniewicz <kuliniew@purdue.edu>.
2647
2648         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
2649         initialization of GValue from dbus type to here.
2650         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
2651         for the "glib-genmarshal" program from a DBus type.
2652         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
2653         into the C name for it we use in the glib bindings.
2654         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
2655         glib C type (not GValue).
2656         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
2657
2658         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
2659         from dbus-gobject.c.
2660
2661         * glib/dbus-gutils.h: Prototype it.
2662
2663         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
2664         (marshal_dbus_message_to_g_marshaller): Use new shared function
2665         dbus_glib_marshal_dbus_message_to_gvalue_array.
2666
2667         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
2668         Will be changed once we have annotations.
2669
2670         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
2671         GStaticRWLock.  Callers updated.
2672         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
2673         (string_table_next): New function for iterating over zero-terminated
2674         string value array.
2675         (string_table_lookup): New function; retrieves specific entry in
2676         array.
2677         (get_method_data): New function; look up method data in object data chunk.
2678         (object_error_domain_prefix_from_object_info)
2679         (object_error_code_from_object_info): New functions, but not implemented yet.
2680         (method_interface_from_object_info): New function; retrieve interface name.
2681         (method_name_from_object_info): New function; retrieve method name.
2682         (method_arg_info_from_object_info): New function; retrieve argument data.
2683         (arg_iterate): New function; iterates over serialized argument data.
2684         (method_dir_signature_from_object_info): New function; returns a
2685         GString holding type signature for arguments for just one
2686         direction (input or output).
2687         (method_input_signature_from_object_info)
2688         (method_output_signature_from_object_info): New functions.
2689         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
2690         converts dbus message arguments into a GValue array.  Used for both
2691         signal handling and method invocation.
2692         (struct DBusGlibWriteIterfaceData): New utility structure.
2693         (write_interface): New function; generate introspection XML for
2694         an interface.
2695         (introspect_interfaces): New function; gathers all interface->methods,
2696         generates introspection XML for them.
2697         (handle_introspect): Invoke introspect_interfaces.
2698         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
2699         (lookup_object_and_method): New function; examines an incoming message
2700         and attempts to match it up (via interface, method name, and argument
2701         signature) with a known object and method.
2702         (gerror_domaincode_to_dbus_error_name): New function; converts a
2703         GError domain and code into a DBus error name.  Needs GError data
2704         added to object introspection to work well.
2705         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
2706         GError.
2707         (invoke_object_method): New function to invoke an object method
2708         looked up via lookup_object_and_method.  Parses the incoming
2709         message, turns it into a GValue array, then invokes the marshaller
2710         specified in the DBusGMethodInfo.  Creates a new message with
2711         either return values or error message as appropriate.
2712         (gobject_message_function): Invoke lookup_object_and_method and
2713         invoke_object_method.
2714
2715         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
2716         (enum DBusBindingOutputMode): New enum for binding output modes.
2717         (pretty_print): Print binding names.
2718         (dbus_binding_tool_error_quark): GError bits.
2719         (version): Fix typo.
2720         (main): Create GIOChannel for output.  Parse new --mode argument,
2721         possible values are "pretty-print", "glib-server", "glib-client".
2722         Use mode to invoke appropriate function.
2723         
2724         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
2725
2726         * glib/dbus-glib-tool.h: New header, just includes GError bits
2727         for now.
2728
2729         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
2730         maps binding style to name.
2731         (struct MethodInfo): Ditto.
2732         (get_hash_keys, get_hash_key): Utility function, returns keys for
2733         a GHashTable.
2734         (interface_info_new, method_info_new): Initialize bindings.
2735         (interface_info_unref, method_info_unref): Destroy bindings.
2736         (method_info_get_binding_names, method_info_get_binding_name)
2737         (interface_info_get_binding_names, interface_info_get_binding_name):
2738         Functions for retrieving binding names.
2739         (method_info_set_binding_name, interface_info_set_binding_name):
2740         Functions for setting binding names.
2741
2742         * glib/dbus-binding-tool-glib.h: New file, has prototypes
2743         for glib binding generation.
2744
2745         * glib/dbus-binding-tool-glib.c: New file, implements server-side
2746         and client-side glib glue generation.
2747
2748         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
2749         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
2750         dbus-glib-tool.h.
2751
2752         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
2753         of using GClosureMarshal directly.
2754         (struct DBusGObjectInfo): Add n_infos member.
2755
2756         * test/glib/test-service-glib.xml: New file; contains introspection data
2757         for MyTestObject used in test-service-glib.c.
2758
2759         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
2760         (my_object_do_nothing, my_object_increment, my_object_throw_error)
2761         (my_object_uppercase, my_object_many_args): New test methods.
2762         (main): Use dbus_g_object_class_install_info to include generated object
2763         info.
2764
2765         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
2766         as well as client-side bindings.
2767
2768         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
2769         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
2770         using both the dbus_gproxy stuff directly as well as the generated bindings.
2771
2772 2005-02-15  Havoc Pennington  <hp@redhat.com>
2773
2774         * dbus/dbus-connection.c (dbus_connection_dispatch): always
2775         complete a pending call, don't run filters first.
2776
2777         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
2778         dbus_pending_call_steal_reply
2779
2780         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
2781         _dbus_connection_block_pending_call
2782         (dbus_pending_call_get_reply): change to steal_reply and return a
2783         ref
2784
2785         * dbus/dbus-connection.c
2786         (dbus_connection_send_with_reply_and_block): port to work in terms
2787         of DBusPendingCall
2788         (_dbus_connection_block_pending_call): replace block_for_reply
2789         with this
2790
2791 2005-02-14  Havoc Pennington  <hp@redhat.com>
2792
2793         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
2794         properly handle looking up group information by name; fix 
2795         from j@bootlab.org
2796
2797 2005-02-13  Havoc Pennington  <hp@redhat.com>
2798
2799         * dbus/dbus-connection.c (dbus_connection_return_message) 
2800         (dbus_connection_borrow_message): hold dispatch lock while message
2801         is outstanding
2802         (_dbus_connection_block_for_reply): hold dispatch lock while we
2803         block for the reply, so nobody steals our reply
2804         (dbus_connection_pop_message): hold the dispatch lock while we
2805         pluck the message
2806
2807 2005-02-13  Havoc Pennington  <hp@redhat.com>
2808
2809         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
2810         (_dbus_connection_release_dispatch)
2811         (_dbus_connection_acquire_io_path)
2812         (_dbus_connection_release_io_path): make the mutex and condvar
2813         control access to the "acquired" flag. Drop the connection lock
2814         while waiting on the condvar. Hopefully these are baby steps in
2815         roughly the right direction.
2816
2817 2005-02-13  Havoc Pennington  <hp@redhat.com>
2818
2819         * dbus/dbus-connection.c: use separate mutexes for the condition
2820         variables; this is some kind of baseline for sanity, but the
2821         condition variables still aren't used correctly afaict
2822
2823 2005-02-13  Havoc Pennington  <hp@redhat.com>
2824
2825         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2826         fix a double-unlock
2827
2828         * dbus/dbus-connection.c
2829         (_dbus_connection_detach_pending_call_unlocked): add this
2830
2831         Initial semi-correct pass through to fix thread locking; there are
2832         still some issues with the condition variable paths I'm pretty
2833         sure
2834         
2835         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
2836         lock/unlock calls
2837
2838         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
2839         rename to add _unlocked
2840         (struct DBusConnection): move "dispatch_acquired" and
2841         "io_path_acquired" to use only one bit each.
2842         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
2843         (dbus_connection_set_watch_functions): hacky fix to reentrancy
2844         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
2845         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
2846         (_dbus_connection_remove_timeout) 
2847         (_dbus_connection_toggle_timeout): drop lock when calling out to
2848         user functions; done in a hacky/bad way.
2849         (_dbus_connection_send_and_unlock): add a missing unlock
2850         (_dbus_connection_block_for_reply): add a missing unlock
2851
2852         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2853         drop lock in a hacky probably unsafe way to call out to user
2854         function
2855
2856 2005-02-12  Havoc Pennington  <hp@redhat.com>
2857
2858         * tools/dbus-tree-view.c (info_set_func_text): display more
2859         details on args
2860
2861         * bus/driver.c (bus_driver_handle_list_services): list the bus
2862         driver
2863
2864         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
2865
2866         * glib/dbus-gidl.c (signal_info_get_n_args): new function
2867         (method_info_get_n_args): new function
2868
2869 2005-02-12  Havoc Pennington  <hp@redhat.com>
2870
2871         * bus/driver.c (bus_driver_handle_introspect): add introspection
2872         for bus driver
2873
2874 2005-02-12  Havoc Pennington  <hp@redhat.com>
2875
2876         * bus/driver.c: put the signature of each bus driver method in the
2877         table of handlers and check it on incoming calls; this isn't
2878         really useful, but going to add introspect support in a minute.
2879
2880 2005-02-11  Joe Shaw  <joeshaw@novell.com>
2881
2882         * mono/Connection.cs: The unpredictability of finalizers in mono
2883         prevents us from deterministically disconnecting the filters from
2884         the Service class's finalizer, so move tracking of filters and
2885         matches here.  Add API for that.
2886
2887         * mono/Service.cs: Remove the code, add code which calls the
2888         methods now on the Connection class.
2889
2890 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
2891
2892         * python/dbus.py (class Sender): added to support dbus signals better
2893         (Bus::add_signal_receiver): added expand_args parameter which defaults
2894         to True.  When expand args is True the signal handler will pass the 
2895         message arguments as parameters to the signal handler.  If False
2896         revert to previous behavior where the signal handler must get the
2897         argument list from the message.  This is to help port applications
2898         like HAL that have a tendancy to send variable length argument lists.
2899         self._match_rule_to_receivers is now a dict of dicts.
2900         (Bus::remove_signal_receiver): pop handler off the dict intead of 
2901         removing it from a list
2902         (Bus::_signal_func): change signal handlers so that interface,
2903         signal_name, service, path and message are packed into a Sender
2904         object and that is passed to the handler.  If expand_args is True
2905         extract the args list from the message and append it to the parameter
2906         list
2907         
2908         * python/dbus_bindings.pyx.in (class Signature): added to support 
2909         signiature types
2910         (MessageIter::__init__): changed iteration limit to match D-BUS
2911         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
2912         STRUCT and VARIENT type support
2913         (MessageIter::python_value_to_dbus_sig): made recursive to support
2914         recursive types
2915         (MessageIter::append*): added Signature, dict, tuple 
2916         support
2917
2918         * python/examples/example-client.py: added examples of getting tuples
2919         and dicts
2920
2921         * python/examples/example-service.py: added examples of sending tuples
2922         and dicts
2923
2924         * python/examples/example-signal-recipient.py: Fixed to handle new
2925         signal callback format
2926
2927 2005-02-10  Havoc Pennington  <hp@redhat.com>
2928
2929         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
2930         (call dbus_g_proxy_add_signal)
2931
2932         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2933         escape the hostname
2934         (_dbus_server_new_for_domain_socket): escape the path
2935
2936         * dbus/dbus-address.c (dbus_address_escape_value): new
2937         (dbus_address_unescape_value): new
2938         (dbus_parse_address): unescape values
2939
2940         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
2941
2942         * doc/dbus-specification.xml: explain how to escape values in
2943         addresses
2944
2945 2005-02-10  Havoc Pennington  <hp@redhat.com>
2946
2947         * dbus/dbus-message-factory.c (generate_special): modify test to
2948         avoid using a non-basic dict key
2949
2950         * dbus/dbus-marshal-validate-util.c: add test for the below
2951
2952         * doc/dbus-specification.xml: require that dict keys are a basic
2953         type
2954
2955         * dbus/dbus-marshal-validate.c
2956         (_dbus_validate_signature_with_reason): require that dict key is a
2957         basic type
2958
2959 2005-02-10  Havoc Pennington  <hp@redhat.com>
2960
2961         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2962         change to be _and_unlock instead of _unlocked
2963
2964         * dbus/dbus-connection.c
2965         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
2966         have no_update so we can find this bug quickly in future
2967
2968 2005-02-10  Havoc Pennington  <hp@redhat.com>
2969
2970         * dbus/dbus-message-util.c (verify_test_message): tests for string
2971         array
2972
2973         * dbus/dbus-message.c (dbus_message_append_args_valist): add
2974         support for arrays of string/signature/path
2975
2976 2005-02-10  Joe Shaw  <joeshaw@novell.com>
2977
2978         * dbus/dbus-connection.c
2979         (_dbus_connection_queue_received_message_link,
2980         _dbus_connection_message_sent): Add the path to
2981         the verbose output.
2982         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
2983         _dbus_connection_send_preallocated_unlocked(), updated the
2984         dispatch status, and unlocks.  Fixes a bug where certain
2985         situations (like a broken pipe) could cause a Disconnect message
2986         to not be sent, tricking the bus into thinking a service was still
2987         there when the process had quit.
2988         (_dbus_connection_send_preallocated): Call
2989         _dbus_connection_send_preallocated_and_unlock().
2990         (_dbus_connection_send_and_unlock): Added.  Calls
2991         _dbus_connection_send_preallocated_and_unlock().
2992         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
2993         (dbus_connection_send_with_reply): Update the dispatch status and
2994         unlock.
2995
2996         * mono/Service.cs (~Service): Added.  Removes the filter so that
2997         we don't get unmanaged code calling back into a GCed delegate.
2998         (RemoveFilter); Added.
2999
3000 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
3001
3002         * dbus/dbus-message.c (dbus_message_iter_open_container):
3003         - Removed check for iterator type being an array because
3004         get_arg_type does not work with writer iterators
3005         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
3006
3007 2005-02-07  Havoc Pennington  <hp@redhat.com>
3008
3009         * doc/dbus-specification.xml: some more language cleanups; add
3010         stuff about how to deal with invalid protocol and extension
3011         points; add _ to allowed chars in auth commands; add EXTENSION_
3012         auth command prefix
3013
3014 2005-02-06  Havoc Pennington  <hp@redhat.com>
3015
3016         * s/expected/required/ in a couple places for clarity
3017
3018 2005-02-07  Colin Walters  <walters@verbum.org>
3019
3020         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
3021         sender or proposed_recipient.
3022
3023 2005-02-06  Havoc Pennington  <hp@redhat.com>
3024
3025         * dbus/dbus-message-factory.c (generate_special): more tests
3026
3027         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
3028         array length that exceeds the maximum
3029
3030 2005-02-05  Havoc Pennington  <hp@redhat.com>
3031
3032         * dbus/dbus-message-factory.c (generate_special): more test cases,
3033         increasing coverage
3034
3035         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
3036         reason why a signature was invalid
3037
3038         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
3039         skip the length of the string before we look at it in validation
3040
3041         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
3042         equal_substring
3043
3044         * dbus/dbus-message.c (_dbus_message_loader_new): default
3045         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
3046
3047 2005-02-05  Havoc Pennington  <hp@redhat.com>
3048
3049         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
3050         if the signature of a variant was empty
3051         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
3052         struct with no element type)
3053
3054         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
3055         mangled messages to break things
3056
3057 2005-02-04  Havoc Pennington  <hp@redhat.com>
3058
3059         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
3060         g_quark_try_string() so it actually can return 0
3061         (dbus_g_proxy_connect_signal): ditto
3062
3063 2005-02-04  Havoc Pennington  <hp@redhat.com>
3064
3065         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
3066         bogus warning
3067         (tristring_from_message): assert cleanly on null path/interface
3068         (should not be possible though I decided later)
3069         (dbus_g_proxy_dispose): move proxy manager unregistration here
3070         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
3071         g_return_if_fail() checks
3072
3073 2005-02-04  Havoc Pennington  <hp@redhat.com>
3074
3075         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
3076
3077         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
3078         (with some minor changes)
3079
3080         * doc/dbus-specification.xml: add deprecated attribute to
3081         introspection format
3082
3083 2005-01-31  Havoc Pennington  <hp@redhat.com>
3084
3085         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
3086         think it's sort of right
3087
3088 2005-01-30  Havoc Pennington  <hp@redhat.com>
3089
3090         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
3091
3092 2005-01-30  Havoc Pennington  <hp@redhat.com>
3093
3094         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
3095
3096         * autogen.sh: change to autotools 1.9
3097
3098         * glib/dbus-gproxy.c: completely change how signals work
3099         (dbus_g_proxy_add_signal): new function to specify signature of a
3100         signal
3101         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
3102         and g_warning if the incoming message has the wrong signature.
3103
3104 2005-01-30  Havoc Pennington  <hp@redhat.com>
3105
3106         * tools/dbus-names-model.c (have_names_notify): fix this
3107
3108         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
3109         up the string array handling a bit 
3110
3111 2005-01-30  Havoc Pennington  <hp@redhat.com>
3112
3113         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
3114         (dbus_g_pending_call_cancel): new function
3115
3116         * dbus/dbus-glib.h: move GType decls for connection/message here;
3117         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
3118         here, just kind of rationalizing how we handle all that
3119
3120         * tools/dbus-names-model.c: new file for a tree model listing the
3121         services on a bus
3122
3123         * tools/dbus-tree-view.c (model_new): use proper typing on the
3124         model rows
3125
3126 2005-01-30  Havoc Pennington  <hp@redhat.com>
3127
3128         * glib/dbus-gmain.c: add a custom GSource back that just checks
3129         whether the message queue has anything in it; otherwise, there are 
3130         cases where we won't see messages in the queue since there was no 
3131         IO visible to the glib main loop
3132
3133         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
3134         increase default message timeout to 25 seconds
3135
3136 2005-01-30  Havoc Pennington  <hp@redhat.com>
3137
3138         * test/glib/test-profile.c (no_bus_stop_server): remove the
3139         warning about the g_warning that I just fixed
3140
3141         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
3142         custom source, seems to be a lot easier to understand and work
3143         better.
3144
3145 2005-01-30  Havoc Pennington  <hp@redhat.com>
3146
3147         I think this main loop thing is conceptually broken, but here are 
3148         some band aids. I'll maybe rewrite it in a minute.
3149         
3150         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
3151         custom GSource, so don't pass it in; confusing
3152         (gsource_server_finalize, gsource_connection_finalize): add
3153         finalize handlers that remove all the watches.  
3154
3155 2005-01-30  Havoc Pennington  <hp@redhat.com>
3156
3157         * glib/dbus-gobject.c (introspect_properties): fix the XML
3158         generated
3159
3160         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
3161         which effectively detects the use of freed messages
3162
3163         * glib/dbus-gobject.c (handle_introspect): modify and return the
3164         reply message instead of the incoming message
3165
3166         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
3167         gee, maybe it should SEND THE XML instead of just making a string
3168         and freeing it again ;-)
3169
3170         * tools/dbus-print-message.c (print_message): improve printing of
3171         messages
3172
3173         * configure.in: add debug-glib.service to the output
3174
3175 2005-01-30  Havoc Pennington  <hp@redhat.com>
3176
3177         dbus-viewer introspected and displayed the bus driver
3178         
3179         * dbus/dbus-object-tree.c 
3180         (object_tree_test_iteration): add tests for a handler registered on "/"
3181
3182         * dbus/dbus-object-tree.c
3183         (_dbus_decompose_path): fix to handle path "/" properly
3184         (run_decompose_tests): add tests for path decomposition
3185         
3186         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
3187         properly
3188
3189         * glib/dbus-gobject.c (handle_introspect): fix quotes
3190
3191         * test/glib/run-test.sh: support launching the bus, then running
3192         dbus-viewer
3193
3194         * test/glib/test-service-glib.c (main): put in a trivial gobject
3195         subclass and register it on the connection
3196
3197         * bus/driver.c (bus_driver_handle_introspect): implement
3198         introspection of the bus driver service
3199
3200         * dbus/dbus-protocol.h: add #defines for the XML namespace,
3201         identifiers, doctype decl
3202
3203         * bus/driver.c (bus_driver_handle_get_service_owner): handle
3204         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
3205         returning the service unchanged.
3206         (bus_driver_handle_message): remove old check for reply_serial in
3207         method calls, now the message type deals with that
3208         (bus_driver_handle_message): handle NULL interface
3209
3210         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
3211
3212         * glib/dbus-gloader-expat.c (description_load_from_string): allow
3213         -1 for len
3214
3215         * tools/dbus-viewer.c: add support for introspecting a service on
3216         a bus
3217
3218         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
3219         (dbus_g_pending_call_unref): add
3220
3221 2005-01-29  Havoc Pennington  <hp@redhat.com>
3222
3223         * tools/dbus-tree-view.c: add support for displaying properties.
3224         (run dbus-viewer with an introspect xml file as arg, then resize
3225         the window so the tree elements show up, not sure what that is)
3226
3227         * glib/dbus-gobject.c (handle_introspect): return
3228         org.freedesktop.Properties and org.freedesktop.Introspectable
3229         interfaces when we are introspected.
3230
3231         * doc/dbus-specification.xml: allow empty interface name when 
3232         Get/Set a property
3233
3234 2005-01-29  Havoc Pennington  <hp@redhat.com>
3235
3236         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
3237         though it uses glib, it could be extended for any binding in
3238         principle
3239
3240         * glib/dbus-gobject.c (gobject_message_function): change to the
3241         new way properties work
3242
3243         * dbus/dbus-protocol.h: add the new interfaces
3244
3245         * doc/dbus-specification.xml: document the introspection format,
3246         Introspectable interface, and add an org.freedesktop.Properties
3247         interface.
3248
3249         * glib/dbus-gparser.c: add support for a <property> element
3250
3251         * glib/dbus-gidl.c: add PropertyInfo
3252
3253         * glib/dbus-gobject.c (handle_introspect): put the outermost
3254         <node> outside the signal and property descriptions.
3255         (introspect_properties): export properties as <property> rather
3256         than as method calls
3257
3258 2005-01-28  Havoc Pennington  <hp@redhat.com>
3259
3260         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
3261         related to authentication protocol
3262
3263 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
3264
3265         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
3266                 - BUS_ACTIVATION -> BUS_STARTER
3267                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
3268                 - class MessageIter (__init__): Added recursion checking 
3269                 so we throw a nice error instead of just disconnecting from the
3270                 bus.
3271                 (get): Added arg_type parameter for recursion.
3272                 Removed the nil type
3273                 Added signiture type placeholder (not implemented)
3274                 Added struct type placeholder (not implemented)
3275                 Added varient type placeholder (not implemented)
3276                 Commented out dict type for now     
3277                 (get_element_type): renamed from get_array_type
3278                 (get_*): changed to use the dbus_message_iter_get_basic API
3279                 (get_*_array): removed in favor of recursive get_array method
3280                 (get_array): new recursive method which calls get to marshal
3281                 the elements of the array
3282                 (value_to_dbus_sig): New method returns the corrasponding
3283                 dbus signiture to a python value
3284                 (append): Comment out dict handling for now
3285                 Handle lists with the new recursive API
3286                 Comment out None handling for now
3287                 (append_nil): removed
3288                 (append_*): changed to use dbus_message_iter_append_basic API
3289                 (append_*_array): removed in favor of recursive append_array 
3290                 method
3291                 (__str__): Make it easier to print out recursive iterators
3292                 for debugging
3293                 - class Message (__str__): moved type inspection to the
3294                 MessageIter class' __str__ method
3295                 (get_iter): Added an append parameter wich defaults to False
3296                 If True use the new API's to create an append iterator
3297
3298         * python/dbus.py: Update to use new bindings API
3299                 - TYPE_ACTIVATION -> TYPE_STARTER
3300                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
3301                 - class ActivationBus -> class StarterBus
3302                 - class RemoteObject (__call__): get an append iterator
3303                 - (_dispatch_dbus_method_call): get an append iterator
3304                 - class Object (emit_signal): get an append iterator
3305
3306         * python/examples/: Fixed up the examples to work with the new API
3307                 
3308 2005-01-28  Joe Shaw  <joeshaw@novell.com>
3309
3310         * configure.in: Bump version up to 0.30.
3311
3312         * HACKING: Add a release item to bump the version number up after 
3313         a release.
3314
3315 2005-01-28  Havoc Pennington  <hp@redhat.com>
3316
3317         * doc/dbus-specification.xml: update to describe 16-bit types and
3318         dict entries
3319
3320         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
3321         assertion
3322
3323         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
3324         type
3325
3326         * dbus/dbus-marshal-recursive.c: implement
3327
3328 2005-01-27  Havoc Pennington  <hp@redhat.com>
3329
3330         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
3331
3332         * configure.in: find the right type for 16 and 32 bit ints as well
3333         as 64
3334
3335         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
3336         the 16-bit types so people don't have to stuff them in 32-bit or
3337         byte arrays.
3338
3339 2005-01-27  Havoc Pennington  <hp@redhat.com>
3340
3341         * dbus/dbus-message.c: byteswap the message if you init an
3342         iterator to read/write from it
3343         
3344         * dbus/dbus-marshal-byteswap.c: new file implementing 
3345         _dbus_marshal_byteswap()
3346
3347         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
3348
3349 2005-01-26  Havoc Pennington  <hp@redhat.com>
3350         
3351         * dbus/dbus-marshal-validate-util.c: break this out (and fix
3352         build, apparently - nobody noticed?)
3353         
3354 2005-01-26  Havoc Pennington  <hp@redhat.com>
3355
3356         * dbus/dbus-marshal-recursive.h: remove todo comment
3357
3358 2005-01-25  Joe Shaw  <joeshaw@novell.com>
3359
3360         * Land the mono binding changes to conform to the new APIs.
3361
3362         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
3363         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
3364
3365         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
3366         type code as a string.
3367         (InitAppending): Rename dbus_message_append_iter_init() to
3368         dbus_message_iter_init_append().
3369
3370         * mono/BusDriver.cs: Rename ServiceEventHandler to
3371         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
3372         Rename ServiceOwnerChanged to NameOwnerChanged.
3373
3374         * mono/Connection.cs: Rename BaseService to UniqueName, and the
3375         underlying C call.
3376
3377         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
3378
3379         * mono/Service.cs: Rename Exists to HasOwner, internally rename
3380         dbus_bus_acquire_service() to dbus_bus_request_name().
3381
3382         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
3383         of Type.UnderlyingSystemType to get the correct element type for
3384         the array.
3385         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
3386         dbus_message_get_{element|arg}_type() instead of
3387         dbus_message_iter_init_array_iterator().
3388         (Append): Replace dbus_message_iter_append_array() with
3389         dbus_message_iter_open_container() and
3390         dbus_message_iter_close_container().
3391
3392         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
3393         types have been removed.
3394         
3395         * mono/DBusType/*.cs: Replace calls of
3396         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
3397         but specify the type in the DllImport extern declaration.  Ditto
3398         for dbus_message_iter_append_[type]() ->
3399         dbus_message_iter_append_basic().
3400
3401         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
3402         NameOwnerChangedHandler.
3403
3404 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
3405
3406         * python/dbus_bindings.pyx.in: Rename of methods and bindings
3407                 - get_base_service -> get_unique_name
3408                 - bus_get_base_service -> bus_get_unique_name
3409                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
3410                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
3411                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
3412                 - bus_activate_service -> bus_start_service_by_name
3413                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
3414                 - bus_acquire_service -> bus_request_name
3415                 - dbus_bus_acquire_service -> dbus_bus_request_name
3416                 - bus_service_exists -> bus_name_has_owner
3417                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
3418
3419         * python/dbus.py: Rename of methods
3420                 - activate_service -> start_service_by_name
3421                 - bus_acquire_service -> bus_request_name
3422                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
3423                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
3424
3425         
3426 2005-01-24  Joe Shaw  <joeshaw@novell.com>
3427
3428         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
3429         signature for the method that can't be found.
3430
3431         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
3432         the message has any arguments, we need to call
3433         _dbus_type_reader_get_current_type(), not
3434         _dbus_type_reader_has_next().
3435
3436 2005-01-24  Havoc Pennington  <hp@redhat.com>
3437
3438         * dbus/dbus-message-factory.c: more testing of message validation
3439
3440         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
3441         header
3442
3443 2005-01-23  Havoc Pennington  <hp@redhat.com>
3444
3445         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
3446         get this all working, not many tests in the framework yet though
3447
3448 2005-01-22  Havoc Pennington  <hp@redhat.com>
3449
3450         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
3451         tutorial, based on work from David Wheeler.
3452
3453 2005-01-21  Havoc Pennington  <hp@redhat.com>
3454
3455         * dbus/dbus-bus.c: add more return_if_fail checks
3456
3457         * dbus/dbus-message.c (load_message): have the "no validation"
3458         mode (have to edit the code to toggle the mode for now though)
3459
3460         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
3461         skips all validation; I want to use this at least for benchmark
3462         baseline, I'm not sure if it should be a publicly-available switch.
3463
3464 2005-01-21  Havoc Pennington  <hp@redhat.com>
3465
3466         * glib/dbus-gmain.c: don't put the GLib bindings in the same
3467         toplevel doxygen group as the low-level API stuff
3468
3469         * dbus/dbus.h: note that libdbus is the low-level API
3470
3471 2005-01-20  Havoc Pennington  <hp@redhat.com>
3472
3473         * update-dbus-docs.sh: script to update docs on the web site, only
3474         works for me though. neener.
3475
3476 2005-01-20  Havoc Pennington  <hp@redhat.com>
3477
3478         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
3479         code can reveal bugs in it
3480
3481 2005-01-20  Havoc Pennington  <hp@redhat.com>
3482
3483         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
3484         select() version, patches from Tor Lillqvist
3485
3486 2005-01-20  Havoc Pennington  <hp@redhat.com>
3487
3488         * doc/dbus-tutorial.xml: replace > with &gt;
3489
3490         * bus/services.c (bus_registry_acquire_service): validate the name
3491         and return a better error if it's no good.
3492
3493         * doc/dbus-specification.xml: note NO_AUTO_START change
3494
3495         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
3496         from AUTO_START, we're toggling the default
3497
3498         * bus/dispatch.c: adapt the tests to change of auto-start default
3499
3500 2005-01-18  Havoc Pennington  <hp@redhat.com>
3501
3502         * rename dbus-daemon-1 to dbus-daemon throughout
3503
3504 2005-01-18  Havoc Pennington  <hp@redhat.com>
3505
3506         * Throughout, grand renaming to strip out the use of "service",
3507         just say "name" instead (or "bus name" when ambiguous).  Did not
3508         change the internal code of the message bus itself, only the
3509         programmer-facing API and messages.
3510         
3511         * doc/dbus-specification.xml: further update the message bus section
3512         
3513         * bus/config-parser.c (all_are_equiv): fix bug using freed string
3514         in error case
3515
3516 2005-01-17  Havoc Pennington  <hp@redhat.com>
3517
3518         * dbus/dbus-types.h: remove 16-bit types since we don't use them
3519         ever
3520
3521         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
3522         "invalid name character" not only non-ASCII
3523
3524         * doc/dbus-specification.xml: further update spec, message bus 
3525         parts are still out-of-date but the marshaling etc. stuff is now
3526         accurate-ish
3527
3528 2005-01-17  Havoc Pennington  <hp@redhat.com>
3529
3530         * doc/dbus-specification.xml: partially update spec
3531
3532 2005-01-17  Havoc Pennington  <hp@redhat.com>
3533
3534         * Throughout, align variant bodies according to the contained
3535         type, rather than always to 8. Should save a fair bit of space in
3536         message headers.
3537         
3538         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
3539         fix handling of case where p == end
3540
3541         * doc/TODO: remove the dbus_bool_t item and variant alignment items
3542
3543 2005-01-17  Havoc Pennington  <hp@redhat.com>
3544
3545         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
3546
3547         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
3548         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
3549         are marshaling/unmarshaling a boolean.
3550
3551 2005-01-16  Havoc Pennington  <hp@redhat.com>
3552
3553         This is about it on what can be disabled/deleted from libdbus
3554         easily, back below 150K anyhow. Deeper cuts are more work than 
3555         just turning the code off as I've done here.
3556         
3557         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
3558         signed int convenience funcs
3559
3560         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
3561         verbose mode
3562
3563         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
3564         things out of libdbus
3565
3566         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
3567         
3568         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
3569         tests-enabled-only, though it should probably be deleted)
3570
3571         * dbus/dbus-message-util.c: same stuff
3572
3573         * dbus/dbus-auth-util.c: same stuff
3574
3575 2005-01-16  Havoc Pennington  <hp@redhat.com>
3576
3577         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
3578
3579         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
3580         way for stripping down dbus-userdb.c stuff included in libdbus.
3581         Rename _dbus_parse_uid for consistency.
3582
3583 2005-01-16  Havoc Pennington  <hp@redhat.com>
3584
3585         * dbus/dbus-internals.c (_dbus_real_assert): print the function
3586         name the assertion failed in
3587
3588         * dbus/dbus-internals.h (_dbus_return_if_fail) 
3589         (_dbus_return_val_if_fail): assert that the name of the function
3590         containing the check doesn't start with '_', since we only want to 
3591         use checks on public functions
3592         
3593         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
3594         checks to assertions
3595
3596         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
3597         change checks to asserts for private function
3598
3599         * dbus/dbus-message.c (_dbus_message_set_serial): checks
3600         to asserts for private function
3601
3602         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
3603         broken assertion that was breaking make check
3604         (_dbus_type_reader_array_is_empty): remove this rather than fix
3605         it, was only used in assertions
3606
3607 2005-01-16  Havoc Pennington  <hp@redhat.com>
3608
3609         * test/unused-code-gc.py: hacky script to find code that's used
3610         only by the bus (not libdbus) or used only by tests or not used at
3611         all. It has some false alarms, but looks like we can clean up a
3612         lot of size from libdbus.
3613
3614         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
3615         dbus/Makefile.am: initially move 10K of binary size out of libdbus
3616         
3617 2005-01-16  Havoc Pennington  <hp@redhat.com>
3618
3619         * Add and fix docs according to Doxygen warnings throughout
3620         source.
3621         
3622         * dbus/dbus-marshal-recursive.c
3623         (_dbus_type_reader_array_is_empty): change this to just call
3624         array_reader_get_array_len() and make it static
3625
3626         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
3627         from get_array_type
3628         (dbus_message_iter_init_append): rename from append_iter_init
3629
3630         * dbus/dbus-marshal-recursive.c
3631         (_dbus_type_reader_get_element_type): rename from
3632         _dbus_type_reader_get_array_type
3633
3634 2005-01-15  Havoc Pennington  <hp@redhat.com>
3635
3636         * test/glib/test-profile.c (with_bus_server_filter): fix crash
3637
3638         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
3639         when DBUS_DISABLE_ASSERT
3640         (_dbus_marshal_set_basic): be sure we align for the string length
3641
3642         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
3643         this look faster
3644
3645         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
3646         inline macro version
3647         (_dbus_string_set_byte): provide inline macro version
3648
3649 2005-01-15  Havoc Pennington  <hp@redhat.com>
3650
3651         * Land the new message args API and type system.
3652
3653         This patch is huge, but the public API change is not 
3654         really large. The set of D-BUS types has changed somewhat, 
3655         and the arg "getters" are more geared toward language bindings;
3656         they don't make a copy, etc.
3657
3658         There are also some known issues. See these emails for details
3659         on this huge patch:
3660         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
3661         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
3662         
3663         * dbus/dbus-marshal-*: all the new stuff
3664
3665         * dbus/dbus-message.c: basically rewritten
3666
3667         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
3668         freed blocks to be all non-nul bytes so using freed memory is less
3669         likely to work right
3670
3671         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
3672         DBUS_FAIL_MALLOC=N environment variable, so you can do
3673         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
3674         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
3675         thorough.
3676
3677         * qt/message.cpp: port to the new message args API
3678         (operator<<): use str.utf8() rather than str.unicode()
3679         (pretty sure this is right from the Qt docs?)
3680
3681         * glib/dbus-gvalue.c: port to the new message args API
3682
3683         * bus/dispatch.c, bus/driver.c: port to the new message args API
3684
3685         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
3686         "locked" flag to TRUE and align_offset to 0; I guess we never
3687         looked at these anyhow, but seems cleaner.
3688
3689         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
3690         move allocation padding macro to this header; use it to implement
3691         (_DBUS_STRING_STATIC): ability to declare a static string.
3692
3693         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
3694         change to return TRUE if the interface is not set.
3695
3696         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
3697         to dbus-marshal-validate.[hc]
3698
3699         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
3700         dbus-internals.c
3701
3702         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
3703         to dbus-marshal-*.[hc]
3704
3705         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
3706         function here from dbus-marshal.c
3707
3708 2005-01-12  Joe Shaw  <joeshaw@novell.com>
3709
3710         * NEWS: Update for 0.23.
3711
3712         * configure.in: Release 0.23.
3713
3714 2005-01-12  Joe Shaw  <joeshaw@novell.com>
3715
3716         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
3717         dbus DLL with --debug.  Clean up after the .mdb files this leaves
3718         behind.
3719
3720         * mono/doc/Makefile.am: Need to uninstall the docs on "make
3721         uninstall"
3722
3723         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
3724         is an enum, get the enum's underlying type.  Another mono
3725         1.1.3 fix.
3726
3727 2005-01-11  Joe Shaw  <joeshaw@novell.com>
3728
3729         Patch from Sjoerd Simons <sjoerd@luon.net>
3730
3731         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
3732         DESTDIR.  It breaks stuff.
3733
3734 2005-01-11  Joe Shaw  <joeshaw@novell.com>
3735
3736         Patch from Tambet Ingo <tambet@ximian.com>
3737
3738         * mono/DBusType/Array.cs (Get): Get the underlying element type by
3739         calling type.GetElementType().  The code previously depended on
3740         broken Mono behavior, which was fixed in Mono 1.1.3.
3741
3742         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
3743         Activator.CreateInstance() so that the class's constructor is
3744         called with the right parameters.
3745
3746 2005-01-11  Joe Shaw  <joeshaw@novell.com>
3747
3748         Patch from Timo Teräs <ext-timo.teras@nokia.com>
3749
3750         * dbus/dbus-connection.c
3751         (_dbus_connection_queue_received_message_link): Call
3752         _dbus_connection_remove_timeout() instead of the _locked()
3753         variant, since it's always called from
3754         _dbus_connection_handle_watch(), which handles the locking.
3755         Removed the _locked() variant since it's no longer used.
3756
3757 2005-01-03  Havoc Pennington  <hp@redhat.com>
3758
3759         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
3760         return
3761         
3762 2004-12-26  Havoc Pennington  <hp@redhat.com>
3763
3764         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
3765
3766 2005-01-03  Havoc Pennington  <hp@redhat.com>
3767
3768         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
3769         floating point
3770
3771         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
3772
3773 2005-01-02  Havoc Pennington  <hp@redhat.com>
3774
3775         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
3776
3777 2005-01-01  Havoc Pennington  <hp@redhat.com>
3778
3779         * configure.in: add -Wfloat-equal
3780
3781 2005-01-01  Havoc Pennington  <hp@redhat.com>
3782
3783         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
3784         for a variety of reasons '==' doesn't do this.
3785
3786 2004-12-31  Havoc Pennington  <hp@redhat.com>
3787
3788         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
3789         I keep wishing I had
3790
3791 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
3792
3793         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
3794
3795 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
3796
3797         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
3798         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
3799         dbus-protocol.h.  Because they are defines and not enums they are not
3800         autogenerated.
3801
3802 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
3803
3804         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
3805         dbus_bus_activate_service
3806
3807         * python/dbus.py (Bus.activate_service): activate a service on the
3808         bus.
3809
3810 2004-12-24  Havoc Pennington  <hp@redhat.com>
3811
3812         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
3813         file format has also changed and I haven't adapted to that yet
3814         
3815         * Makefile.am: load .gcno files from latest gcc
3816
3817 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
3818         * Patch from Rob Taylor <robtaylor@fastmail.fm>
3819
3820         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
3821         lowlevel binding
3822
3823         * python/dbus.py (get_unix_user): Added binding to 
3824         call dbus_bindings.bus_get_unix_user
3825
3826         * python/extract.py: Modified the proto_pat regex to
3827         handle unsigned long
3828
3829 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3830
3831         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
3832         better POSIX compliance.
3833
3834 2004-12-19  Havoc Pennington  <hp@redhat.com>
3835
3836         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
3837         (_dbus_string_insert_8_aligned): new functions
3838
3839         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
3840
3841 2004-12-18  Havoc Pennington  <hp@redhat.com>
3842
3843         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
3844         macro
3845
3846         * dbus/dbus-message.c: fix a comment, and add a still-unused
3847         not-implemented function
3848
3849         * dbus/dbus-marshal.h: fix comment
3850
3851         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
3852
3853 2004-12-17  Joe Shaw  <joeshaw@novell.com>
3854
3855         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
3856         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
3857         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
3858         Type.UnderlyingSystemType to get the actual system type
3859         underneath.  This code previously depended on the broken Mono
3860         behavior, which was fixed in 1.1.3.
3861
3862 2004-11-27  Havoc Pennington  <hp@redhat.com>
3863
3864         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
3865         are disabled
3866         (_dbus_string_get_const_data): inline when asserts are disabled
3867
3868         * dbus/dbus-message.c: record the _dbus_current_generation of
3869         creation so we can complain if dbus_shutdown() is used improperly.
3870         Do this only if checks are enabled.
3871
3872         * dbus/dbus-connection.c: ditto
3873         
3874 2004-11-26  Havoc Pennington  <hp@redhat.com>
3875
3876         * test/glib/test-profile.c: add with_bus mode to profile echoes
3877         that go through the bus.
3878
3879         * test/glib/run-test.sh: add ability to run test-profile
3880
3881         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
3882         config file reload.
3883
3884 2004-11-26  Havoc Pennington  <hp@redhat.com>
3885
3886         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
3887         thing was implemented
3888
3889 2004-11-26  Havoc Pennington  <hp@redhat.com>
3890
3891         * test/glib/test-profile.c: tweak a bit, add support for some
3892         made-up minimal malloc overhead with plain sockets, since in 
3893         real life some sort of buffers are unavoidable thus we could 
3894         count them in the theoretical best case
3895
3896 2004-11-26  Havoc Pennington  <hp@redhat.com>
3897
3898         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
3899         where I was trying to cache one too many messages
3900
3901 2004-11-26  Havoc Pennington  <hp@redhat.com>
3902
3903         * dbus/dbus-message.c: reimplement message cache as an array which 
3904         makes the cache about twice as fast and saves maybe 1.5% overall
3905
3906 2004-11-26  Havoc Pennington  <hp@redhat.com>
3907
3908         * dbus/dbus-threads.c (init_global_locks): forgot to put the
3909         message cache lock here
3910
3911 2004-11-26  Havoc Pennington  <hp@redhat.com>
3912
3913         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
3914         the "char byte_order" next to each other to save 4 bytes
3915         (dbus_message_new_empty_header): reduce preallocation, since the
3916         message cache should achieve a similar effect
3917         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
3918         message cache that keeps a few DBusMessage around in a pool,
3919         another 8% speedup or so.
3920
3921         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
3922
3923 2004-11-25  Havoc Pennington  <hp@redhat.com>
3924
3925         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
3926         to write, without reading or blocking, try it before the poll()
3927         and skip the poll() if nothing remains to write. This is about a
3928         3% speedup in the echo client/server
3929
3930 2004-11-25  Havoc Pennington  <hp@redhat.com>
3931
3932         The primary change here is to always write() once before adding
3933         the write watch, which gives us about a 10% performance increase.
3934         
3935         * dbus/dbus-transport-unix.c: a number of modifications to cope
3936         with removing messages_pending
3937         (check_write_watch): properly handle
3938         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
3939         messages_pending stuff
3940         (check_read_watch): properly handle WAITING_FOR_MEMORY and
3941         AUTHENTICATED cases
3942         (unix_handle_watch): after writing, see if the write watch can be
3943         removed
3944         (unix_do_iteration): assert that write_watch/read_watch are
3945         non-NULL rather than testing that they aren't, since they 
3946         aren't allowed to be NULL. check_write_watch() at the end so 
3947         we add the watch if we did not finish writing (e.g. got EAGAIN)
3948
3949         * dbus/dbus-transport-protected.h: remove messages_pending call,
3950         since it resulted in too much inefficient watch adding/removing; 
3951         instead we now require that the transport user does an iteration 
3952         after queueing outgoing messages, and after trying the first
3953         write() we add a write watch if we got EAGAIN or exceeded our 
3954         max bytes to write per iteration setting
3955
3956         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
3957         function
3958
3959         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
3960         freed and then accessed, valgrind flagged this bug, fix it
3961
3962         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
3963         as the last valid field plus 1, where really it is equal to the
3964         last valid field. Corrects some message corruption issues.
3965
3966         * dbus/dbus-mainloop.c: verbosity changes
3967
3968         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
3969         instead of aborting in one of the test codepaths
3970
3971         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
3972         caused not printing the pid ever again if a verbose was missing
3973         the newline at the end
3974         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
3975
3976         * dbus/dbus-connection.c: verbosity changes; 
3977         (dbus_connection_has_messages_to_send): new function
3978         (_dbus_connection_message_sent): no longer call transport->messages_pending
3979         (_dbus_connection_send_preallocated_unlocked): do one iteration to
3980         try to write() immediately, so we can avoid the write watch. This
3981         is the core purpose of this patchset
3982         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
3983         dump the outgoing message queue, so nobody will get confused
3984         trying to send them or thinking stuff is pending to be sent
3985
3986         * bus/test.c: verbosity changes
3987
3988         * bus/driver.c: verbosity/assertion changes
3989
3990         * bus/dispatch.c: a bunch of little tweaks to get it working again
3991         because this patchset changes when/where you need to block.
3992
3993 2004-11-23  Havoc Pennington  <hp@redhat.com>
3994
3995         * test/glib/test-profile.c: modify to accept a plain_sockets
3996         argument in which case it will bench plain sockets instead of
3997         libdbus, for comparison purposes.
3998
3999 2004-11-22  Havoc Pennington  <hp@redhat.com>
4000
4001         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
4002         threads for more time, so sysprof can get a grip on it.
4003
4004         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
4005         pointless variable
4006
4007 2004-11-13  Havoc Pennington  <hp@redhat.com>
4008
4009         * test/glib/test-profile.c: fix this thing up a bit
4010
4011         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
4012         preallocation sizes by a fair bit; not sure if this will be an
4013         overall performance win or not, but it does reduce reallocs.
4014
4015         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
4016         the test hack that forced constant realloc if asserts are
4017         disabled, so we can profile sanely. Sprinkle in some
4018         _DBUS_UNLIKELY() which are probably pointless, but before I
4019         noticed the real performance problem I put them in.
4020         (_dbus_string_validate_utf8): micro-optimize this thing a little
4021         bit, though callgrind says it didn't help; then special-case
4022         ascii, which did help a lot; then be sure we detect nul bytes as
4023         invalid, which is a bugfix.
4024         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
4025         superstition; use memset to nul the padding instead of a manual
4026         loop.
4027         (_dbus_string_get_length): inline this as a
4028         macro; it showed up in the profile because it's used for loop
4029         tests and so forth
4030
4031 2004-11-10  Colin Walters  <walters@verbum.org>
4032
4033         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
4034         for extra paranoia.
4035
4036 2004-11-09  Colin Walters  <walters@verbum.org>
4037
4038         * dbus/dbus-string.c (_dbus_string_get_length): New
4039         function, writes DBusString to C buffer.
4040
4041         * dbus/dbus-string.h: Prototype it.
4042
4043         * dbus/dbus-message.c (dbus_message_type_to_string): New
4044         function, converts message type into C string.
4045
4046         * dbus/dbus-message.h: Prototype it.
4047
4048         * bus/selinux.c (bus_selinux_check): Take source pid,
4049         target pid, and audit data.  Pass audit data to
4050         avc_has_perm.
4051         (log_audit_callback): New function, appends extra
4052         audit information.
4053         (bus_selinux_allows_acquire_service): Also take
4054         service name, add it to audit data.
4055         (bus_selinux_allows_send): Also take message
4056         type, interface, method member, error name,
4057         and destination, and add them to audit data.
4058         (log_cb): Initialize func_audit.
4059         
4060         * bus/selinux.h (bus_selinux_allows_acquire_service)
4061         (bus_selinux_allows_send): Update prototypes 
4062
4063         * bus/services.c (bus_registry_acquire_service): Pass
4064         service name to bus_selinux_allows_acquire_service.
4065
4066         * bus/bus.c (bus_context_check_security_policy): Pass
4067         additional audit data.  Move assignment of dest
4068         to its own line.
4069
4070 2004-11-07  Colin Walters  <walters@verbum.org>
4071
4072         * dbus/dbus-transport-unix.c (do_authentication): Always
4073         initialize auth_completed.
4074         
4075 2004-11-07  Colin Walters  <walters@verbum.org>
4076
4077         * bus/bus.c (load_config): Break into three
4078         separate functions: process_config_first_time_only,
4079         process_config_every_time, and process_config_postinit.
4080         (process_config_every_time): Move call of
4081         bus_registry_set_service_context_table into
4082         process_config_postinit.
4083         (process_config_postinit): New function, does
4084         any processing that needs to happen late
4085         in initialization (and also on reload).
4086         (bus_context_new): Instead of calling load_config,
4087         open config parser here and call process_config_first_time_only
4088         and process_config_every_time directly.  Later, after
4089         we have forked but before changing UID,
4090         invoke bus_selinux_full_init, and then call
4091         process_config_postinit.
4092         (bus_context_reload_config): As in bus_context_new,
4093         load parse file inside here, and call process_config_every_time
4094         and process_config_postinit.
4095
4096         * bus/services.h, bus/services.c
4097         (bus_registry_set_service_context_table): Rename
4098         from bus_registry_set_sid_table.  Take string hash from config
4099         parser, and convert them here into SIDs.
4100
4101         * bus/config-parser.c (struct BusConfigParser): Have
4102         config parser only store a mapping of service->context
4103         string.
4104         (merge_service_context_hash): New function.
4105         (merge_included): Merge context string hashes instead
4106         of using bus_selinux_id_table_union.
4107         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
4108         simply create a new string hash.
4109         (bus_config_parser_unref): Unref it.
4110         (start_selinux_child): Simply insert strings into hash,
4111         don't call bus_selinux_id_table_copy_over.
4112
4113         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
4114         (bus_selinux_id_table_copy_over): Delete.
4115
4116 2004-11-03  Colin Walters  <walters@verbum.org>
4117
4118         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
4119         variables.
4120         
4121 2004-11-03  Colin Walters  <walters@verbum.org>
4122
4123         * bus/test-main.c (test_pre_hook): Fix test logic,
4124         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
4125
4126 2004-11-02  Colin Walters  <walters@redhat.com>
4127
4128         * bus/selinux.c (bus_selinux_init): Split into two functions,
4129         bus_selinux_pre_init and bus_selinux_post_init.
4130         (bus_selinux_pre_init): Just determine whether SELinux is
4131         enabled.
4132         (bus_selinux_post_init): Do everything else.
4133
4134         * bus/main.c (main): Call bus_selinux_pre_init before parsing
4135         config file, and bus_selinux_post_init after.  This ensures that
4136         we don't lose the policyreload notification thread that
4137         bus_selinux_init created before forking previously.
4138         
4139         * bus/test-main.c (test_pre_hook): Update for split.
4140
4141 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
4142
4143         Patch from Johan Fischer <linux@fischaz.com>
4144         
4145         * mono/doc/Makefile.am (install-data-local): Added directory
4146         install for DESTDIR
4147
4148 2004-10-29  Colin Walters  <walters@redhat.com>
4149
4150         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
4151         parameter for fd to write pid to.       
4152
4153         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
4154         
4155         * bus/bus.c (bus_context_new): Pass print_pid_fd
4156         to _dbus_become_daemon (bug #1720)
4157
4158 2004-10-29  Colin Walters  <walters@redhat.com>
4159
4160         Patch from Ed Catmur <ed@catmur.co.uk>
4161
4162         * mono/doc/Makefile.am (install-data-local): Handle
4163         DESTDIR.
4164
4165 2004-10-29  Colin Walters  <walters@redhat.com>
4166
4167         * bus/.cvsignore, qt/.cvsignore: Update.
4168
4169 2004-10-29  Colin Walters  <walters@redhat.com>
4170
4171         Patch from Kristof Vansant <de_lupus@pandora.be>
4172
4173         * configure.in: Detect Slackware.
4174         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
4175         * bus/rc.messagebus.in: New file.
4176
4177 2004-10-29  Colin Walters  <walters@redhat.com>
4178
4179         * tools/dbus-monitor.c (filter_func): Return
4180         DBUS_HANDLER_RESULT_HANDLED in filter function
4181         for now.  See:
4182         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
4183
4184 2004-10-29  Colin Walters  <walters@redhat.com>
4185
4186         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
4187
4188         * bus/services.c (bus_registry_acquire_service): 
4189         Correctly retrieve service name from DBusString
4190         for printing.
4191
4192 2004-10-29  Colin Walters  <walters@redhat.com>
4193
4194         * dbus/dbus-glib.h: Update documentation to not
4195         refer to internal APIs.
4196
4197 2004-10-27  Joe Shaw  <joeshaw@novell.com>
4198
4199         * mono/Arguments.cs (GetDBusTypeConstructor):
4200         type.UnderlyingSystemType will return "System.Byte" if you do it
4201         on "byte[]", which is not what we want.  So check the type.IsArray
4202         property and use System.Array instead.
4203
4204 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
4205
4206         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
4207         the DBusUserInfo structure since this is passed into the function.
4208         This would cause a double free when the function that allocated
4209         the structure would try to free it when an error occured.
4210
4211         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
4212         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
4213         for service activation to avoid 32bit/64bit parallel install issues
4214
4215 2004-10-21  Colin Walters  <walters@verbum.org>
4216
4217         * AUTHORS: Fix my email address, the @gnu.org one
4218         has been bouncing for some time.  Also add J5.
4219         
4220 2004-10-21  Colin Walters  <walters@verbum.org>
4221
4222         * dbus/dbus-transport-unix.c (do_authentication): Return
4223         authentication status to callers.
4224         (unix_handle_watch): If we completed authentication this round,
4225         don't do another read.  Instead wait until the next iteration,
4226         after we've read any pending data in the auth buffer.
4227         (unix_do_iteration): Ditto.
4228         (unix_handle_watch): Updated for new do_authentication prototype.
4229
4230 2004-10-18  Colin Walters  <walters@verbum.org>
4231
4232         * bus/selinux.c (bus_selinux_enabled): Handle
4233         --disable-selinux case.
4234         
4235 2004-10-18  Colin Walters  <walters@verbum.org>
4236
4237         * bus/selinux.h: Add bus_selinux_enabled.
4238         
4239         * bus/selinux.c (bus_selinux_enabled): Implement it.
4240         
4241         * bus/config-parser.c (struct include): Add
4242         if_selinux_enabled member.
4243         (start_busconfig_child): Parse if_selinux_enabled
4244         attribute for include.
4245         (bus_config_parser_content): Handle it.
4246
4247         * bus/session.conf.in, bus/system.conf.in: Add
4248         inclusion of context mapping to default config files;
4249         conditional on SELinux being enabled.
4250         
4251         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
4252         
4253         * test/data/invalid-config-files/badselinux-1.conf, 
4254         test/data/invalid-config-files/badselinux-2.conf:
4255         Test files for bad syntax.
4256         
4257 2004-10-17  Colin Walters  <walters@verbum.org>
4258
4259         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
4260         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
4261         format specifier mismatches.
4262
4263 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4264
4265         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
4266         format string.
4267
4268         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
4269         pointer (bug #1540, Leonardo Boiko).
4270
4271 2004-09-28  Jon Trowbridge  <trow@ximian.com>
4272
4273         * mono/BusDriver.cs: Changed BusDriver struct to remove
4274         the ServiceCreated and ServiceDeleted events and replace them
4275         with the new ServiceOwnerChanged event.
4276
4277         * mono/example/BusListener.cs: Added a new example program,
4278         which listens for and reports any ServiceOwnerChanged events
4279         on the bus driver.
4280
4281         * mono/example/Makefile.am (DESTDIR): Build changes for the
4282         new BusListener.cs example.
4283
4284 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4285
4286         * bus/signals.c (bus_match_rule_parse): validate the components of
4287         match rules (bug #1439).
4288
4289         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
4290
4291 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4292
4293         * doc/dbus-specification.xml: document ServiceOwnerChanged
4294         signal.
4295         
4296         * bus/driver.c, bus/driver.h, bus/services.c: Use
4297         ServiceOwnerChanged signal instead of ServiceCreated and
4298         ServiceDeleted.
4299         
4300         * bus/dispatch.c: update testcase for the new signal.
4301
4302 2004-09-20  Jon Trowbridge  <trow@ximian.com>
4303
4304         Patch from Nat Friedman <nat@novell.com>
4305
4306         * mono/Makefile.am: A number of small build fixes to allow "make
4307         distcheck" to succeed.
4308
4309         * mono/example/Makefile.am: "make distcheck" fixes.
4310
4311         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
4312         key in @srcdir@.
4313
4314         * test/Makefile.am: "make distcheck" fixes.
4315
4316 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4317
4318         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
4319
4320         * doc/busconfig.dtd: update the DTD for the at_console attribute.
4321
4322         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
4323         messages after the first one (bug #1389).
4324         
4325         * bus/dispatch.c (check_double_hello_message): add a test case for
4326         the double hello message bug.
4327         (check_existent_service_activation): fix check of spawning error.
4328         
4329 2004-09-16  David Zeuthen  <david@fubar.dk>
4330
4331         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
4332
4333 2004-09-12  David Zeuthen  <david@fubar.dk>
4334
4335         Patch from Kay Sievers <kay.sievers@vrfy.org>
4336
4337         * bus/bus.c (bus_context_new):
4338         * bus/bus.h:
4339         * bus/main.c (usage)
4340         (main):
4341         Add commandline option --nofork to override configuration file
4342         setting.
4343
4344 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4345
4346         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
4347         compilers don't like it (bug #974).
4348
4349 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
4350
4351         * qt/connection.*: Applied patch by Jérôme Lodewyck
4352         <lodewyck@clipper.ens.fr> to integrate an existing
4353         connection into the Qt eventloop
4354
4355 2004-08-30  Jon Trowbridge  <trow@ximian.com>
4356
4357         * mono/BusDriver.cs: Added.  This is a class for interacting with
4358         the org.freedesktop.DBus service.
4359
4360         * mono/Message.cs: Added a mechanism to expose the message that is
4361         currently being dispatched via the static Message.Current
4362         property.  Added Message.Sender and Message.Destination
4363         properties.
4364
4365         * mono/Handler.cs: Expose the dispatched message via
4366         Message.Current when handling method calls.
4367
4368         * mono/Service.cs: Expose the dispatched message via
4369         Message.Current when handling signal emissions.
4370         
4371         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
4372         Connection.BaseService property.
4373
4374 2004-08-28  Havoc Pennington  <hp@redhat.com>
4375
4376         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
4377
4378         More fixes from Steve Grubb
4379         
4380         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
4381         (_dbus_listen_tcp_socket): fix fd leak
4382
4383         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
4384         EINTR to a bit lower in the code
4385
4386 2004-08-26  Jon Trowbridge  <trow@ximian.com>
4387
4388         * bus/driver.c (bus_driver_handle_service_exists): Respond with
4389         TRUE if we are inquiring about the existence of the built-in
4390         org.freedesktop.DBus service.
4391
4392 2004-08-25  John Palmieri  <johnp@redhat.com>
4393         * bus/config-parser.c:
4394         (struct PolicyType): Add POLICY_CONSOLE
4395         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
4396         (start_busconfig_child): Sets up console element when
4397         <policy at_console=""> is encountered in a policy file
4398         (append_rule_from_element): Convert console elements to console
4399         rules.
4400
4401         * bus/policy.c: 
4402         (bus_policy_create_client_policy): Add console rules to the client
4403         policy based on if the client is at the console
4404         (bus_policy_append_console_rule): New function for adding a
4405         console rule to a policy
4406         (bus_policy_merge): Handle console rule merging
4407
4408         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
4409         where we check for console user files
4410         
4411         * dbus/dbus-sysdeps.c:
4412         (_dbus_file_exists): New function which checks if the given
4413         file exists
4414         (_dbus_user_at_console): New function which does the system
4415         specific process of checking if the user is at the console
4416
4417         * dbus/dbus-userdb.c:
4418         (_dbus_is_console_user): New function converts a UID to user name
4419         and then calls the system specific _dbus_user_at_console to 
4420         see if the user is at the console and therefor a console user
4421
4422 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4423
4424         * bus/config-parser.c (set_limit):
4425         * bus/dbus-daemon-1.1.in:
4426         * test/data/valid-config-files/many-rules.conf: set the
4427         max_match_rules_per_connection limt from the config file. 
4428
4429         * doc/busconfig.dtd: update the DTD.
4430
4431         * bus/driver.c: remove some unused variables.
4432
4433 2004-08-24  Mikael Hallendal  <micke@imendio.com>
4434
4435         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
4436         it's been replaced by dbus_g_bus_get
4437
4438 2004-08-23  Colin Walters  <walters@redhat.com>
4439
4440         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4441
4442         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
4443
4444         * bus/selinux.c: Create a thread for policy reload notification.
4445         (bus_selinux_get_policy_root): Implement.
4446
4447         * bus/config-parser.c (start_busconfig_child)
4448         (bus_config_parser_content): Support SELinux-root relative
4449         inclusion.
4450
4451         * configure.in <HAVE_SELINUX>: Add -lpthread.
4452         
4453         * bus/test-main.c (test_pre_hook, test_post_hook): New.
4454         (test_post_hook): Move memory checking into here.
4455         (test_pre_hook, test_post_hook): Move SELinux checks in
4456         here, but conditional on a DBUS_TEST_SELINUX environment
4457         variable.  Unfortunately we can't run the SELinux checks
4458         as a normal user, since they won't have any permissions
4459         for /selinux.  So this will have to be tested manually
4460         for now, until we have virtualization for most of
4461         libselinux.
4462         
4463 2004-08-23  Havoc Pennington  <hp@redhat.com>
4464
4465         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
4466         drop supplementary groups, suggested by Steve Grubb
4467
4468 2004-08-20  Colin Walters  <walters@redhat.com>
4469
4470         * bus/config-parser.c (start_busconfig_child): Remove some unused
4471         variables.
4472         
4473         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
4474         warning.
4475
4476 2004-08-17  Joe Shaw  <joeshaw@novell.com>
4477
4478         * configure.in: If --enable-mono is passed in, if we can't find
4479         mono error out.
4480
4481         * mono/Makefile.am: Use /gacutil to install assemblies into the
4482         GAC and not /root.
4483
4484 2004-08-12  Havoc Pennington  <hp@redhat.com>
4485
4486         * NEWS: update for 0.22
4487
4488         * configure.in: release 0.22
4489
4490 2004-08-11  Colin Walters  <walters@redhat.com>
4491
4492         * tools/dbus-send.c (main, usage): Add --reply-timeout
4493         argument.
4494
4495 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4496
4497         * bus/bus.c (process_config_first_time_only): get rid of an unused
4498         DBusError that was causing a memoy leak (bug #989).
4499
4500         * dbus/dbus-keyring.c, dbus/dbus-message.c:
4501         fix compilation on Solaris/Forte C (bug #974)
4502
4503         * bus/main.c (main): plug two minuscule memleaks.
4504
4505 2004-08-10  Havoc Pennington  <hp@redhat.com>
4506
4507         * doc/dbus-tutorial.xml: add some more info on GLib bindings
4508
4509 2004-08-09  Havoc Pennington  <hp@redhat.com>
4510
4511         * COPYING: switch to Academic Free License version 2.1 instead of
4512         2.0, to resolve complaints about patent termination clause.
4513
4514 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
4515
4516         * README: added documentation for the --enable-python 
4517         configure switch.
4518
4519 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4520
4521         * bus/config-parser.c (bus_config_parser_new): fix an invalid
4522         _unref in the SELinux support.
4523
4524         * doc/busconfig.dtd: update DTD for SELinux support.
4525
4526         * bus/config-loader-libxml.c: fix error handler and parser
4527         initialisation/cleanup. OOM test now works with libxml2 HEAD.
4528
4529         * configure.in: remove the warning about libxml2.
4530
4531         * dbus/dbus-bus.c: silence doxygen warning.
4532
4533 2004-07-31  Colin Walters  <walters@redhat.com>
4534
4535         * configure.in: Move #error in SELinux check to its own line.
4536
4537 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4538
4539         * dbus/dbus-internals.h (_DBUS_SET_OOM):
4540         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
4541         dbus_error_set.
4542
4543         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
4544         broken by the change in the _SET_OOM macros.
4545
4546 2004-07-31  Colin Walters  <walters@redhat.com>
4547
4548         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
4549         BUS_SET_OOM.
4550
4551 2004-07-31  Colin Walters  <walters@redhat.com>
4552
4553         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
4554         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
4555         AC_MSG_CHECKING.
4556
4557 2004-07-24  Havoc Pennington  <hp@redhat.com>
4558
4559         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4560
4561         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
4562         functionality
4563
4564         * configure.in: add --enable-selinux
4565         
4566         * bus/policy.c (bus_policy_merge): add FIXME to a comment
4567
4568         * bus/main.c (main): initialize and shut down selinux
4569
4570         * bus/connection.c: store SELinux ID on each connection, to avoid 
4571         repeated getting of the string context and converting it into 
4572         an ID
4573
4574         * bus/bus.c (bus_context_get_policy): new accessor, though it
4575         isn't used
4576         (bus_context_check_security_policy): check whether the security
4577         context of sender connection can send to the security context of
4578         recipient connection
4579
4580         * bus/config-parser.c: add parsing for <selinux> and <associate>
4581         
4582         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
4583         implement dbus_connection_get_unix_fd()
4584
4585         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
4586         function, used by the selinux stuff
4587         
4588 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4589
4590         * bus/config-loader-libxml.c: complete the implementation of
4591         libxml backend for config file loader. Doesn't work with full OOM
4592         test yet. 
4593         
4594         * configure.in: change error when selecting libxml into a warning.
4595         
4596         * test/data/invalid-config-files: add two non-well-formed XML
4597         files. 
4598         
4599         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
4600         
4601         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
4602         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
4603         be necessary to read all the buffer. (bug #894)
4604
4605         * bus/activation.c (bus_activation_activate_service): fix a
4606         potential assertion failure (bug #896). Small optimization in the
4607         case of auto-activation messages.
4608
4609         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
4610         add test case for byte-through-vararg bug (#901). patch by Kimmo
4611         Hämäläinen. 
4612
4613 2004-07-28  Anders Carlsson  <andersca@gnome.org>
4614
4615         * python/dbus.py:
4616         * python/dbus_bindings.pyx.in:
4617         Add dbus.init_gthreads (), allow emit_signal to pass
4618         arguments to the signal.
4619         
4620 2004-07-24  Havoc Pennington  <hp@redhat.com>
4621
4622         * AUTHORS: add some people, not really comprehensively, let me
4623         know if I missed you
4624
4625 2004-07-24  Havoc Pennington  <hp@redhat.com>
4626
4627         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
4628         Owen
4629
4630         * test/Makefile.am (DIST_SUBDIRS): here also
4631
4632 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4633
4634         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
4635         breaking build on Solaris, reported by Farhad Saberi on the ML.
4636
4637         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
4638         va_arg invocation to account for integer promotion in the case of
4639         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
4640
4641         * bus/services.c (bus_service_remove_owner): fix bug #902, use
4642         _dbus_list_get_first_link, not _dbus_list_get_first.
4643
4644         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
4645
4646         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
4647         handler functions so that the asserts in _dbus_object_subtree_unref
4648         do not fail.
4649
4650         * dbus/dbus-transport-unix.c (do_reading):
4651         _dbus_transport_queue_messages return value is of type
4652         dbus_bool_t, not DBusDispatchStatus.
4653         
4654 2004-07-19  David Zeuthen  <david@fubar.dk>
4655
4656         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
4657
4658         * bus/dispatch.c:
4659         (check_get_connection_unix_user): Debug says GetProperty; but the
4660         method is called GetConnectionUnixUser
4661         (check_get_connection_unix_process_id): New function
4662         (bus_dispatch_test): Actually call check_get_connection_unix_user();
4663         also call check_get_connection_unix_process_id()
4664         
4665         * bus/driver.c:
4666         (bus_driver_handle_get_connection_unix_process_id): New function,
4667         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
4668         interface
4669         
4670         * dbus/dbus-auth.c:
4671         (handle_server_data_external_mech): Set pid from the credentials
4672         obtained from the socket
4673         
4674         * dbus/dbus-connection.c:
4675         (dbus_connection_get_unix_process_id): New function
4676         
4677         * dbus/dbus-connection.h: 
4678         Add prototype for dbus_connection_get_unix_process_id
4679         
4680         * dbus/dbus-transport.c:
4681         (_dbus_transport_get_unix_process_id): New function
4682         
4683         * dbus/dbus-transport.h:
4684         Add prototype for _dbus_transport_get_unix_process_id
4685         
4686 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4687
4688         * dbus/dbus-message.c: Message counter fix, patch by Christian
4689         Hammond <chipx86@gnupdate.org>
4690
4691 2004-07-18  Seth Nickell  <seth@gnome.org>
4692
4693         * python/dbus.py:
4694         * python/dbus_bindings.pyx.in:
4695         * python/tests/test-client.py:
4696
4697         Add dbus.ByteArray and dbus_bindings.ByteArray
4698         types so that byte streams can be passed back.
4699
4700         Give jdahlin the heaps of credit that are so
4701         rightfully his.
4702         
4703 2004-07-12  Seth Nickell  <seth@gnome.org>
4704
4705         * python/dbus.py:
4706
4707         Add message argument to the default object_method_handler
4708         function.
4709         
4710         * python/dbus_bindings.pyx.in:
4711
4712         Automatically return NIL when passed an empty list
4713         (we can't pass back a list since lists are typed
4714         and we don't have any idea what type the the client
4715         intended the list to be... :-( )
4716         
4717 2004-07-10  Seth Nickell  <seth@gnome.org>
4718
4719         * python/examples/Makefile.am:
4720
4721         Fix distcheck breakage caused by new examples.
4722
4723 2004-07-10  Seth Nickell  <seth@gnome.org>
4724
4725         * python/dbus.py:
4726
4727         Add "message" argument to service-side dbus.Object
4728         methods. This will break existing services written
4729         using the python bindings, but will allow extraction
4730         of all the message information (e.g. who its from).
4731
4732         Add improved "object oriented" signal handling/emission.
4733         
4734         * python/examples/example-service.py:
4735
4736         Nix this example.
4737         
4738         * python/examples/example-signal-emitter.py:
4739         * python/examples/example-signal-recipient.py:
4740
4741         Two new examples that show how to emit and receive
4742         signals using the new APIs.
4743         
4744         * python/examples/example-signals.py:
4745         * python/examples/gconf-proxy-service.py:
4746         * python/examples/gconf-proxy-service2.py:
4747
4748         Add "message" argument to service methods.
4749
4750 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
4751
4752         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
4753         * dbus/bus.c (dbus_bus_get_unix_user)
4754         * doc/dbus-specification.xml: implement GetConnectionUnixUser
4755         method of org.freedesktop.DBus interface.
4756
4757         * bus/dispatch.c: test case
4758
4759 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
4760
4761         * python/Makefile.am: switched include directory from glib/ to dbus/
4762         since dbus-glib.h moved
4763  
4764 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4765
4766         * configure.in: prevent building the gcj stuff and libxml loader
4767         since they are broken.
4768
4769 2004-06-20  Havoc Pennington  <hp@redhat.com>
4770
4771         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
4772         codes from the dbus error names
4773         
4774         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
4775         as dbus/dbus-glib.h and that breakage is now visible due to 
4776         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
4777         
4778         * glib/dbus-glib.h: s/gproxy/g_proxy/
4779
4780         * dbus/dbus-shared.h: new header to hold stuff shared with
4781         binding APIs
4782         
4783         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
4784         than dbus-errors.h
4785
4786         * glib/dbus-glib.h (dbus_set_g_error): move to
4787         dbus-glib-lowlevel.h
4788
4789         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
4790         of stuff to enable this
4791
4792         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
4793
4794         * a bunch of other changes with the same basic "separate glib 
4795         bindings from dbus.h" theme
4796         
4797 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
4798
4799         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
4800
4801         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
4802
4803 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4804
4805         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
4806         the reply value of the ServiceExists message.
4807
4808 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
4809
4810         * python/dbus_bindings.pyx.in: No longer need to parse path
4811         elements and pass them as arrays of strings.  The C API now
4812         accepts plain path strings.
4813         (_build_parsed_path): removed 
4814
4815 2004-06-07  Havoc Pennington  <hp@redhat.com>
4816
4817         * doc/TODO: remove auto-activation item since it's done; sort
4818         items by importance/milestone
4819
4820 2004-06-07  Havoc Pennington  <hp@redhat.com>
4821
4822         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
4823         random signature when using REQUIRED_FIELDS (this hack won't work
4824         in the long term)
4825
4826         * dbus/dbus-message.c: change the signature to be a header field,
4827         instead of message->signature special-case string. Incremental
4828         step forward. Then we can fix up code to send the signature in the
4829         message, then fix up code to validate said signature, then fix up
4830         code to not put the typecodes inline, etc.
4831         (load_one_message): don't make up the signature after the fact
4832         (decode_header_data): require signature field for the known
4833         message types
4834
4835         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
4836
4837         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
4838
4839 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
4840
4841         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
4842
4843         * mono/Handler.cs: Updated to follow new path argument for
4844         (un-)registering objects.
4845
4846         * mono/example/Makefile.am:
4847         * mono/Makefile.am:
4848         * configure.in: Bumped required version for mono and use new -pkg
4849         syntax for deps
4850
4851 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4852
4853         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
4854         registration functions take the path argument as char* instead of
4855         char**.
4856
4857         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
4858         split off the path decompostion part of
4859         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
4860         warnings. 
4861
4862         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
4863         
4864 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
4865  
4866         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
4867         machine approach.  A state is implemented as a function that
4868         handles incoming events as specified for that state.
4869         
4870         * doc/dbus-specification.xml: Update auth protocol state machine
4871         specification to match implementation.  Remove some leftover
4872         base64 examples.
4873
4874 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
4875
4876         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
4877         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
4878         quiet doxygen.
4879
4880         * Doxyfile.in: remove deprecated options.
4881
4882         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
4883         glib/test-thread.h, glib/test-thread-client.c,
4884         glib/test-thread-server.c, glib/test-profile.c,
4885         glib/test-dbus-glib.c: remove these unused files.
4886
4887 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4888
4889         * dbus/dbus-object-tree.c
4890         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
4891         non-fallback handlers (bug #684).
4892         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
4893         (find_subtree_recurse): report wether the returned subtree is an
4894         exact match or a "fallback" match higher up in the tree.
4895         (object_tree_test_iteration): update test case.
4896
4897 2004-06-01  Seth Nickell  <seth@gnome.org>
4898
4899         * python/dbus_bindings.pyx.in:
4900         * python/tests/test-client.py:
4901
4902         Round off basic type support. Add dicts (yay!), and 
4903         remaining array types.
4904
4905         Make MessageIter more general so it works for dicts too.
4906
4907         Mark all loop variables as C integers.
4908         
4909 2004-05-31  Havoc Pennington  <hp@redhat.com>
4910
4911         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
4912         "in" before "out"
4913
4914         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
4915
4916         * glib/dbus-glib-tool.c (main): set up to have a --self-test
4917         option that runs the tests, and start filling in some code
4918         including for starters just dumping the interfaces to stdout
4919
4920         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
4921
4922         * test/data/valid-introspection-files/lots-of-types.xml: test of
4923         an example introspection file
4924
4925         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
4926         "node" (I think...)
4927
4928 2004-05-31  Seth Nickell  <seth@gnome.org>
4929
4930         * python/dbus_bindings.pyx.in:
4931         * python/tests/test-client.py:
4932
4933         Test Suite: 1
4934         Python Bindings: 0
4935
4936         Fix string array memory trashing bug... oops...
4937
4938 2004-05-30  Seth Nickell  <seth@gnome.org>
4939
4940         * python/dbus.py:
4941
4942         Add a nicer-but-less-flexible alternate API for handling 
4943         calls to virtual objects in dbus.ObjectTree.
4944
4945         Screw up the argument order to the dbus.Object constructor
4946         for consistency with dbus.ObjectTree (and to make dbus_methods
4947         optional for future extension)
4948         
4949         * python/examples/Makefile.am:
4950         * python/examples/gconf-proxy-service.py:
4951         * python/examples/gconf-proxy-service2.py:
4952
4953         Alternate implementation of gconf-proxy-service using the
4954         nicer dbus.ObjectTree API.
4955         
4956         * python/examples/example-service.py:
4957         * python/tests/test-server.py
4958
4959         Reverse the argument order to deal with dbus.Object constructor
4960         changes.
4961         
4962 2004-05-30  Seth Nickell  <seth@gnome.org>
4963
4964         * python/examples/example-client.py:
4965         * python/examples/example-service.py:
4966
4967         Take it back. Lists seem to work but they're broken
4968         in the test suite. Make the base examples use
4969         lists (works fine).
4970
4971 2004-05-30  Seth Nickell  <seth@gnome.org>
4972
4973         * python/dbus_bindings.pyx.in:
4974         * python/tests/test-client.py:
4975
4976         Add some more tests and fix errors that crop up.
4977         Unfortunately, currently it seems like marshalling
4978         and unmarshalling of lists is completely broken :-(
4979
4980 2004-05-30  Seth Nickell  <seth@gnome.org>
4981
4982         * python/dbus_bindings.pyx.in:
4983
4984         Add support for ObjectPath type.
4985
4986         * python/dbus.py:
4987
4988         Refactor message handling code to a common function.
4989         
4990         * python/tests/test-client.py:
4991         * python/tests/test-server.py:
4992
4993         Add tests that check to make sure values of all types
4994         can be echoed from a service w/o mangling.
4995         
4996 2004-05-29  Seth Nickell  <seth@gnome.org>
4997
4998         * python/dbus.py:
4999
5000         Add ObjectTree class which allows implementation
5001         of trees of "virtual" objects. Basically the python
5002         wrapper for "register_fallback".
5003         
5004         * python/examples/Makefile.am
5005         * python/examples/gconf-proxy-client.py:
5006         * python/examples/gconf-proxy-service.py:
5007
5008         Implement a simple GConf proxy service that supports
5009         get/set on string and int GConf keys using the ObjectTree.
5010         
5011 2004-05-29  Seth Nickell  <seth@gnome.org>
5012
5013         * python/dbus.py:
5014         * python/examples/example-client.py:
5015         * python/examples/example-service.py:
5016         * python/examples/list-system-services.py:
5017
5018         Add SessionBus, SystemBus and ActivationBus classes
5019         so you don't need to know the special little BUS_TYPE
5020         flag.
5021         
5022 2004-05-29  Havoc Pennington  <hp@redhat.com>
5023
5024         * bus/config-parser.c (process_test_valid_subdir): temporarily
5025         stop testing config parser OOM handling, since expat has issues
5026         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
5027
5028         * bus/dbus-daemon-1.1.in: change requested_reply to
5029         send_requested_reply/receive_requested_reply so we can send the
5030         replies, not just receive them.
5031
5032         * bus/config-parser.c: parse the new
5033         send_requested_reply/receive_requested_reply
5034
5035         * bus/policy.c (bus_client_policy_check_can_send): add
5036         requested_reply argument and use it
5037
5038         * bus/bus.c (bus_context_check_security_policy): pass through
5039         requested_reply status to message send check
5040
5041         * bus/system.conf.in: adapt to requested_reply change
5042         
5043 2004-05-28  Havoc Pennington  <hp@redhat.com>
5044
5045         * test/glib/test-service-glib.c (main): remove unused variable
5046
5047         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
5048
5049         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
5050         from the enum, no longer in use.
5051
5052         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
5053         works right.
5054
5055         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
5056         whether error_name passed in is a valid error name.
5057
5058 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
5059
5060         * dbus/dbus-message.c (dbus_message_get_args): Added support for
5061         OBJECT_PATH and OBJECT_PATH_ARRAY
5062
5063 2004-05-28  Seth Nickell  <seth@gnome.org>
5064
5065         * python/examples/Makefile.am:
5066
5067         Forget to add Makefile.am. Do not pass go.
5068
5069 2004-05-28  Michael Meeks  <michael@ximian.com>
5070
5071         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
5072         fix no int64 case.
5073
5074         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
5075
5076         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
5077         (_dbus_message_iter_get_basic_type_array): impl.
5078         drastically simplify ~all relevant _get methods to use these.
5079         (_dbus_message_iter_append_basic_array),
5080         (dbus_message_iter_append_basic): impl
5081         drastically simplify ~all relevant _append methods to use these.
5082
5083         * dbus/dbus-message-builder.c (parse_basic_type) 
5084         (parse_basic_array, lookup_basic_type): impl.
5085         (_dbus_message_data_load): prune scads of duplicate /
5086         cut & paste coding.
5087
5088         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
5089         (_dbus_demarshal_basic_type): implement,
5090         (demarshal_and_validate_len/arg): beef up debug.
5091         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
5092
5093 2004-05-27  Seth Nickell  <seth@gnome.org>
5094
5095         * configure.in:
5096         * python/Makefile.am:
5097
5098         Include the example python apps in the tarball.
5099         
5100         * python/examples/list-system-services.py
5101
5102         Add a python new example that fetches the list of services
5103         from the system bus.
5104         
5105 2004-05-27  Seth Nickell  <seth@gnome.org>
5106
5107         * python/dbus.py:
5108         * python/dbus_bindings.pyx.in:
5109
5110         Fix failure to notify that a signal was not handled,
5111         resulted in hung functions.
5112         
5113 2004-05-25  Colin Walters  <walters@redhat.com>
5114
5115         * tools/dbus-monitor.c (main): Monitor all types of messages.
5116
5117 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
5118
5119         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
5120         which unregisters the object path and disposes the handler.
5121
5122 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
5123  
5124         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
5125          
5126         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
5127         operands to && so we call dbus_message_iter_next () for the last
5128         argument also.
5129
5130 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5131
5132         * dbus/dbus-object-tree.c
5133         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
5134         children even if the requested path isn't registered.
5135         (object_tree_test_iteration): test object_tree_list_registered.
5136
5137         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
5138         it to 0.
5139         
5140 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
5141
5142         * doc/TODO: Remove resolved items.
5143
5144         * bus/expirelist.h (struct BusExpireList): remove unused n_items
5145         field.
5146         
5147         * bus/connection.c (bus_connections_expect_reply): Enforce the
5148         per-connection limit on pending replies.
5149         
5150         Patch from Jon Trowbridge <trow@ximian.com>:
5151  
5152         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
5153         up a watch that triggers a config reload when one end of the pipe
5154         becomes readable.
5155         (signal_handler): Instead of doing the config reload in our SIGHUP
5156         handler, just write to the reload pipe and let the associated
5157         watch handle the reload when control returns to the main loop.
5158  
5159         * bus/driver.c (bus_driver_handle_reload_config): Added.
5160         Implements a ReloadConfig method for requesting a configuration
5161         file reload via the bus driver.
5162  
5163 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
5164
5165         * HACKING: Updated release instructions concerning the wiki page.
5166
5167 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
5168
5169         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
5170         filter against auth->allowed_mechs; we only add allowed mechs in
5171         record_mechanisms().
5172  
5173         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
5174         ALLOWED_MECHS to auth-script format so we can set the list of
5175         allowed mechanisms.
5176  
5177         * data/auth/client-out-of-mechanisms.auth-script: New test to
5178         check client disconnects when it is out of mechanisms to try.
5179  
5180         * dbus/dbus-auth.c (process_command): Remove check for lines
5181         longer that 1 MB; we only buffer up maximum 16 kB.
5182  
5183         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5184         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
5185         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
5186         assume there might be unused bytes.
5187  
5188         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
5189         client-out-of-mechs, it is handled in process_reject(). Move check
5190         for max failures to send_rejected(), as it's a server-only thing.
5191
5192         * dbus/dbus-auth.c: Factor out protocol reply code into functions
5193         send_auth(), send_data(), send_rejected(), send_error(),
5194         send_ok(), send_begin() and send_cancel().
5195
5196 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
5197
5198         Remove base64 encoding, replace with hex encoding. Original patch
5199         from trow@ximian.com, added error handling.
5200
5201         * dbus/dbus-string.c (_dbus_string_base64_encode)
5202         (_dbus_string_base64_decode): Remove.
5203         (_dbus_string_hex_decode): Add end_return argument so we can
5204         distinguish between OOM and invalid hex encoding.
5205         (_dbus_string_test): Remove base64 tests and add test case for
5206         invalid hex.
5207
5208         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
5209         Replace base64 with hex.
5210
5211         * test/data/auth/invalid-hex-encoding.auth-script: New test case
5212         for invalid hex encoded data in auth protocol.
5213
5214 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5215
5216         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
5217         leak.
5218
5219 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
5220
5221         * mono/dbus-sharp.dll.config.in: Added for GAC
5222         * mono/dbus-sharp.snk: Added for GAC
5223         * mono/Assembly.cs.in: Added for GAC
5224         * mono/Makefile.am: Changes for GAC installation        
5225         * configure.in: Added refs for dbus-sharp.dll.config.in and
5226         Assembly.cs.in. More fixes for mono testing
5227         * mono/example/Makefile.am: Changed var to CSC
5228         * Makefile.am: Changed flag name to DBUS_USE_CSC
5229
5230 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
5231
5232         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
5233         * mono/doc/*: Added documentation framework
5234         * configure.in: Added monodoc check
5235         * README: Added description of mono configure flags
5236
5237 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
5238
5239         * doc/dbus-specification.xml: Added a "Required" column to the 
5240         header fields table and changed the "zero or more" verbage in
5241         the above paragraph to read "The header must contain the required 
5242         named header fields and zero or more of the optional named header 
5243         fields".
5244         * test/data/invalid-messages/*.message: Added the required PATH 
5245         named header field to the tests so that they don't fail on 
5246         'Missing path field'
5247
5248 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
5249
5250         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
5251         the stack by implicitly defining variable and parameter types and
5252         removing the hack of defining C pointers as python objects and later
5253         casting them.
5254
5255 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
5256
5257         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
5258
5259 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
5260
5261         * mono/DBusType/Dict.cs: Handle empty dicts
5262         * mono/DBusType/Array.cs: Handle empty arrays
5263         * mono/Arguments.cs: Handle empty arguments
5264
5265 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
5266
5267         * dbus-sharp.pc.in: Modified to include include Libs and Requires
5268         field
5269
5270 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
5271
5272         * test/data/valid-messages/standard-*.message: Update message
5273         test scripts to new header field names.
5274
5275 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
5276
5277         * test/break-loader.c (randomly_do_n_things): tracked down buffer
5278         overflow to times_we_did_each_thing array which would chop off the
5279         first character of the failure_dir string. Increased the size of
5280         the array to 7 to reflect the number of random mutation functions
5281         we have.
5282
5283 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
5284
5285         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
5286         unix_server->watch here, it is unreffed in disconnect.
5287         (_dbus_server_new_for_tcp_socket): convert NULL host to
5288         "localhost" here so we don't append NULL to address.
5289         
5290         * dbus/dbus-server.c (_dbus_server_test): Add test case for
5291         various addresses, including tcp with no explicit host.
5292
5293 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5294
5295         * dbus/dbus-message.c (decode_header_data, decode_string_field):
5296         fix incorrect setting of .name_offset in the HeaderField (it was
5297         off by two bytes, positioned right after the name and typecode)
5298
5299         * bus/bus.c (bus_context_new, bus_context_unref): test before
5300         calling dbus_server_free_data_slot and _dbus_user_database_unref
5301         in case of an error.
5302
5303         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
5304         by libdbus-gtool.
5305
5306 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
5307
5308         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
5309         _dbus_poll() instead of select().
5310
5311 2004-04-15  Jon Trowbridge  <trow@ximian.com>
5312
5313         * bus/main.c (signal_handler): Reload the configuration files
5314         on SIGHUP.
5315         (main): Set up our SIGHUP handler.
5316
5317         * bus/bus.c (struct BusContext): Store the config file, user and
5318         fork flag in the BusContext.
5319         (process_config_first_time_only): Added.  Contains the code
5320         (previously in bus_context_new) for setting up the BusContext from
5321         the BusConfigParser that should only be run the first time the
5322         config files are read.
5323         (process_config_every_time): Added.  Contains the code (previously
5324         in bus_context_new) for setting up the BusContext from the
5325         BusConfigParser that should be run every time the config files are
5326         read.
5327         (load_config): Added.  Builds a BusConfigParser from the config
5328         files and passes the resulting structure off to
5329         process_config_first_time_only (assuming this is the first time)
5330         and process_config_every_time.
5331         (bus_context_new): All of the config-related code has been moved
5332         to process_config_first_time_only and process_config_every_time.
5333         Now this function just does the non-config-related initializations
5334         and calls load_config.
5335         (bus_context_reload_config): Added.
5336
5337 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5338
5339         * bus/driver.c (bus_driver_handle_get_service_owner):
5340         implement a GetServiceOwner method.
5341         * doc/dbus-specification.xml: document it.
5342         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
5343         
5344         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
5345         implement, using the bus GetServiceOwner method.
5346
5347         * test/glib/test-dbus-glib.c:
5348         use dbus_gproxy_new_for_service_owner so that we can receive the
5349         signal. 
5350
5351 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
5352
5353         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5354         dbus/dbus-message.c, dbus/dbus-protocol.h
5355         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
5356
5357         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5358         dbus/dbus-message.c, dbus/dbus-protocol.h
5359         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
5360
5361         * dbus/dbus-internals.c (_dbus_header_field_to_string):
5362         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
5363         DBUS_HEADER_FIELD_SENDER resolves to "sender"
5364
5365         * doc/dbus-specification.xml (Header Fields Table):
5366         s/SERVICE/DESTINATION
5367         s/SENDER_SERVICE/SENDER
5368
5369
5370 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5371
5372         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
5373         a few seconds.
5374
5375 2004-04-13  Michael Meeks  <michael@ximian.com>
5376
5377         * glib/dbus-gobject.c (handle_introspect): split out
5378         (introspect_properties): this.
5379         (handle_introspect): implement this.
5380
5381         * test/glib/Makefile.am: use the absolute path so the bus
5382         daemon's chdir ("/") doesn't kill us dead.
5383
5384         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
5385
5386 2004-04-12  Jon Trowbridge  <trow@ximian.com>
5387
5388         * bus/config-parser.c (struct BusConfigParser): Added
5389         included_files field.
5390         (seen_include): Added.  Checks whether or not a file has already
5391         been included by any parent BusConfigParser.
5392         (bus_config_parser_new): Copy the parent's included_files.
5393         (include_file): Track which files have been included, and fail on
5394         circular inclusions.
5395         (process_test_valid_subdir): Changed printf to report if we are
5396         testing valid or invalid conf files.
5397         (all_are_equiv): Changed printf to be a bit clearer about
5398         what we are actually doing.
5399         (bus_config_parser_test): Test invalid configuration files.
5400
5401 2004-04-09  Jon Trowbridge  <trow@ximian.com>
5402
5403         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
5404         argument.  If non-null, the newly-constructed BusConfigParser will
5405         be initialized with the parent's BusLimits instead of the default
5406         values.
5407         (include_file): When including a config file, pass in
5408         the current parser as the parent and then copy the BusLimits
5409         from the included BusConfigParser pack to the current parser.
5410         (process_test_valid_subdir): Renamed from process_test_subdir.
5411         (process_test_equiv_subdir): Added.  Walks through a directory,
5412         descending into each subdirectory and loading the config files
5413         it finds there.  If any subdirectory contains two config files
5414         that don't produce identical BusConfigParser structs, fail.
5415         For now, the BusConfigParser's BusPolicies are not compared.
5416         (bus_config_parser_test): Call both process_test_valid_subdir and
5417         process_test_equiv_subdir.
5418
5419         * bus/config-loader-libxml.c (bus_config_load): Take a parent
5420         argument and pass it along to the call to bus_config_parser_new.
5421         Also made a few small changes to allow this code to compile.
5422
5423         * bus/config-loader-expat.c (bus_config_load): Take a parent
5424         argument and pass it along to the call to bus_config_parser_new.
5425
5426         * bus/bus.c (bus_context_new): Load the config file
5427         with a NULL parent argument.
5428
5429 2004-03-29  Michael Meeks  <michael@ximian.com>
5430
5431         * glib/dbus-gobject.c (introspect_properties): split
5432         out, fix mangled 'while' flow control.
5433         (introspect_signals): implement.
5434         (handle_introspect): update.
5435
5436 2004-03-29  Michael Meeks  <michael@ximian.com>
5437
5438         * glib/dbus-gobject.c (set_object_property): split out / 
5439         re-work, use the property type, and not the message type(!)
5440         (get_object_property): ditto.
5441
5442         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
5443         (dbus_gvalue_marshal): make this code re-usable, needed
5444         for signals too, also on both proxy and server side.
5445         Re-write for more efficiency / readability.
5446
5447 2004-03-29  Michael Meeks  <michael@ximian.com>
5448
5449         * dbus/dbus-message.c
5450         (dbus_message_new_error_printf): impl.
5451
5452         * dbus/dbus-connection.c
5453         (dbus_connection_unregister_object_path): fix warning.
5454
5455         * configure.in: fix no-mono-installed situation.
5456
5457 2004-03-27  Havoc Pennington  <hp@redhat.com>
5458
5459         Patch from Timo Teräs:
5460         
5461         * tools/dbus-send.c (main): if --print-reply, assume type is
5462         method call; support boolean type args
5463         
5464         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
5465         bunch of memleak and logic bugs
5466         
5467 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
5468
5469         * mono/Arguments.cs:
5470         * mono/Introspector.cs:
5471         * mono/Handler.cs:
5472         * mono/InterfaceProxy.cs:
5473         * mono/Message.cs
5474         * mono/ProxyBuilder.cs:
5475         * mono/Service.cs:
5476         Added InterfaceProxy class to avoid building proxies for every
5477         object.
5478
5479         * dbus-message.h:
5480         * dbus-message.c (dbus_message_append_args_valist)
5481         (dbus_message_iter_get_object_path)
5482         (dbus_message_iter_get_object_path_array)
5483         (dbus_message_iter_append_object_path)
5484         (dbus_message_iter_append_object_path_array):
5485         Added object_path iter functions to handle OBJECT_PATH arguments
5486         
5487 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
5488
5489         First checkin of mono bindings.
5490         * configure.in:
5491         * Makefile.am:
5492         Build stuff for the bindings
5493         * dbus-sharp.pc.in: Added for pkgconfig
5494         
5495 2004-03-21  Havoc Pennington  <hp@redhat.com>
5496
5497         * test/test-service.c (main): remove debug spew
5498
5499 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5500
5501         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
5502         arrays
5503
5504         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
5505         (dbus_message_iter_init_array_iterator)
5506         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
5507         indicate whether the iterator is empty
5508
5509         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
5510         warnings
5511
5512 2004-03-19  Havoc Pennington  <hp@redhat.com>
5513
5514         * NEWS: 0.21 updates
5515
5516         * configure.in: 0.21
5517
5518         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
5519         
5520         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
5521         you don't need pyrex to make dist
5522
5523         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
5524         sources; run moc
5525         
5526 2004-03-18  Richard Hult  <richard@imendio.com>
5527
5528         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
5529         (dbus_message_set_auto_activation): Add doxygen docs.
5530
5531 2004-03-16  Richard Hult  <richard@imendio.com>
5532
5533         * bus/activation.c: (bus_activation_service_created),
5534         (bus_activation_send_pending_auto_activation_messages),
5535         (bus_activation_activate_service):
5536         * bus/activation.h:
5537         * bus/dispatch.c: (bus_dispatch),
5538         (check_nonexistent_service_auto_activation),
5539         (check_service_auto_activated),
5540         (check_segfault_service_auto_activation),
5541         (check_existent_service_auto_activation), (bus_dispatch_test):
5542         * bus/driver.c: (bus_driver_handle_activate_service):
5543         * bus/services.c: (bus_registry_acquire_service):
5544         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
5545         (dbus_message_get_auto_activation):
5546         * dbus/dbus-message.h:
5547         * dbus/dbus-protocol.h: Implement auto-activation.
5548         
5549         * doc/dbus-specification.xml: Add auto-activation to the spec.
5550
5551 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5552
5553         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
5554         fix a bug with CUSTOM types.
5555
5556         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
5557         a unit test for this bug (used to fail).
5558
5559 2004-03-12  Mikael Hallendal  <micke@imendio.com>
5560
5561         * bus/activation.c:
5562         (babysitter_watch_callback): notify all pending activations waiting for
5563           the same exec that the activation failed.
5564         (bus_activation_activate_service): shortcut the activation if we 
5565           already waiting for the same executable to start up.
5566
5567 2004-03-12  Mikael Hallendal  <micke@imendio.com>
5568
5569         * bus/activation.c: 
5570         - Added service file reloading. 
5571           Each service files directory is kept in an hash table in 
5572           BusActivation and each BusActivationEntry knows what .service-file it
5573           was read from. So when you try to activate a service the bus will 
5574           check if it's been updated, removed or if new .service-files has 
5575           been installed.
5576         - Test code at the bottom for the service file reloading.
5577         * bus/test-main.c: (main):
5578         * bus/test.h:
5579         - added service reloading test.
5580         * dbus/dbus-sysdeps.c: 
5581         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
5582
5583 2004-03-08  Michael Meeks  <michael@ximian.com>
5584
5585         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
5586         bail immediately if disconnected, to avoid busy loop.
5587
5588         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
5589         cleanup cut/paste/inefficiency.
5590
5591 2004-03-01  David Zeuthen  <david@fubar.dk>
5592
5593         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
5594         bug where args were used twice. This bug resulted in a segfault
5595         on a Debian/PPC system when starting the messagebus daemon. Include
5596         dbus-sysdeps.h for DBUS_VA_COPY
5597
5598         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
5599
5600         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
5601         appropriate va_copy implementation. From GLib
5602         
5603 2004-02-24  Joe Shaw  <joe@ximian.com>
5604
5605         * bus/services.c (bus_registry_acquire_service): We need to pass
5606         in the service name to dbus_set_error() to prevent a crash.
5607
5608 2003-12-26  Anders Carlsson  <andersca@gnome.org>
5609
5610         * AUTHORS: Reveal my True identity.
5611
5612 2003-12-17  Mikael Hallendal  <micke@imendio.com>
5613
5614         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
5615         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
5616
5617 2003-12-13  Mikael Hallendal  <micke@imendio.com>
5618
5619         * doc/TODO: Added not about better error check of configuration files.
5620
5621 2003-12-02  Richard Hult  <richard@imendio.com>
5622
5623         * Update AFL version to 2.0 throughout the source files to reflect
5624         the update that was done a while ago.
5625
5626 2003-12-02  Richard Hult  <richard@imendio.com>
5627
5628         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
5629         wrote_dict_key to FALSE on the iter that the dict is appended to,
5630         just like when appending other types. Fixes a bug where a dict
5631         couldn't be put inside a dict.
5632         (dbus_message_iter_append_dict_key): Fix typo in warning message.
5633         (message_iter_test, _dbus_message_test): Add test case for dict
5634         inside dict.
5635
5636 2003-12-01  David Zeuthen  <david@fubar.dk>
5637
5638         * python/dbus.py: Add the actual message when calling the reciever
5639         of a signal such that parameters can be inspected. Add the method
5640         remove_signal_receiver
5641         
5642 2003-11-26  Mikael Hallendal  <micke@imendio.com>
5643
5644         * bus/*.[ch]:
5645         * dbus/*.[ch]:
5646         * glib/*.[ch]: Made ref functions return the pointer
5647
5648 2003-11-25  Zack Rusin  <zack@kde.org>
5649
5650         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
5651
5652         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
5653         wrappers,
5654
5655         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
5656         the Integrator and to better fit with the server,
5657
5658 2003-11-24  Zack Rusin  <zack@kde.org>
5659
5660         * qt/connection.h, qt/connection.cpp: removing initDbus method since
5661         the integrator handles it now
5662
5663         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
5664         since QTimer wasn't really meant to be used the way DBusTimeout is
5665
5666 2003-11-24  Zack Rusin  <zack@kde.org>
5667
5668         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
5669         Integrator class which integrates D-BUS with the Qt event loop,
5670
5671         * qt/connection.h, qt/connection.cpp: Move all the code which
5672         was dealing with D-BUS integration to the Integrator class,
5673         and start using Integrator,
5674
5675 2003-11-23  Zack Rusin  <zack@kde.org>
5676
5677         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
5678         wrapper
5679
5680         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
5681         switching namespaces to DBusQt, reworking the class,
5682
5683         * Makefile.cvs: switching dependencies so that it matches KDE 
5684         schematics,
5685         
5686         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
5687         the library
5688
5689 2003-11-19  Havoc Pennington  <hp@redhat.com>
5690
5691         * NEWS: update
5692
5693         * configure.in: bump version to 0.20
5694
5695         * configure.in (have_qt): add yet another place to look for qt
5696         (someone hand trolltech a .pc file...)
5697
5698 2003-11-01  Havoc Pennington  <hp@redhat.com>
5699
5700         * doc/dbus-specification.xml: add state machine docs on the auth
5701         protocol; just a first draft, I'm sure it's wrong.      
5702
5703 2003-10-28  David Zeuthen  <david@fubar.dk>
5704
5705         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
5706         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
5707         
5708 2003-10-28  Havoc Pennington  <hp@redhat.com>
5709
5710         * dbus/dbus-message.c (get_next_field): delete unused function
5711
5712 2003-10-28  Havoc Pennington  <hp@redhat.com>
5713
5714         * bus/expirelist.c (do_expiration_with_current_time): detect
5715         failure of the expire_func due to OOM
5716
5717         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
5718
5719         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
5720         NoReply error that's now created by the bus when the service exits
5721
5722 2003-10-28  Havoc Pennington  <hp@redhat.com>
5723
5724         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
5725         tests for set_path, set_interface, set_member, etc.
5726
5727         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
5728
5729         * dbus/dbus-message.c (set_string_field): always just delete and
5730         re-append the field; accept NULL for deletion
5731         (re_align_fields_recurse): reimplement
5732         
5733 2003-10-26  Havoc Pennington  <hp@redhat.com>
5734
5735         * dbus/dbus-connection.c: fix docs to properly describe the
5736         disconnected message
5737         (_dbus_connection_notify_disconnected): remove this function; 
5738         we can't synchronously add the disconnected message, we have to 
5739         do it after we've queued any remaining real messages
5740         (_dbus_connection_get_dispatch_status_unlocked): queue the
5741         disconnect message only if the transport has finished queueing all
5742         its real messages and is disconnected.
5743         (dbus_connection_disconnect): update the dispatch status here
5744
5745 2003-10-22  Havoc Pennington  <hp@redhat.com>
5746
5747         * bus/bus.c (bus_context_check_security_policy): fix up assertion
5748
5749         * bus/connection.c (bus_transaction_send_from_driver): set the
5750         destination to the connection's base service
5751
5752 2003-10-20  Havoc Pennington  <hp@redhat.com>
5753
5754         hmm, make check is currently not passing.
5755         
5756         * doc/dbus-specification.xml: add requirement that custom type
5757         names follow the same rules as interface names.
5758
5759         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
5760         duplication and allow 'c' to be 'custom'; dict is now 'm' for
5761         'map'
5762
5763         * doc/dbus-specification.xml: update type codes to match
5764         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
5765         CUSTOM. Add type OBJECT_PATH to the spec.
5766
5767 2003-10-17  Havoc Pennington  <hp@redhat.com>
5768
5769         * bus/driver.c (create_unique_client_name): use "." as separator
5770         in base service names instead of '-'
5771
5772         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
5773         byte at the end of the string
5774
5775         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
5776         optimization macros since string validation seems to be a slow
5777         point.
5778         
5779         * doc/dbus-specification.xml: restrict valid
5780         service/interface/member/error names. Add test suite code for the
5781         name validation.
5782
5783         * dbus/dbus-string.c: limit service/interface/member/error names 
5784         to [0-9][A-Z][a-z]_
5785
5786         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
5787         format arg to verbose spew
5788
5789         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
5790         memory, return instead of g_error
5791
5792         * test/test-service.c (path_message_func): support emitting a
5793         signal on request
5794
5795         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
5796         activation bus type if DBUS_BUS_ACTIVATION was set; default to
5797         assuming the activation bus was the session bus so that services
5798         started manually will still register.
5799         (init_connections_unlocked): fix so that in OOM situation we get
5800         the same semantics when retrying the function
5801         
5802         * test/test-service.c (main): change to use path registration, to
5803         test those codepaths; register with DBUS_BUS_ACTIVATION rather
5804         than DBUS_BUS_SESSION
5805
5806 2003-10-16  Havoc Pennington  <hp@redhat.com>
5807
5808         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
5809
5810         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
5811         coverage of the tests
5812         (coverage-report.txt): don't move the .da and .bbg files around
5813
5814 2003-10-16  Havoc Pennington  <hp@redhat.com>
5815
5816         * bus/bus.c (struct BusContext): remove struct field I didn't mean
5817         to put there
5818
5819 2003-10-16  Havoc Pennington  <hp@redhat.com>
5820
5821         * bus/connection.c (bus_pending_reply_expired): either cancel or
5822         execute, not both
5823         (bus_connections_check_reply): use unlink, not remove_link, as we
5824         don't want to free the link; fixes double free mess
5825
5826         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
5827         where no reply was received
5828
5829         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
5830         fix a refcount leak
5831
5832         * bus/signals.c (match_rule_matches): add special cases for the
5833         bus driver, so you can match on sender/destination for it.
5834
5835         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
5836         DBUS_PRINT_BACKTRACE is set
5837
5838         * dbus/dbus-internals.c: add pid to assertion failure messages
5839
5840         * dbus/dbus-connection.c: add message type code to the debug spew
5841
5842         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
5843         sender=foo not service=foo
5844
5845         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
5846         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
5847         DBUS_ACTIVATION_ADDRESS instead
5848
5849         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
5850         DBUS_SYSTEM_BUS_ADDRESS if appropriate
5851
5852         * bus/bus.c (bus_context_new): handle OOM copying bus type into
5853         context struct
5854
5855         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
5856         (dbus_message_iter_get_object_path_array): new function (half
5857         finished, disabled for the moment)
5858         
5859         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
5860         DBUS_MESSAGE_TYPE_ERROR
5861
5862         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
5863         avoid redirecting stderr to /dev/null
5864         (babysit): close stdin if not doing the "exit_with_session" thing
5865
5866         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
5867         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
5868         stdout/stdin, so things don't get confused
5869         
5870         * bus/system.conf.in: fix to allow replies, I modified .conf
5871         instead of .conf.in again.
5872
5873 2003-10-14  David Zeuthen  <david@fubar.dk>
5874
5875         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
5876         argtype to arg_type when raising unknown arg type exception.
5877         Changed type list to reflect the changes in dbus-protocol.h so 
5878         the bindings actually work.
5879
5880 2003-10-14  Havoc Pennington  <hp@redhat.com>
5881
5882         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
5883         to have a bug keeping it from outputting the .da files sometimes
5884         (string_get_string): don't append garbage nul bytes to the string.
5885
5886 2003-10-15  Seth Nickell  <seth@gnome.org>
5887
5888         * python/Makefile.am:
5889
5890         Include dbus_h_wrapper.h in the dist tarball.
5891
5892 2003-10-14  Havoc Pennington  <hp@redhat.com>
5893
5894         * bus/bus.c (bus_context_check_security_policy): revamp this to
5895         work more sanely with new policy-based requested reply setup
5896
5897         * bus/connection.c (bus_transaction_send_from_driver): set bus
5898         driver messages as no reply
5899
5900         * bus/policy.c (bus_client_policy_check_can_receive): handle a
5901         requested_reply attribute on allow/deny rules
5902
5903         * bus/system.conf: add <allow requested_reply="true"/>
5904
5905         * bus/driver.c (bus_driver_handle_message): fix check for replies
5906         sent to the bus driver, which was backward. How did this ever work
5907         at all though? I think I'm missing something.
5908
5909         * dbus/dbus-message.c (decode_header_data): require error and
5910         method return messages to have a reply serial field to be valid
5911         (_dbus_message_loader_queue_messages): break up this function;
5912         validate that reply serial and plain serial are nonzero; 
5913         clean up the OOM/error handling.
5914         (get_uint_field): don't return -1 from this
5915         (dbus_message_create_header): fix signed/unsigned bug
5916
5917         * bus/connection.c (bus_connections_expect_reply): save serial of
5918         the incoming message, not reply serial
5919
5920 2003-10-14  Havoc Pennington  <hp@redhat.com>
5921
5922         * bus/connection.c: implement pending reply tracking using
5923         BusExpireList
5924
5925         * bus/bus.c (bus_context_check_security_policy): verify that a
5926         reply is pending in order to allow a reply to be sent. Deny 
5927         messages of unknown type.
5928
5929         * bus/dbus-daemon-1.1.in: update to mention new resource limits
5930
5931         * bus/bus.c (bus_context_get_max_replies_per_connection): new
5932         (bus_context_get_reply_timeout): new
5933
5934 2003-10-13  Seth Nickell  <seth@gnome.org>
5935
5936         * python/Makefile.am:
5937
5938         Pass "make distcheck": remove a couple files from DIST_FILES
5939         that weren't included in the final version.
5940
5941 2003-10-12  Havoc Pennington  <hp@pobox.com>
5942
5943         Added test code that 1) starts an actual bus daemon and 2) uses
5944         DBusGProxy; fixed bugs that were revealed by the test. Lots 
5945         more testing possible, but this is the basic framework.
5946         
5947         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
5948         empty proxy lists from the proxy list hash
5949
5950         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
5951         couple of return_if_fail checks
5952
5953         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
5954         to allocate, so everything is cleared to NULL as it should be.
5955
5956         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
5957         source as data to dbus_connection_set_timeout_functions() as the 
5958         timeout functions expected
5959
5960         * test/glib/run-test.sh: add a little script to start up a message
5961         bus and run tests using it
5962
5963         * tools/dbus-launch.1: updates
5964
5965         * tools/dbus-launch.c (main): add --config-file option
5966
5967         * tools/dbus-launch.c (main): remove confusing else if (runprog)
5968         that could never be reached.
5969
5970         * dbus/dbus-message.c (dbus_message_new_method_return) 
5971         (dbus_message_new_error, dbus_message_new_signal): set the
5972         no-reply-expected flag on all these. Redundant, but may
5973         as well be consistent.
5974
5975 2003-10-11  Havoc Pennington  <hp@pobox.com>
5976
5977         * test/decode-gcov.c (function_solve_graph): make broken block
5978         graph a nonfatal error since it seems to be broken. Need to debug
5979         this.
5980
5981         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
5982         can't just check type > INVALID < LAST anymore
5983
5984         * dbus/dbus-message.c (dbus_message_get_signature): new function
5985         (dbus_message_has_signature): new function
5986         (struct DBusMessage): add signature field (right now it isn't sent
5987         over the wire, just generated on the fly)
5988         (dbus_message_copy): copy the signature, and init strings to
5989         proper length to avoid some reallocs
5990         (dbus_message_iter_init_array_iterator): return void, since it
5991         can't fail
5992         (dbus_message_iter_init_dict_iterator): return void since it can't fail
5993         (_dbus_message_loader_queue_messages): add silly temporary hack to
5994         fill in message->signature on load
5995
5996         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
5997         characters, so they are relatively human-readable.
5998
5999 2003-10-11  Havoc Pennington  <hp@pobox.com>
6000
6001         * dbus/dbus-message.c (_dbus_message_test): add more test
6002         coverage, but #if 0 for now since they uncover a bug 
6003         not fixed yet; I think in re_align_field_recurse()
6004         (re_align_field_recurse): add FIXME about broken assertion
6005
6006         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
6007
6008         * bus/connection.c: share a couple code bits with expirelist.c
6009
6010         * bus/expirelist.h, bus/expirelist.c: implement a generic
6011         expire-items-after-N-seconds facility, was going to share between
6012         expiring connections and replies, decided not to use for expiring
6013         connections for now.
6014
6015         * COPYING: include AFL 2.0 (still need to change all the file headers)
6016
6017 2003-10-09  Havoc Pennington  <hp@redhat.com>
6018
6019         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
6020         gcc 3.3. Not that we do anything about it yet.
6021
6022         * bus/signals.c (bus_match_rule_parse): impose max length on the
6023         match rule text
6024
6025         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
6026
6027 2003-10-09  Havoc Pennington  <hp@redhat.com>
6028
6029         Make matching rules theoretically work (add parser).
6030         
6031         * bus/bus.c (bus_context_check_security_policy): fix up to handle
6032         the case where destination is explicitly specified as bus driver
6033         and someone else is eavesdropping.
6034         
6035         * bus/policy.c (bus_client_policy_check_can_receive): fix up
6036         definition of eavesdropping and assertion
6037
6038         * tools/dbus-send.c (main): use dbus_message_type_from_string
6039
6040         * bus/signals.c (bus_match_rule_parse): implement
6041
6042         * dbus/dbus-message.c (dbus_message_type_from_string): new
6043
6044         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
6045
6046 2003-10-02  Havoc Pennington  <hp@pobox.com>
6047
6048         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
6049         dbus_gproxy_oneway_call
6050
6051         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
6052         (dbus_server_setup_with_g_main): fix to allow calling them more
6053         than once on the same args
6054         (dbus_bus_get_with_g_main): new function
6055
6056 2003-10-02  Havoc Pennington  <hp@redhat.com>
6057
6058         * doc/dbus-tutorial.xml: write some stuff
6059
6060 2003-09-29  Havoc Pennington  <hp@pobox.com>
6061
6062         * configure.in: split checks for Doxygen from XML docs, check for
6063         xmlto
6064
6065         * doc/Makefile.am: XML-ify all the docs, and add a blank
6066         dbus-tutorial.xml
6067
6068 2003-09-29  Havoc Pennington  <hp@pobox.com>
6069
6070         * Merge dbus-object-names branch. To see the entire patch 
6071         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
6072         it's huuuuge though.
6073         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
6074         
6075 2003-09-28  Havoc Pennington  <hp@pobox.com>
6076
6077         * HACKING: update to reflect new server
6078
6079 2003-09-26  Seth Nickell  <seth@gnome.org>
6080
6081         * python/dbus.py:
6082         * python/examples/example-signals.py:
6083
6084         Start implementing some notions of signals. The API
6085         is really terrible, but they sort of work (with the
6086         exception of being able to filter by service, and to
6087         transmit signals *as* a particular service). Need to
6088         figure out how to make messages come from the service
6089         we registered :-(
6090         
6091         * python/dbus_bindings.pyx.in:
6092
6093         Removed duplicate message_handler callbacks.
6094         
6095 2003-09-25  Havoc Pennington  <hp@redhat.com>
6096
6097         * bus/session.conf.in: fix my mess
6098
6099 2003-09-25  Havoc Pennington  <hp@pobox.com>
6100
6101         * bus/session.conf.in: fix security policy, reported by Seth Nickell
6102
6103 2003-09-25  Seth Nickell  <seth@gnome.org>
6104
6105         * python/examples/example-service.py:
6106
6107         Johan notices complete wrong code in example-service, but
6108         completely wrong in a way that works exactly the same (!).
6109         Johan is confused, how could this possibly work? Example
6110         code fails to serve purpose of making things clear.
6111         Seth fixes.
6112
6113 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
6114
6115         * doc/dbus-specification.sgml: don't require header fields
6116         to be 4-byte aligned and specify that fields should be
6117         distinguished from padding by the fact that zero is not
6118         a valid field name.
6119         
6120         * doc/TODO: remove re-alignment item and add item to doc
6121         the OBJECT_PATH type.
6122         
6123         * dbus/dbus-message.c:
6124         (HeaderField): rename the original member to value_offset
6125         and introduce a name_offset member to keep track of where
6126         the field actually begins.
6127         (adjust_field_offsets): remove.
6128         (append_int_field), (append_uint_field),
6129         (append_string_field): don't align the start of the header
6130         field to a 4-byte boundary.
6131         (get_next_field): impl finding the next marhsalled field
6132         after a given field.
6133         (re_align_field_recurse): impl re-aligning a number of
6134         already marshalled fields.
6135         (delete_field): impl deleting a field of any type and
6136         re-aligning any following fields.
6137         (delete_int_or_uint_field), (delete_string_field): remove.
6138         (set_int_field), (set_uint_field): no need to re-check
6139         that we have the correct type for the field.
6140         (set_string_field): ditto and impl re-aligning any
6141         following fields.
6142         (decode_header_data): update to take into account that
6143         the fields aren't 4-byte aligned any more and the new
6144         way to distinguish padding from header fields. Also,
6145         don't exit when there is too much header padding.
6146         (process_test_subdir): print the directory.
6147         (_dbus_message_test): add test to make sure a following
6148         field is re-aligned correctly after field deletion.
6149         
6150         * dbus/dbus-string.[ch]:
6151         (_dbus_string_insert_bytes): rename from insert_byte and
6152         allow the insert of multiple bytes.
6153         (_dbus_string_test): test inserting multiple bytes.
6154
6155         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
6156         warning note to docs about having to re-align any
6157         marshalled values following the string.
6158         
6159         * dbus/dbus-message-builder.c:
6160         (append_string_field), (_dbus_message_data_load):
6161         don't align the header field.
6162         
6163         * dbus/dbus-auth.c: (process_test_subdir): print the
6164         directory.
6165         
6166         * test/break-loader.c: (randomly_add_one_byte): upd. for
6167         insert_byte change.
6168         
6169         * test/data/invalid-messages/bad-header-field-alignment.message:
6170         new test case.
6171         
6172         * test/data/valid-messages/unknown-header-field.message: shove
6173         a dict in the unknown field.
6174
6175 2003-09-25  Seth Nickell  <seth@gnome.org>
6176
6177         * python/dbus.py:
6178         * python/dbus_bindings.pyx.in:
6179
6180         Handle return values.
6181         
6182         * python/examples/example-client.py:
6183         * python/examples/example-service.py:
6184
6185         Pass back return values from the service to the client.
6186         
6187 2003-09-24  Seth Nickell  <seth@gnome.org>
6188
6189         * python/dbus.py:
6190
6191         Connect Object methods (when you are sharing an object) up... pass
6192         in a list of methods to be shared. Sharing all the methods just
6193         worked out too weird. You can now create nice Services over the
6194         DBus in Python. :-)
6195         
6196         * python/dbus_bindings.pyx.in:
6197
6198         Keep references to user_data tuples passed into C functions so 
6199         Python doesn't garbage collect on us.
6200
6201         Implement MethodReturn and Error subclasses of Message for creating
6202         DBusMessage's of those types.
6203         
6204         * python/examples/example-client.py:
6205         * python/examples/example-service.py:
6206
6207         Simple example code showing both how create DBus services and objects,
6208         and how to use them.
6209
6210 2003-09-23  Havoc Pennington  <hp@pobox.com>
6211
6212         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
6213
6214 2003-09-23  Havoc Pennington  <hp@redhat.com>
6215
6216         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
6217         (dbus_gproxy_disconnect_signal): implement
6218         (dbus_gproxy_manager_remove_signal_match): implement
6219         (dbus_gproxy_manager_add_signal_match): implement
6220         (dbus_gproxy_oneway_call): implement
6221
6222 2003-09-23  Havoc Pennington  <hp@pobox.com>
6223
6224         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
6225         subclass. This means dropping the transparent thread safety of the
6226         proxy; you now need a separate proxy per-thread, or your own
6227         locking on the proxy. Probably right anyway.
6228         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
6229
6230 2003-09-22  Havoc Pennington  <hp@redhat.com>
6231
6232         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
6233
6234 2003-09-21  Seth Nickell  <seth@gnome.org>
6235
6236         First checkin of the Python bindings.
6237         
6238         * python/.cvsignore:
6239         * python/Makefile.am:
6240         * python/dbus_bindings.pyx.in:
6241         * python/dbus_h_wrapper.h:
6242
6243         Pieces for Pyrex to operate on, building a dbus_bindings.so
6244         python module for low-level access to the DBus APIs.
6245         
6246         * python/dbus.py:
6247
6248         High-level Python module for accessing DBus objects.
6249
6250         * configure.in:
6251         * Makefile.am:
6252
6253         Build stuff for the python bindings.
6254
6255         * acinclude.m4:
6256
6257         Extra macro needed for finding the Python C header files.
6258
6259 2003-09-21  Havoc Pennington  <hp@pobox.com>
6260
6261         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
6262         implementing the proxy manager, didn't get very far.
6263
6264         * dbus/dbus-bus.c (dbus_bus_add_match): new
6265         (dbus_bus_remove_match): new
6266
6267         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
6268         path_name argument; adjust the other not-yet-implemented 
6269         gproxy constructors to be what I think they should be.
6270
6271 2003-09-21  Havoc Pennington  <hp@pobox.com>
6272
6273         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
6274         by default for message bus connections.
6275
6276         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
6277         exit_on_disconnect flag is set and we process the disconnected
6278         signal.
6279         (dbus_connection_set_exit_on_disconnect): new function
6280
6281 2003-09-21  Havoc Pennington  <hp@pobox.com>
6282
6283         Get matching rules mostly working in the bus; only actually
6284         parsing the rule text remains. However, the client side of
6285         "signal connections" hasn't been started, this patch is only the
6286         bus side.
6287         
6288         * dbus/dispatch.c: fix for the matching rules changes
6289         
6290         * bus/driver.c (bus_driver_handle_remove_match)
6291         (bus_driver_handle_add_match): send an ack reply from these
6292         method calls
6293
6294         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
6295         arguments, reported by Seth Nickell
6296
6297         * bus/config-parser.c (append_rule_from_element): support
6298         eavesdrop=true|false attribute on policies so match rules 
6299         can be prevented from snooping on the system bus.
6300
6301         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
6302         and "destination" in attribute names; fix some docs bugs; 
6303         add eavesdrop=true|false attribute
6304
6305         * bus/driver.c (bus_driver_handle_add_match)
6306         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
6307         messages
6308
6309         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
6310         rid of broadcast service concept, signals are just always broadcast
6311
6312         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
6313         mostly implement matching rules stuff (currently only exposed as signal
6314         connections)
6315
6316 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
6317
6318         * doc/dbus-specification.sgml: Change the header field name
6319         to be an enum and update the rest of the spec to reference
6320         the fields using the conventinal name.
6321
6322         * dbus/dbus-protocol.h: update to reflect the spec.
6323
6324         * doc/TODO: add item to remove the 4 byte alignment requirement.
6325         
6326         * dbus/dbus-message.c: Remove the code to generalise the
6327         header/body length and serial number header fields as named
6328         header fields so we can reference field names using the 
6329         protocol values.
6330         (append_int_field), (append_uint_field), (append_string_field):
6331         Append the field name as a byte rather than four chars.
6332         (delete_int_or_uint_field), (delete_string_field): reflect the
6333         fact that the field name and typecode now occupy 4 bytes instead
6334         of 8.
6335         (decode_string_field), (decode_header_data): update to reflect
6336         protocol changes and move the field specific encoding from
6337         decode_string_field() back into decode_header_data().
6338         
6339         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
6340         Add utility to aid debugging.
6341         
6342         * dbus/dbus-message-builder.c:
6343         (append_string_field), (_dbus_message_data_load): Update to
6344         reflect protocol changes; Change the FIELD_NAME directive
6345         to HEADER_FIELD and allow it to take the field's conventional
6346         name rather than the actual value.
6347         
6348         * test/data/*/*.message: Update to use HEADER_FIELD instead
6349         of FIELD_NAME; Always align the header on an 8 byte boundary
6350         *before* updating the header length.
6351
6352 2003-09-15  Havoc Pennington  <hp@pobox.com>
6353
6354         * dbus/dbus-pending-call.c: add the get/set object data
6355         boilerplate as for DBusConnection, etc. Use generic object data
6356         for the notify callback.
6357
6358         * glib/dbus-gparser.c (parse_node): parse child nodes
6359
6360         * tools/dbus-viewer.c: more hacking on the dbus-viewer
6361         
6362         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
6363         contain functions shared between the convenience lib and the
6364         installed lib
6365
6366         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
6367         -export-symbols-regex to the GLib library
6368
6369         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
6370         fix the locking in here, and add a default handler for
6371         Introspect() that just returns sub-nodes.
6372
6373 2003-09-14  Havoc Pennington  <hp@pobox.com>
6374
6375         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
6376         rather than gfoo consistent
6377
6378         * glib/dbus-gproxy.h: delete for now, move contents to
6379         dbus-glib.h, because the include files don't work right since we
6380         aren't in the dbus/ subdir.
6381         
6382         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
6383         (dbus_gproxy_end_call): finish
6384         (dbus_gproxy_begin_call): finish
6385
6386         * glib/dbus-gmain.c (dbus_set_g_error): new
6387
6388         * glib/dbus-gobject.c (handle_introspect): include information
6389         about child nodes in the introspection
6390
6391         * dbus/dbus-connection.c (dbus_connection_list_registered): new
6392         function to help in implementation of introspection
6393
6394         * dbus/dbus-object-tree.c
6395         (_dbus_object_tree_list_registered_and_unlock): new function
6396
6397 2003-09-12  Havoc Pennington  <hp@pobox.com>
6398
6399         * glib/dbus-gidl.h: add common base class for all the foo_info
6400         types
6401
6402         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
6403         similar to kdcop
6404
6405         * test/Makefile.am: try test srcdir -ef . in addition to test
6406         srcdir = ., one of them should work (yeah lame)
6407         
6408         * glib/Makefile.am: build the "idl" parser stuff as a convenience
6409         library
6410         
6411         * glib/dbus-gparser.h: make description_load routines return
6412         NodeInfo* not Parser*
6413
6414         * Makefile.am (SUBDIRS): build test dir after all library dirs
6415
6416         * configure.in: add GTK+ detection
6417
6418 2003-09-07  Havoc Pennington  <hp@pobox.com>
6419
6420         * Make Doxygen contented.
6421
6422 2003-09-07  Havoc Pennington  <hp@pobox.com>
6423
6424         * doc/dbus-specification.sgml: more updates
6425
6426 2003-09-06  Havoc Pennington  <hp@pobox.com>
6427
6428         * doc/dbus-specification.sgml: partial updates
6429
6430         * bus/dbus-daemon-1.1.in: fix the config file docs for the
6431         zillionth time; hopefully I edited the right file this time.
6432
6433         * bus/config-parser.c (append_rule_from_element): support
6434         send_type, send_path, receive_type, receive_path
6435
6436         * bus/policy.c: add message type and path to the list of things
6437         that can be "firewalled"
6438
6439 2003-09-06  Havoc Pennington  <hp@pobox.com>
6440
6441         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
6442         (dbus_connection_register_object_path): make this not handle
6443         messages to paths below the given path
6444
6445 2003-09-03  Havoc Pennington  <hp@pobox.com>
6446
6447         * test/glib/Makefile.am: add this with random glib-linked test
6448         programs
6449
6450         * glib/Makefile.am: remove the random test programs from here,
6451         leave only the unit tests
6452
6453         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
6454         uscore/javacaps conversion, and fix     
6455         (get_object_property, set_object_property): change to .NET
6456         convention for mapping props to methods, set_FooBar/get_FooBar, 
6457         since one language has such a convention we may as well copy it. 
6458         Plus real methods in either getFooBar or get_foo_bar style won't 
6459         collide with this convention.
6460
6461 2003-09-01  Havoc Pennington  <hp@pobox.com>
6462
6463         * glib/dbus-gparser.c: implement
6464
6465         * glib/dbus-gobject.c: start implementing skeletons support
6466
6467         * configure.in: when disabling checks/assert, also define
6468         G_DISABLE_ASSERT and G_DISABLE_CHECKS
6469
6470 2003-09-01  Havoc Pennington  <hp@pobox.com>
6471
6472         * glib/Makefile.am: rearrange a bunch of files and get "make
6473         check" framework set up
6474
6475 2003-08-31  Havoc Pennington  <hp@pobox.com>
6476
6477         * fix build with --disable-tests
6478
6479 2003-08-30  Havoc Pennington  <hp@pobox.com>
6480
6481         * dbus/dbus-connection.c: purge DBusMessageHandler
6482
6483         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
6484         use callbacks everywhere
6485
6486 2003-08-30  Havoc Pennington  <hp@pobox.com>
6487
6488         * test/data/valid-config-files/system.d/test.conf: change to 
6489         root for the user so warnings don't get printed
6490
6491         * dbus/dbus-message.c: add dbus_message_get_path,
6492         dbus_message_set_path
6493         
6494         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
6495         dispatching to a path
6496
6497         * dbus/dbus-string.c (_dbus_string_validate_path): add
6498
6499         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
6500         (_dbus_marshal_object_path): implement
6501
6502         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
6503         to contain the path to the target object
6504         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
6505         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
6506
6507 2003-08-30  Havoc Pennington  <hp@pobox.com>
6508
6509         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
6510
6511 2003-08-29  Havoc Pennington  <hp@pobox.com>
6512
6513         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
6514         registered
6515         (struct DBusObjectSubtree): shrink this
6516         a lot, since we may have a lot of them
6517         (_dbus_object_tree_free_all_unlocked): implement
6518         (_dbus_object_tree_dispatch_and_unlock): implement
6519
6520 2003-08-29  Havoc Pennington  <hp@pobox.com>
6521
6522         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
6523
6524 2003-08-28  Havoc Pennington  <hp@pobox.com>
6525
6526         purge DBusObjectID
6527         
6528         * dbus/dbus-connection.c: port to no ObjectID, create a
6529         DBusObjectTree, rename ObjectTree to ObjectPath in public API
6530
6531         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
6532         everything except UnregisterFunction and MessageFunction
6533         
6534         * dbus/dbus-marshal.c: port away from DBusObjectID, 
6535         add DBUS_TYPE_OBJECT_PATH
6536         
6537         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
6538         dbus/dbus-objectid.[hc]: remove these, we are moving to 
6539         path-based object IDs
6540
6541 2003-08-25  Havoc Pennington  <hp@pobox.com>
6542
6543         Just noticed that dbus_message_test is hosed, I wonder when I
6544         broke that. I thought make check was passing earlier...
6545         
6546         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
6547         container tree, will replace most of dbus-object-registry
6548
6549         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
6550         screwup
6551
6552 2003-08-19  Havoc Pennington  <hp@pobox.com>
6553
6554         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
6555         (dbus_message_is_error): fix this function
6556
6557         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
6558         match
6559
6560         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
6561         reflect clarified man page
6562         (bus_client_policy_check_can_send): ditto
6563         
6564         * bus/session.conf.in: fixup
6565
6566         * bus/system.conf.in: fixup
6567
6568 2003-08-18  Havoc Pennington  <hp@redhat.com>
6569
6570         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
6571
6572         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
6573         dumb bug created earlier (wrong order of args to
6574         decode_header_data())
6575         
6576         * tools/dbus-send.c: port
6577
6578         * tools/dbus-print-message.c (print_message): port
6579
6580         * test/data/*messages: port all messages over
6581         
6582         * dbus/dbus-message-builder.c: support including 
6583         message type
6584         
6585         * bus/driver.c: port over
6586         
6587         * bus/dispatch.c: port over to new stuff
6588
6589         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6590         rename disconnect signal to "Disconnected"
6591
6592 2003-08-17  Havoc Pennington  <hp@pobox.com>
6593
6594         This doesn't compile yet, but syncing up so I can hack on it from
6595         work. What are branches for if not broken code? ;-)
6596         
6597         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
6598         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
6599         DBUS_HEADER_FIELD_ERROR_NAME
6600         
6601         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
6602         for the interface+member pairs
6603         (string_hash): change to use g_str_hash algorithm
6604         (find_direct_function, find_string_function): refactor these to
6605         share most code.
6606         
6607         * dbus/dbus-message.c: port all of this over to support 
6608         interface/member fields instead of name field
6609
6610         * dbus/dbus-object-registry.c: port over
6611         
6612         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
6613         from _dbus_string_validate_name
6614
6615         * bus/dbus-daemon-1.1: change file format for the 
6616         <deny>/<allow> stuff to match new message naming scheme
6617
6618         * bus/policy.c: port over
6619
6620         * bus/config-parser.c: parse new format
6621         
6622 2003-08-16  Havoc Pennington  <hp@pobox.com>
6623
6624         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
6625         broken assertion
6626
6627         * glib/dbus-gproxy.c: some hacking
6628
6629 2003-08-15  Havoc Pennington  <hp@redhat.com>
6630
6631         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
6632
6633         * dbus/dbus-connection.c
6634         (dbus_connection_send_with_reply_and_block): factor out internals;
6635         change to convert any error replies to DBusError instead of 
6636         returning them as a message
6637
6638 2003-08-15  Havoc Pennington  <hp@pobox.com>
6639
6640         * dbus/dbus-connection.c, 
6641         dbus/dbus-pending-call.c: Finish the pending call stuff
6642
6643 2003-08-14  Havoc Pennington  <hp@redhat.com>
6644
6645         * dbus/dbus-pending-call.c: start on new object that will replace
6646         DBusMessageHandler and ReplyHandlerData for tracking outstanding
6647         replies
6648
6649         * dbus/dbus-gproxy.c: start on proxy object used to communicate
6650         with remote interfaces
6651
6652         * dbus/dbus-gidl.c: do the boring boilerplate in here
6653         
6654 2003-08-12  Havoc Pennington  <hp@pobox.com>
6655
6656         * bus/dispatch.c (bus_dispatch): make this return proper 
6657         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
6658
6659         * dbus/dbus-errors.c (dbus_set_error): use
6660         _dbus_string_append_printf_valist
6661
6662         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
6663         (_dbus_string_append_printf): new
6664
6665         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
6666         UNKNOWN_METHOD
6667
6668         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
6669         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
6670         message is unhandled.
6671
6672 2003-08-11  Havoc Pennington  <hp@pobox.com>
6673
6674         * bus/test.c (client_disconnect_handler): change to return
6675         HANDLED (would have been REMOVE_MESSAGE)
6676
6677         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
6678         HANDLED/NOT_YET_HANDLED instead of
6679         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
6680         should be used.
6681
6682 2003-08-10  Havoc Pennington  <hp@pobox.com>
6683
6684         * tools/dbus-send.c (main): add --type argument, for now
6685         supporting only method_call and signal types.
6686
6687         * tools/dbus-print-message.c: print message type
6688
6689         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6690         init connection->objects
6691
6692         * doc/dbus-specification.sgml: fix sgml
6693
6694         * bus/*.c: port over to object-instance API changes
6695
6696         * test/test-service.c: ditto
6697         
6698         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
6699         name, we will have to fix up the rest of the code to also handle
6700         this
6701         (dbus_message_new): generic message-creation call
6702         (set_string_field): allow appending name field
6703
6704 2003-08-06  Havoc Pennington  <hp@pobox.com>
6705
6706         * dbus/dbus-object-registry.c: implement signal connection 
6707         and dispatch
6708
6709         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
6710
6711         * dbus/dbus-internals.c (_dbus_memdup): new function
6712
6713 2003-08-02  Havoc Pennington  <hp@pobox.com>
6714
6715         * dbus/dbus-message.c (dbus_message_get_no_reply)
6716         (dbus_message_set_no_reply): add these and remove
6717         set_is_error/get_is_error
6718
6719         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
6720         remove the ERROR flag, since there's now an ERROR type
6721
6722 2003-08-01  Havoc Pennington  <hp@pobox.com>
6723
6724         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
6725         implement
6726
6727         * dbus/dbus-message.c (dbus_message_get_type): new function
6728
6729         * doc/dbus-specification.sgml: add "type" byte to messages
6730
6731 2003-08-01  Havoc Pennington  <hp@pobox.com>
6732
6733         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
6734         a message type enum to distinguish kinds of message
6735         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
6736         that need not be replied to
6737
6738 2003-08-01  Havoc Pennington  <hp@pobox.com>
6739
6740         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
6741         (unpack_8_octets): fix no-64-bit-int bug
6742
6743         * dbus/dbus-object-registry.c (validate_id): validate the 
6744         connection ID bits, not just the instance ID.
6745
6746         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
6747         the connection-global 33 bits of the object ID
6748
6749         * dbus/dbus-object-registry.c (info_from_entry): fill in 
6750         object ID in the new way
6751
6752         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
6753         define server/client/instance bits.
6754
6755 2003-07-30  Havoc Pennington  <hp@pobox.com>
6756
6757         * dbus/dbus-connection.c (dbus_connection_register_object): fix
6758         build
6759
6760 2003-07-13  Havoc Pennington  <hp@pobox.com>
6761
6762         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
6763         fields to DBusObjectVTable and DBusObjectInfo
6764
6765 2003-07-12  Havoc Pennington  <hp@pobox.com>
6766
6767         * dbus/dbus-object-registry.c: implement unit test,
6768         fix bugs discovered in process
6769
6770         * dbus/dbus-connection.c: remove handler_table and
6771         register_handler(), add DBusObjectRegistry usage
6772
6773         * dbus/dbus-objectid.c (dbus_object_id_is_null)
6774         (dbus_object_id_set_null): new functions
6775
6776 2003-07-08  Havoc Pennington  <hp@pobox.com>
6777
6778         * dbus/dbus-object.c: implement some of this
6779
6780         * dbus/dbus-object-registry.c
6781         (_dbus_object_registry_add_and_unlock): fill in the object_id out
6782         param
6783         (_dbus_object_registry_new): handle OOM
6784
6785 2003-07-08  Havoc Pennington  <hp@pobox.com>
6786
6787         * dbus/dbus-object.h: sketch out an API for registering objects
6788         with a connection, that allows us to use as little as 24 bytes
6789         per object and lets application code represent an object in 
6790         any conceivable way.
6791
6792         * dbus/dbus-object-registry.c: implement the hard bits of the
6793         DBusConnection aspect of object API. Not yet wired up.
6794         
6795 2003-07-06  Havoc Pennington  <hp@pobox.com>
6796
6797         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
6798         (_dbus_marshal_object_id): new
6799         (_dbus_demarshal_object_id): new
6800         (_dbus_marshal_get_arg_end_pos): support object ID type, and
6801         consolidate identical switch cases. Don't conditionalize handling
6802         of DBUS_TYPE_UINT64, need to handle the type always.
6803         (_dbus_marshal_validate_arg): consolidate identical cases, and
6804         handle DBUS_TYPE_OBJECT_ID
6805
6806         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
6807
6808         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
6809
6810 2003-09-28  Havoc Pennington  <hp@pobox.com>
6811
6812         * real 0.13 release
6813
6814 2003-09-28  Havoc Pennington  <hp@pobox.com>
6815
6816         * doc/Makefile.am (dbus-specification.html): testing a funky hack
6817         to work with Debian db2html
6818
6819 2003-09-28  Havoc Pennington  <hp@pobox.com>
6820
6821         * configure.in: 0.13
6822
6823         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
6824         stylesheet-images for benefit of Debian
6825         
6826         Change back to using filesystem-linked sockets for the system
6827         bus, so only root can create the default system bus address.
6828         
6829         * bus/system.conf.in: change to use
6830         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6831
6832         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
6833         from here.
6834
6835         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6836         here, and AC_DEFINE DBUS_SYSTEM_PATH
6837
6838 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
6839
6840         * doc/TODO:
6841         * doc/busconfig.dtd:
6842         Add busconfig DTD.
6843         
6844 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
6845
6846         * doc/dbus-specification.sgml:
6847         Add activation reply values.
6848         
6849 2003-08-05  Havoc Pennington  <hp@redhat.com>
6850
6851         * configure.in: 0.12
6852
6853 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
6854
6855         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
6856         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
6857         (add_watch), (remove_watch), (create_source):
6858         Refcount fds, fixes some reentrancy issues.
6859         
6860 2003-07-30  Havoc Pennington  <hp@redhat.com>
6861
6862         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
6863         bus address to be abstract if we have abstract sockets
6864
6865         * NEWS: update
6866
6867 2003-07-28  Havoc Pennington  <hp@redhat.com>
6868
6869         * bus/messagebus.in: fix to avoid processname/servicename 
6870         confusion, from Michael Kearey
6871         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
6872         
6873 2003-07-23  Havoc Pennington  <hp@pobox.com>
6874
6875         * dbus/dbus-message.c (dbus_message_iter_get_named): 
6876         fix from Andy Hanton to remove broken "+1"
6877
6878 2003-07-16  Havoc Pennington  <hp@pobox.com>
6879
6880         * tools/dbus-launch.c (babysit): close stdout/stderr in the
6881         babysitter process, as suggested by Thomas Leonard, so 
6882         an "eval `dbus-launch --exit-with-session`" will actually 
6883         return
6884
6885 2003-07-16  Havoc Pennington  <hp@pobox.com>
6886
6887         * configure.in: print out EXPANDED_* variables in the summary at
6888         the end; clean up the code that computes EXPANDED_ variables and
6889         get the ones using exec_prefix right. Should make things work
6890         when you build without --prefix
6891
6892 2003-06-29  Havoc Pennington  <hp@pobox.com>
6893
6894         * mono/Test.cs (class Test): fire up a main loop and run it
6895
6896         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
6897         done once, the app has to do it
6898
6899 2003-06-26  Havoc Pennington  <hp@pobox.com>
6900
6901         * mono/Connection.cs: set up connection with the glib main loop
6902
6903 2003-07-01  Havoc Pennington  <hp@redhat.com>
6904
6905         * doc/dbus-specification.sgml: clarify the format of a type code,
6906         change suggested by Jim Blandy
6907
6908 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
6909
6910         * doc/Makefile.am:
6911         * tools/Makefile.am: Don't assume srcdir == builddir.
6912
6913         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
6914         the allocated block.
6915         (_dbus_memory_test): New function.
6916         * dbus/dbus-test.h: Add _dbus_memory_test ().
6917         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
6918
6919         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
6920         of %c%c%c%c.
6921         (dbus_message_new): Remove obsolete @todo.
6922
6923         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
6924         (_dbus_marshal_set_uint64): Fix comment.
6925
6926         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
6927         hardcode FIELD_REPLY_SERIAL.
6928
6929         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
6930         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
6931
6932         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
6933         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
6934
6935 2003-06-24  Havoc Pennington  <hp@pobox.com>
6936
6937         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
6938
6939 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
6940
6941         * configure.in:
6942         * gcj/.cvsignore:
6943         * gcj/Hello.java:
6944         * gcj/Makefile.am:
6945         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
6946         * gcj/org/.cvsignore:
6947         * gcj/org/Makefile.am:
6948         * gcj/org/freedesktop/.cvsignore:
6949         * gcj/org/freedesktop/Makefile.am:
6950         * gcj/org/freedesktop/dbus/.cvsignore:
6951         * gcj/org/freedesktop/dbus/Makefile.am:
6952         * gcj/org/freedesktop/dbus/Message.java: (Message),
6953         (Message.Message):
6954         * gcj/org/freedesktop/dbus/natMessage.cc:
6955         Fix the build system.
6956
6957 2003-06-22  Havoc Pennington  <hp@pobox.com>
6958
6959         * mono/Connection.cs: add more bindings
6960
6961         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
6962         more than once.
6963
6964 2003-06-22  Havoc Pennington  <hp@pobox.com>
6965
6966         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
6967         Start wrapping more stuff.
6968
6969 2003-06-22  Havoc Pennington  <hp@pobox.com>
6970
6971         * mono/Message.cs: implement Message.Wrap() that ensures we only
6972         have a single C# wrapper per DBusMessage, assuming it works which
6973         it probably doesn't.
6974
6975         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
6976         (dbus_message_free_data_slot): new
6977         (dbus_message_set_data): new
6978         (dbus_message_get_data): new
6979
6980 2003-06-22  Havoc Pennington  <hp@pobox.com>
6981
6982         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
6983         (_dbus_data_slot_allocator_alloc): rework these to keep a
6984         reference count on each slot and automatically manage a global
6985         slot ID variable passed in by address
6986
6987         * bus/bus.c: convert to new dataslot API
6988
6989         * dbus/dbus-bus.c: convert to new dataslot API
6990
6991         * dbus/dbus-connection.c: convert to new dataslot API
6992
6993         * dbus/dbus-server.c: convert to new dataslot API
6994
6995         * glib/dbus-gmain.c: ditto
6996
6997         * bus/test.c: ditto
6998
6999         * bus/connection.c: ditto
7000
7001 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
7002
7003         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
7004         after the gcj checks so that the correct configuration tags
7005         will be added to libtool.
7006
7007         * dbus-glib-1.pc.in: No need to specify any includes since
7008         dbus-1.pc.in has those.
7009
7010 2003-06-22  Havoc Pennington  <hp@pobox.com>
7011
7012         * mono/*, gcj/*, configure.in, Makefile.am:
7013         Check in makefiles and subdirs for mono and gcj bindings.
7014         Neither binding actually exists, just trying to get through
7015         all the build and other boring bits.
7016
7017 2003-06-21  Philip Blundell  <philb@gnu.org>
7018
7019         * tools/dbus-monitor.1: Updated.
7020
7021         * tools/dbus-send.1: Likewise.
7022
7023 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
7024
7025         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
7026         for hangup and error after checking read so we won't discard
7027         pending data if both hangup and read are set.
7028
7029 2003-06-19  Philip Blundell  <philb@gnu.org>
7030
7031         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
7032
7033         * tools/dbus-send.c: Accept both --system and --session.
7034
7035         * tools/dbus-monitor.c: Same here.
7036
7037 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
7038
7039         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
7040         from C++ (Patch by Miloslav Trmac).
7041
7042 2003-06-15  Joe Shaw  <joe@assbarn.com>
7043
7044         * configure.in: Check for socklen_t.
7045
7046         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
7047
7048         * test/test-segfault.c: Add #include <sys/time.h>
7049
7050         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
7051         dbus-launch needs it.
7052
7053 2003-06-09  Havoc Pennington  <hp@redhat.com>
7054
7055         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
7056         SUN_LEN, it breaks abstract socket usage
7057
7058         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
7059         starts of lines.
7060
7061 2003-06-04  Havoc Pennington  <hp@pobox.com>
7062
7063         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
7064         using unix:abstract=/foo, and when listening in a tmpdir
7065         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
7066
7067         * dbus/dbus-transport.c (_dbus_transport_open): support
7068         unix:abstract=/foo
7069
7070         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7071         support abstract sockets
7072
7073         * dbus/dbus-transport-unix.c
7074         (_dbus_transport_new_for_domain_socket): support abstract sockets
7075
7076         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
7077         toggle as an argument, implement abstract namespace support
7078         (_dbus_listen_unix_socket): ditto
7079
7080         * configure.in: add --enable-abstract-sockets and implement
7081         a configure check for autodetection of the right value.
7082
7083 2003-06-01  Havoc Pennington  <hp@pobox.com>
7084
7085         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
7086         in /tmp (though on Linux this will end up being useless,
7087         when we add abstract namespace support)
7088
7089         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
7090         subst'ing it
7091
7092 2003-05-28  Colin Walters  <walters@verbum.org>
7093
7094         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
7095
7096 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
7097
7098         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
7099
7100 2003-05-17  Colin Walters  <walters@gnu.org>
7101
7102         * tools/dbus-send.c: Don't exit with an error code if --help was
7103         passed.  Default to using the session bus instead of the system
7104         one.
7105
7106         * tools/dbus-launch.c: Ditto.
7107
7108         * tools/dbus-monitor.c: Ditto.
7109
7110         * tools/dbus-send.1: Update with new arguments.
7111
7112         * tools/dbus-launch.c: Emit code to export variables.  New
7113         arguments -s and -c to specify shell syntax, and a bit of code to
7114         autodetect syntax.  Also, allow specifying a program to run.
7115
7116         * tools/dbus-launch.1: Update with new arguments.
7117
7118         * tools/dbus-send.1: Ditto.
7119
7120         * tools/dbus-monitor.1: Ditto.
7121
7122 2003-05-17  Havoc Pennington  <hp@pobox.com>
7123
7124         * bus/config-parser.c (merge_included): merge in policies from
7125         child configuration file.
7126
7127         * bus/policy.c (bus_policy_merge): function to merge two policies
7128         together
7129
7130 2003-05-16  Havoc Pennington  <hp@redhat.com>
7131
7132         * dbus/dbus-connection.c: disable verbose lock spew
7133
7134         * tools/dbus-send.c: add --print-reply command line option
7135
7136         * tools/dbus-print-message.h (print_message): new util function
7137         shared by dbus-send and dbus-monitor
7138
7139         * tools/dbus-monitor.c (handler_func): exit on disconnect
7140
7141         * dbus/dbus-transport-unix.c (do_reading): if the transport is
7142         disconnected, don't try to use the read_watch
7143
7144         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
7145         so we can find this bug more easily
7146
7147 2003-05-16  Havoc Pennington  <hp@redhat.com>
7148
7149         * bus/policy.c (free_rule_list_func): avoid a crash when passed
7150         NULL as DBusHashTable is annoyingly likely to do.
7151
7152 2003-05-16  Colin Walters  <walters@verbum.org>
7153
7154         * tools/dbus-monitor.c: Add --session argument and usage()
7155         function.
7156
7157         * tools/dbus-monitor.1: Update with new --session arg.
7158
7159         * bus/Makefile.am (install-data-hook): Create
7160         $(libdir)/dbus-1.0/services so that the session bus is happy.
7161
7162 2003-05-15  Havoc Pennington  <hp@redhat.com>
7163
7164         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
7165         on non-x86. ifdef's are evil.
7166
7167 2003-05-15  Havoc Pennington  <hp@redhat.com>
7168
7169         * configure.in: 0.11
7170
7171         * NEWS: update
7172
7173         * bus/Makefile.am (initddir): apparently we are supposed to put
7174         init scripts in /etc/rc.d/init.d not /etc/init.d
7175
7176         * bus/Makefile.am: remove the "you must --enable-tests to make
7177         check" as it broke distcheck
7178
7179         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
7180
7181 2003-05-13  James Willcox  <jwillcox@gnome.org>
7182
7183         * configure.in:
7184         * bus/activation.c: (bus_activation_service_created),
7185         (bus_activation_activate_service):
7186         * bus/driver.c: (bus_driver_send_service_deleted),
7187         (bus_driver_send_service_created), (bus_driver_send_service_lost),
7188         (bus_driver_send_service_acquired),
7189         (bus_driver_send_welcome_message),
7190         (bus_driver_handle_list_services):
7191         * bus/session.conf.in:
7192         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
7193         (dbus_bus_service_exists), (dbus_bus_activate_service):
7194         * dbus/dbus-bus.h:
7195
7196         Add some convenience API which lets you activate a service, and did a
7197         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
7198         and dbus_message_get_args()
7199
7200 2003-05-11  Havoc Pennington  <hp@pobox.com>
7201
7202         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
7203         calling _dbus_marshal_validate_arg() for every byte in a byte
7204         array, etc.
7205
7206         * dbus/dbus-message-handler.c: use atomic reference counting to
7207         reduce number of locks slightly; the global lock in here sucks
7208
7209         * dbus/dbus-connection.c
7210         (_dbus_connection_update_dispatch_status_and_unlock): variant of
7211         update_dispatch_status that can be called with lock held; then use
7212         in a couple places to reduce locking/unlocking
7213         (dbus_connection_send): hold the lock over the whole function
7214         instead of acquiring it twice.
7215
7216         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
7217
7218         * bus/connection.c (bus_connections_setup_connection): fix access
7219         to already-freed memory.
7220
7221         * dbus/dbus-connection.c: keep a little cache of linked list
7222         nodes, to avoid using the global linked list alloc lock in the
7223         normal send-message case. Instead we just use the connection lock
7224         that we already have to take.
7225
7226         * dbus/dbus-list.c (_dbus_list_find_last): new function
7227
7228         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
7229         change to use a struct for the atomic type; fix docs,
7230         they return value before increment, not after increment.
7231
7232         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
7233         (_dbus_string_append_8_aligned): new functions to try to
7234         microoptimize this operation.
7235         (reallocate_for_length): break this out of set_length(), to
7236         improve profile info, and also so we can consider inlining the
7237         set_length() part.
7238
7239         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
7240         strings with some preallocation, cuts down on our calls to realloc
7241         a fair bit. Though if we can get the "move entire string to empty
7242         string" optimization below to kick in here, it would be better.
7243
7244         * dbus/dbus-string.c (_dbus_string_move): just call
7245         _dbus_string_move_len
7246         (_dbus_string_move_len): add a special case for moving
7247         an entire string into an empty string; we can just
7248         swap the string data instead of doing any reallocs.
7249         (_dbus_string_init_preallocated): new function
7250
7251 2003-05-11  Havoc Pennington  <hp@pobox.com>
7252
7253         Write a "test-profile" that does echo client-server with threads;
7254         profile reveals lock contention, memcpy/realloc of buffers, and
7255         UTF-8 validation as hot spots. 20% of lock contention eliminated
7256         with dbus_atomic_inc/dec implementation on x86.  Much remaining
7257         contention is global mempool locks for GList and DBusList.
7258
7259         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
7260         x86 implementation
7261
7262         * dbus/dbus-connection.c (struct DBusConnection): use
7263         dbus_atomic_t for the reference count
7264
7265         * dbus/dbus-message.c (struct DBusMessage): declare
7266         dbus_atomic_t values as volatile
7267
7268         * configure.in: code to detect ability to use atomic integer
7269         operations in assembly, from GLib patch
7270
7271         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
7272         time, tired of it being wrong in threads and forked processes
7273
7274         * glib/test-profile.c: a little program to bounce messages back
7275         and forth between threads and eat CPU
7276
7277         * dbus/dbus-connection.c: add debug spew macros for debugging
7278         thread locks; include config.h at top; fix deadlock in
7279         dbus_connection_flush()
7280
7281 2003-05-08  Havoc Pennington  <hp@pobox.com>
7282
7283         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
7284         data from getting written, and there wasn't a good reason to
7285         use _exit really.
7286
7287         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
7288         dbus_verbose lines in test coverage
7289         (main): add list of functions sorted by # of untested blocks
7290         to the coverage report
7291
7292         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
7293
7294         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
7295
7296         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
7297         extend test coverage
7298
7299         * test/data/auth/cancel.auth-script: test canceling an
7300         authentication
7301
7302         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
7303         aren't used. in CVS history if we end up needing them.
7304
7305 2003-05-04  Havoc Pennington  <hp@pobox.com>
7306
7307         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
7308         unit test
7309
7310         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
7311         function, which assumed length was in # of strings, not bytes
7312
7313         * dbus/dbus-message.c (_dbus_message_test): add tests for some
7314         missing coverage
7315
7316         * dbus/dbus-connection.c
7317         (_dbus_connection_queue_received_message): disable function for
7318         now, we are only using it in test mode
7319
7320         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7321         remove a mistaken FIXME
7322
7323 2003-05-04  Havoc Pennington  <hp@pobox.com>
7324
7325         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
7326         unlock mutex on successful return, patch from Anders Gustafsson
7327
7328 2003-05-04  Havoc Pennington  <hp@pobox.com>
7329
7330         * dbus-glib-1.pc.in (Requires): fix dependencies, from
7331         Anders Gustafsson
7332
7333 2003-05-04  Havoc Pennington  <hp@pobox.com>
7334
7335         * tools/dbus-launch.c: implement
7336
7337         * bus/main.c (main), bus/bus.c (bus_context_new):
7338         implement --print-pid and --fork
7339
7340 2003-05-03  Havoc Pennington  <hp@redhat.com>
7341
7342         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
7343         the address had no value, and add to test suite. Fix and
7344         regression test from Miloslav Trmac
7345
7346 2003-05-03  Havoc Pennington  <hp@pobox.com>
7347
7348         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
7349         watch is invalid when handled
7350
7351         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
7352         dbus-launch utility to launch the bus from a shell script.  Didn't
7353         actually implement dbus-launch yet, it's just a placeholder still.
7354
7355 2003-05-03  Havoc Pennington  <hp@pobox.com>
7356
7357         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
7358         daemon; also documents daemon config file, so replaces
7359         doc/config-file.txt. Corrected some stuff from config-file.txt in
7360         the process of moving it.
7361
7362 2003-05-03  Havoc Pennington  <hp@pobox.com>
7363
7364         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
7365         add some man pages
7366
7367 2003-05-03  Colin Walters  <walters@verbum.org>
7368
7369         * dbus/dbus-sysdeps.c (fill_user_info): Test against
7370         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
7371
7372         * Makefile.am: Update to use new .pc versioning scheme.
7373
7374 2003-05-02  Havoc Pennington  <hp@redhat.com>
7375
7376         * bus/system.conf.in: allow send/receive to/from message bus
7377         service
7378
7379 2003-04-30  Havoc Pennington  <hp@redhat.com>
7380
7381         * configure.in: print a note when building with unit tests and
7382         without assertions
7383
7384 2003-04-30  Havoc Pennington  <hp@redhat.com>
7385
7386         * Makefile.am: add a check-local that complains if you didn't
7387         configure with --enable-tests
7388
7389 2003-04-29  Havoc Pennington  <hp@redhat.com>
7390
7391         * glib/dbus-gmain.c: docs cleanups
7392
7393         * dbus/dbus-types.h: add docs on int64 types
7394
7395         * dbus/dbus-memory.c: fix docs to avoid putting private API in
7396         public API docs section
7397
7398 2003-04-29  Havoc Pennington  <hp@redhat.com>
7399
7400         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
7401         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
7402         parallel install API version, not with the D-BUS package version.
7403
7404         * HACKING: move some of README over here
7405
7406         * README: updates, and document API/ABI policy
7407
7408         * configure.in: reindentation
7409
7410 2003-04-29  Havoc Pennington  <hp@redhat.com>
7411
7412         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
7413         to use this library" to be sure people have the right
7414         expectations.
7415
7416 2003-04-28  Havoc Pennington  <hp@redhat.com>
7417
7418         * configure.in: add --enable-docs which by default is auto yes if
7419         doxygen and db2html found, no otherwise; but can be forced on/off
7420
7421         * doc/Makefile.am: conditionalize whether to build docs on
7422         --enable-docs
7423
7424 2003-04-28  Havoc Pennington  <hp@redhat.com>
7425
7426         * configure.in: 0.10
7427
7428         * NEWS: update
7429
7430         * bus/system.conf.in: add <includedir>system.d</includedir>
7431
7432         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
7433         username was provided but not uid
7434
7435         * bus/config-parser.c (struct BusConfigParser): keep track of
7436         whether the parser is toplevel or was included; change some
7437         of the error handling if it's included.
7438
7439 2003-04-27  Havoc Pennington  <hp@pobox.com>
7440
7441         Unbreak my code...
7442
7443         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7444         report correct status if we finish processing authentication
7445         inside this function.
7446
7447         * bus/activation.c (try_send_activation_failure): use
7448         bus_transaction_send_error_reply
7449
7450         * bus/connection.c (bus_connection_get_groups): return an error
7451         explaining the problem
7452
7453         * bus/bus.c (bus_context_check_security_policy): implement
7454         restriction here that inactive connections can only send the
7455         hello message. Also, allow bus driver to send anything to
7456         any recipient.
7457
7458         * bus/connection.c (bus_connection_complete): create the
7459         BusClientPolicy here instead of on-demand.
7460         (bus_connection_get_policy): don't return an error
7461
7462         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
7463         sender field in message being replied to
7464
7465         * bus/bus.c (bus_context_check_security_policy): fix silly typo
7466         causing it to return FALSE always
7467
7468         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
7469         we checked sender rather than destination
7470
7471 2003-04-25  Havoc Pennington  <hp@redhat.com>
7472
7473         test suite is slightly hosed at the moment, will fix soon
7474
7475         * bus/connection.c (bus_connections_expire_incomplete): fix to
7476         properly disable the timeout when required
7477         (bus_connection_set_name): check whether we can remove incomplete
7478         connections timeout after we complete each connection.
7479
7480         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
7481         probably still broken.
7482
7483         * bus/services.c (bus_registry_acquire_service): implement max
7484         number of services owned, and honor allow/deny rules on which
7485         services a connection can own.
7486
7487         * bus/connection.c (bus_connection_get_policy): report errors here
7488
7489         * bus/activation.c: implement limit on number of pending
7490         activations
7491
7492 2003-04-25  Havoc Pennington  <hp@redhat.com>
7493
7494         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
7495         where we used >= 0 instead of != DBUS_UID_UNSET.
7496
7497 2003-04-25  Havoc Pennington  <hp@redhat.com>
7498
7499         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
7500         were toggled without add/remove, fix from Anders Gustafsson
7501
7502 2003-04-24  Havoc Pennington  <hp@redhat.com>
7503
7504         * test/data/valid-config-files/basic.conf: add <limit> tags to
7505         this test
7506
7507         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
7508         <limit> tag in configuration file.
7509
7510 2003-04-24  Havoc Pennington  <hp@redhat.com>
7511
7512         * bus/dispatch.c: somehow missed some name_is
7513
7514         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
7515         (_dbus_timeout_set_interval): new
7516
7517         * bus/connection.c (bus_connections_setup_connection): record time
7518         when each connection is first set up, and expire them after the
7519         auth timeout passes.
7520
7521 2003-04-24  Havoc Pennington  <hp@redhat.com>
7522
7523         * dbus/dbus-message.c (dbus_message_name_is): rename
7524         (dbus_message_service_is): rename
7525         (dbus_message_sender_is): rename
7526         (dbus_message_get_service): rename
7527
7528 2003-04-24  Havoc Pennington  <hp@redhat.com>
7529
7530         * configure.in: add --enable-checks
7531
7532         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
7533
7534         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
7535         to use thread locks.
7536         (_dbus_connection_handler_destroyed_locked): move some private
7537         functions into proper docs group
7538
7539         * dbus/dbus-internals.h: add _dbus_return_if_fail,
7540         _dbus_return_val_if_fail
7541
7542         Throughout: use dbus_return_if_fail
7543
7544 2003-04-23  James Willcox  <jwillcox@gnome.org>
7545
7546         * glib/dbus-glib.h:
7547         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
7548         (dbus_connection_setup_with_g_main),
7549         (dbus_server_setup_with_g_main):
7550         * glib/test-dbus-glib.c: (main):
7551         * glib/test-thread-client.c: (main):
7552         * glib/test-thread-server.c: (new_connection_callback), (main):
7553         * tools/dbus-monitor.c: (main):
7554
7555         Added a GMainContext argument to dbus_connection_setup_with_g_main()
7556         and dbus_server_setup_with_g_main().
7557
7558 2003-04-20  Havoc Pennington  <hp@pobox.com>
7559
7560         * doc/dbus-specification.sgml: document the restrictions on
7561         message and service names
7562
7563 2003-04-22  Havoc Pennington  <hp@redhat.com>
7564
7565         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
7566         support, and do some code cleanups to share more code and
7567         speed up array marshal/demarshal.
7568
7569         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
7570
7571         * configure.in: generate dbus-arch-deps.h
7572
7573         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
7574         64-bit typecodes
7575
7576 2003-04-22  Havoc Pennington  <hp@redhat.com>
7577
7578         * test/data/valid-messages/opposite-endian.message: fix test
7579         to use proper type for rply field
7580
7581         * test/data/invalid-messages: add tests for below validation
7582
7583         * dbus/dbus-message.c (decode_header_data): validate field types,
7584         and validate that named fields are valid names
7585         (decode_name_field): consider messages in the
7586         org.freedesktop.Local. namespace to be invalid.
7587
7588         * dbus/dbus-string.c (_dbus_string_validate_name): new
7589
7590 2003-04-19  Havoc Pennington  <hp@pobox.com>
7591
7592         * bus/driver.c (bus_driver_handle_hello): check limits and
7593         return an error if they are exceeded.
7594
7595         * bus/connection.c: maintain separate lists of active and inactive
7596         connections, and a count of each. Maintain count of completed
7597         connections per user. Implement code to check connection limits.
7598
7599         * dbus/dbus-list.c (_dbus_list_unlink): export
7600
7601         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
7602         number of bytes in the message queue for a connection
7603
7604 2003-04-18  Havoc Pennington  <hp@pobox.com>
7605
7606         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
7607
7608         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
7609         memleaks
7610
7611         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
7612         on realloc be sure to update the pointer in the keyring
7613
7614         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
7615         offset to avoid writing to unallocated memory
7616
7617         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
7618         try the next mechanism, so we properly handle OOM
7619
7620         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
7621         on OOM.
7622         (_dbus_keyring_new): fix OOM bug
7623         (_dbus_keyring_new_homedir): always set error; impose a maximum
7624         number of keys we'll load from the file, mostly to speed up the
7625         test suite and make its OOM checks more useful, but also for
7626         general sanity.
7627
7628         * dbus/dbus-auth.c (process_error_server): reject authentication
7629         if we get an error from the client
7630         (process_cancel): on cancel, send REJECTED, per the spec
7631         (process_error_client): send CANCEL if we get an error from the
7632         server.
7633
7634 2003-04-18  Havoc Pennington  <hp@pobox.com>
7635
7636         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
7637         debug spew
7638
7639         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
7640         handling problem
7641
7642         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
7643         about DBUS_TEST_HOMEDIR once
7644
7645         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
7646         the environment
7647
7648         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
7649         config file so we test the right thing
7650
7651         Throughout: assorted docs improvements
7652
7653 2003-04-18  Havoc Pennington  <hp@pobox.com>
7654
7655         * glib/dbus-gmain.c: adapt to watch changes
7656
7657         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
7658
7659         * dbus/dbus-server.h: remove dbus_server_handle_watch
7660
7661         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
7662
7663         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
7664         like DBusTimeout, so we don't need dbus_connection_handle_watch
7665         etc.
7666
7667 2003-04-17  Havoc Pennington  <hp@redhat.com>
7668
7669         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
7670         database usage so it all goes via the DBusUserDatabase cache.
7671
7672 2003-04-17  Havoc Pennington  <hp@redhat.com>
7673
7674         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
7675         there was an OOM watch we skipped, we always return TRUE so we
7676         iterate again to have a look at it again. Fixes test suite hang.
7677         Code rearrangement also lets us lose some memset and only iterate
7678         over callbacks once.
7679
7680         * bus/driver.c (bus_driver_handle_message): sense of test for
7681         reply was backward
7682
7683 2003-04-16  Havoc Pennington  <hp@pobox.com>
7684
7685         * doc/dbus-specification.sgml: make spec say serials are unsigned
7686
7687         * dbus/dbus-message.h: change message serials to unsigned
7688
7689         * dbus/dbus-connection.c: adapt to message serials being unsigned
7690
7691 2003-04-15  Havoc Pennington  <hp@pobox.com>
7692
7693         * bus/bus.c: create and keep around a shared DBusUserDatabase
7694         object.
7695
7696         * bus/connection.c (bus_connection_get_groups): don't cache
7697         groups for user in the connection object, since user database
7698         object now does that.
7699
7700 2003-04-16  Havoc Pennington  <hp@redhat.com>
7701
7702         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
7703         list of size counters
7704         (_dbus_message_loader_putback_message_link): put back a popped link
7705
7706         * dbus/dbus-connection.c
7707         (dbus_connection_set_max_live_messages_size): rename
7708         max_received_size
7709         (dbus_connection_get_outgoing_size): get size of outgoing
7710         queue
7711         (_dbus_connection_set_connection_counter): remove this cruft
7712
7713 2003-04-14  Havoc Pennington  <hp@redhat.com>
7714
7715         * dbus/dbus-userdb.c: user database abstraction, mostly to get
7716         caching, but at some point we might want to be able to use a
7717         different database.
7718
7719         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
7720         SHA1 conf file to test the sha1 auth mechanism, since the regular
7721         test always uses EXTERNAL when available.
7722
7723         * configure.in,
7724         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
7725         add conf file that requires use of sha1 auth
7726
7727 2003-04-13  Havoc Pennington  <hp@pobox.com>
7728
7729         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
7730         from Philip Blundell to send messages and monitor them.
7731
7732 2003-04-13  Havoc Pennington  <hp@pobox.com>
7733
7734         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
7735         callbacks
7736
7737         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
7738         users
7739
7740         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7741         fix to only recover unused bytes if we're already authenticated
7742         (_dbus_transport_get_is_authenticated): fix to still mark us
7743         authenticated if there are unused bytes.
7744
7745         * bus/dispatch.c: implement security policy checking
7746
7747         * bus/connection.c (bus_transaction_send_from_driver): new
7748
7749         * bus/bus.c (bus_context_check_security_policy): new
7750
7751         * bus/dispatch.c (send_service_nonexistent_error): delete this,
7752         now we just set the DBusError and it gets converted to an error
7753         reply.
7754
7755         * bus/connection.c (allow_user_function): enable code using actual
7756         data from the config file
7757
7758         * bus/policy.c (list_allows_user): handle wildcard rules for
7759         user/group connection perms
7760
7761 2003-04-13  Havoc Pennington  <hp@pobox.com>
7762
7763         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
7764
7765         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
7766
7767         * bus/policy.c (bus_policy_append_mandatory_rule)
7768         (bus_policy_append_default_rule, bus_policy_append_user_rule)
7769         (bus_policy_append_group_rule): new functions
7770
7771 2003-04-12  Havoc Pennington  <hp@pobox.com>
7772
7773         * bus/config-parser.c (bus_config_parser_new): fix a memleak
7774
7775         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
7776         the pid/gid/uid, just for paranoia.
7777
7778         * test/break-loader.c (randomly_do_n_things): find a byte
7779         containing a type code, and randomly change it to a different
7780         type code.
7781
7782 2003-04-12  Havoc Pennington  <hp@pobox.com>
7783
7784         * bus/policy.h: change BusPolicy to be the thing from the config
7785         file, and rename old BusPolicy to BusClientPolicy
7786
7787         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
7788         match change in how policy works
7789
7790         * dbus/dbus-internals.h: mark assert_not_reached as
7791         __attribute((noreturn))__
7792
7793 2003-04-11  Havoc Pennington  <hp@redhat.com>
7794
7795         * doc/dbus-specification.sgml: fix a spot with the wrong name for
7796         the broadcast service. Use boolean return for ServiceExists.
7797
7798 2003-04-11  Havoc Pennington  <hp@redhat.com>
7799
7800         * configure.in: add another directory to look for qt in.
7801
7802 2003-04-11  Havoc Pennington  <hp@redhat.com>
7803
7804         * AUTHORS: add Colin Walters
7805
7806 2003-04-11  Havoc Pennington  <hp@redhat.com>
7807
7808         * NEWS: update
7809
7810         * configure.in: 0.9
7811
7812 2003-04-11  Havoc Pennington  <hp@redhat.com>
7813
7814         * bus/messagebus.in: remove pid file when stopping the
7815         message bus, since the bus won't have privileges to remove it
7816         itself.
7817
7818 2003-04-11  Havoc Pennington  <hp@redhat.com>
7819
7820         * bus/bus.c (bus_context_new): move credentials change after
7821         creating pidfile
7822
7823 2003-04-11  Havoc Pennington  <hp@pobox.com>
7824
7825         * test/decode-gcov.c: add "below average functions" to the
7826         coverage report, and change how some of the code works.
7827
7828         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
7829         not in the coverage stats.
7830
7831         * test/test-service.c (main): use _dbus_verbose not fprintf in a
7832         couple places so running the test suite doesn't result in megaspam.
7833
7834 2003-04-11  Havoc Pennington  <hp@pobox.com>
7835
7836         * bus/dispatch.c (check_existent_service_activation): accept a no
7837         memory error in a place we didn't before
7838
7839         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
7840         in case the first one failed," since the test suite is less
7841         broken now.
7842
7843 2003-04-10  Havoc Pennington  <hp@pobox.com>
7844
7845         * bus/dispatch.c (check_segfault_service_activation): add test
7846         for launching an executable that just crashes.
7847
7848         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
7849         don't leave a million cores. We'll see how portable this is.
7850
7851 2003-04-10  Havoc Pennington  <hp@pobox.com>
7852
7853         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
7854         the possible parent failures before we fork, so that we don't
7855         fail to create a babysitter after creating the child.
7856
7857         * bus/activation.c (bus_activation_activate_service): kill child
7858         if we don't successfully complete the activation.
7859
7860 2003-04-10  Havoc Pennington  <hp@redhat.com>
7861
7862         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
7863         the connection if it's disconnected
7864
7865         * bus/activation.c (bus_activation_service_created): use new
7866         transaction features to roll back removal of pending activation if
7867         we don't successfully create the service after all. Don't remove
7868         pending activation if the function fails.
7869
7870         * dbus/dbus-list.c (_dbus_list_insert_before_link)
7871         (_dbus_list_insert_after_link): new code to facilitate
7872         services.c fixes
7873
7874         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
7875         new functionality, so we can preallocate the ability to insert
7876         into a hash table.
7877
7878         * bus/connection.c (bus_transaction_add_cancel_hook): new function
7879         allowing us to put custom hooks in a transaction to be used for
7880         cancelling said transaction
7881
7882         * doc/dbus-specification.sgml: add some discussion of secondary
7883         service owners, and disallow zero-length service names
7884
7885         * bus/services.c (bus_registry_acquire_service): new function,
7886         splits out part of bus_driver_handle_acquire_service() and fixes
7887         a bug where we didn't remove the service doing the acquiring
7888         from the secondary queue if we failed to remove the current owner
7889         from the front of the queue.
7890
7891 2003-04-10  Alexander Larsson  <alexl@redhat.com>
7892
7893         * doc/dbus-specification.sgml:
7894         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
7895
7896 2003-04-10  Alexander Larsson  <alexl@redhat.com>
7897
7898         * bus/.cvsignore:
7899         * glib/.cvsignore:
7900         * test/.cvsignore:
7901         Added files to cvsignore
7902
7903         * dbus/dbus-message.h:
7904         * dbus/dbus-message.c: (dbus_message_iter_get_named):
7905         Make get_named() take two out argument and return a boolean.
7906         (dbus_message_iter_get_args_valist):
7907         Update usage of get_named().
7908         (dbus_message_iter_append_byte):
7909         Fix typo
7910         (dbus_message_iter_append_named)
7911         Fix typo
7912         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
7913         More tests.
7914
7915 2003-04-10  Alexander Larsson  <alexl@redhat.com>
7916
7917         * dbus/dbus-marshal.[ch]:
7918         Add array_type_pos argument to _dbus_marshal_validate_arg.
7919         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
7920
7921         * dbus/dbus-message.[ch]:
7922         Multi-dimensional arrays have full type specification in the
7923         outermost array. Iter code re-arranged to handle this.
7924         Added some more iter tests.
7925
7926         * doc/dbus-specification.sgml:
7927         Add me to authors.
7928         Remove old FIXME.
7929         Update new array encoding description.
7930         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
7931
7932         * test/data/invalid-messages/array-with-mixed-types.message:
7933         * test/data/valid-messages/array-of-array-of-uint32.message:
7934         Change to the new array format.
7935
7936         * test/data/invalid-messages/too-short-dict.message:
7937         Fix bug in test.
7938
7939         * test/data/valid-messages/recursive-types.message:
7940         Fix up and extend test.
7941
7942 2003-04-10  Havoc Pennington  <hp@pobox.com>
7943
7944         * bus/dispatch.c: lots of fixes
7945
7946         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
7947         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
7948         that was crack, broke the test service.
7949
7950         * dbus/dbus-transport.c (_dbus_transport_open): fix error
7951         handling to avoid piling up errors if we get a failure on the
7952         first address.
7953
7954         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
7955         pid in assertion failures.
7956
7957         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
7958         to some fixed size of file descriptor array. Don't return TRUE
7959         anytime a timeout exists, that led to lots of busy loop silliness
7960         in the tests.
7961
7962 2003-04-09  Havoc Pennington  <hp@redhat.com>
7963
7964         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
7965         I'd checked this in earlier but hadn't.
7966
7967 2003-04-09  Havoc Pennington  <hp@redhat.com>
7968
7969         * bus/dispatch.c (bus_dispatch_test): get a bit further through
7970         the activation test (man this is getting old!)
7971
7972 2003-04-09  Havoc Pennington  <hp@redhat.com>
7973
7974         * test/test-utils.c: use dispatch status function to fix this up
7975
7976         * bus/connection.c (connection_watch_callback): don't dispatch
7977         from here
7978         (connection_timeout_callback): don't dispatch from here
7979         (bus_connections_setup_connection): set the dispatch status function
7980         (bus_connection_disconnected): unset it
7981
7982         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
7983         used to add a connection to be dispatched
7984         (_dbus_loop_iterate): do the dispatching at the end of each
7985         iteration
7986
7987         * dbus/dbus-connection.c
7988         (dbus_connection_set_dispatch_status_function): new function
7989         allowing us to fix up main loop usage
7990         (_dbus_connection_last_unref): free all the various function
7991         user data
7992         (dbus_connection_dispatch): call the DispatchStatusFunction
7993         whenever this function returns
7994         (dbus_connection_handle_watch): call DispatchStatusFunction
7995         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
7996         (reply_handler_timeout): call DispatchStatusFunction
7997         (dbus_connection_flush): call DispatchStatusFunction
7998
7999 2003-04-09  Havoc Pennington  <hp@redhat.com>
8000
8001         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
8002         a memory leak
8003
8004         * bus/dispatch.c (check_service_activated): fix bug in test
8005
8006         * dbus/dbus-mainloop.c (check_timeout): fix this up
8007
8008         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
8009         verbose output so we can sort out output from different processes,
8010         e.g. in the activation case.
8011
8012 2003-04-08  Colin Walters  <walters@gnu.org>
8013
8014         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
8015         the pid file.
8016         (bus_context_new): Set it.
8017         (bus_context_unref): Use it to delete the pid file.
8018
8019 2003-04-08  Havoc Pennington  <hp@redhat.com>
8020
8021         * test/data/invalid-messages/array-with-mixed-types.message:
8022         regression test that fails for the moment
8023
8024         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
8025         tests for convenience
8026
8027         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
8028         array of nil, it broke things.
8029
8030         * test/data/invalid-messages/array-of-nil.message: regression test
8031
8032         * test/data/valid-messages/array-of-array-of-uint32.message:
8033         happened to write this so added it to suite
8034
8035 2003-04-08  Havoc Pennington  <hp@redhat.com>
8036
8037         * bus/driver.c (bus_driver_handle_acquire_service): init
8038         retval/reply before checking name
8039
8040         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
8041         recursion depth argument
8042
8043         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
8044         in the public struct for future extension
8045
8046         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
8047         typo
8048
8049         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
8050         message
8051
8052         * doc/dbus-specification.sgml: fix typo
8053
8054 2003-04-08  Alexander Larsson  <alexl@redhat.com>
8055
8056         Implemented recursive types, named types and new-style iters
8057
8058         * bus/driver.c:
8059         * glib/test-thread-client.c: (thread_func):
8060         * glib/test-thread-server.c: (handle_test_message):
8061         * test/test-service.c: (handle_echo):
8062         Update to new api
8063
8064         * dbus/Makefile.am:
8065         * dbus/dbus-dict.c:
8066         * dbus/dbus-dict.h:
8067         * dbus/dbus.h
8068         Remove DBusDict
8069
8070         * dbus/dbus-internals.c: (_dbus_type_to_string):
8071         Update for new types.
8072
8073         * dbus/dbus-marshal.[ch]:
8074         Implement recursive types and the new marshalling format.
8075         Remove hardcoded dict marshalling.
8076         Marshal named types.
8077
8078         * dbus/dbus-message-builder.c:
8079         Add BYTE_ARRAY.
8080         Remove references to old types
8081
8082         * dbus/dbus-message.[ch]:
8083         New non-refcounted iter API that supports recursive iters.
8084         Use iters for appending, including support for recursive
8085         iters.
8086         Add byte and named type support.
8087         Update everything to new marshalling formats.
8088         Add tests for new API.
8089
8090         * dbus/dbus-protocol.h:
8091         Remove old array types.
8092         Add types: BYTE, ARRAY, DICT, NAMED
8093
8094         * dbus/dbus-string.c:
8095         * dbus/dbus-sysdeps.c:
8096         Make parse_double locale safe.
8097
8098         * dbus/dbus-test-main.c:
8099         Call setlocale.
8100
8101         * dbus/dbus-test.c:
8102         Kill dict test
8103
8104         * doc/dbus-specification.sgml:
8105         Update spec
8106
8107         * test/data/incomplete-messages/missing-body.message:
8108         * test/data/invalid-messages/bad-boolean.message:
8109         * test/data/invalid-messages/bad-boolean-array.message:
8110         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
8111         * test/data/invalid-messages/boolean-has-no-value.message-raw:
8112         * test/data/invalid-messages/too-short-dict.message:
8113         * test/data/valid-messages/dict-simple.message:
8114         * test/data/valid-messages/dict.message:
8115         * test/data/valid-messages/emptiness.message:
8116         * test/data/valid-messages/lots-of-arguments.message:
8117         * test/data/valid-messages/no-padding.message:
8118         * test/data/valid-messages/recursive-types.message:
8119         Add missing NAME fields
8120         Fix up dicts & arrays
8121
8122         * test/data/invalid-messages/dict-with-nil-value.message:
8123         Removed, this is not invalid anymore.
8124
8125         * test/data/valid-messages/recursive-types.message:
8126         Add new test for deeply recursive types.
8127
8128 2003-04-07  Havoc Pennington  <hp@pobox.com>
8129
8130         * bus/driver.c (bus_driver_handle_acquire_service): return an
8131         error if you try to acquire a service that starts with ':'
8132
8133 2003-04-07  Havoc Pennington  <hp@redhat.com>
8134
8135         * doc/dbus-specification.sgml: require that base service names
8136         start with ':' and that the base service is created/deleted
8137         as first and last things a connection does on the bus
8138
8139         * bus/dispatch.c (check_existent_service_activation): lots more
8140         work on the activation test; it doesn't fully pass yet...
8141
8142         * test/test-service.c (main): fix so we don't memleak the
8143         connection to the message bus
8144         (filter_func): accept a message asking us to exit
8145
8146 2003-04-06  Havoc Pennington  <hp@pobox.com>
8147
8148         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
8149         from Colin Walters
8150
8151         * configure.in: fixes to Qt detection from Colin Walters
8152
8153         * doc/Makefile.am: Only remove generated docbook dirs if they
8154         exist, from Colin Walters
8155
8156         * dbus/dbus-bus.c: change how we set well-known connections to
8157         NULL, so that it works if a single connection is stored in
8158         two well-known array slots.
8159
8160         * test/Makefile.am: remove a lot of stuff that isn't immediately
8161         useful, it's in CVS history if we want it.
8162
8163         * test/test-service.c: use dbus-mainloop instead of that
8164         watch.[hc] crack
8165
8166 2003-04-06  Havoc Pennington  <hp@pobox.com>
8167
8168         * dbus/Makefile.am: split lists of sources into stuff that goes in
8169         the library, util functions that go in the lib and are also used
8170         elsewhere, and util functions that are used in tests/daemon but
8171         don't go in the lib.
8172
8173         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
8174         here so it can be used in test binaries also
8175
8176 2003-04-06  Havoc Pennington  <hp@pobox.com>
8177
8178         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
8179         here in the parent process, so we can return an error if it
8180         fails. Also, move some of the code into the child so the parent
8181         is less hosed if we fail midway through.
8182
8183         * bus/bus.c (bus_context_new): move pidfile detection further up
8184         in the function, before we start overwriting sockets and such.
8185
8186         * bus/messagebus.in: adjust this a bit, not sure if it will work.
8187
8188         * configure.in: add --with-system-pid-file and --with-system-socket
8189
8190 2003-04-06  Colin Walters  <walters@verbum.org>
8191
8192         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
8193
8194         * bus/system.conf.in: Declare a pidfile.
8195
8196         * bus/bus.c (bus_context_new): Test for an existing pid file, and
8197         create one (if appropriate).
8198
8199         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
8200         (struct BusConfigParser) [pidfile]: New.
8201         (element_type_to_name, merge_included, start_busconfig_child)
8202         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
8203         (bus_config_parser_unref): Free it.
8204         (bus_config_parser_get_pidfile): New function.
8205
8206         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
8207
8208         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
8209
8210         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
8211
8212         * dbus/dbus-sysdeps.h: Prototype it.
8213
8214 2003-04-06  Havoc Pennington  <hp@pobox.com>
8215
8216         * bus/bus.c (bus_context_new): print the address in here, rather
8217         than in main(), because we need to do it before forking the daemon
8218
8219         * bus/dispatch.c (send_service_nonexistent_error): set the sender
8220         on the service nonexistent error
8221
8222         * bus/driver.c (bus_driver_handle_acquire_service): set the
8223         sender on the AcquireService reply
8224
8225         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
8226         server also listen on a UNIX socket so services can connect to it.
8227
8228 2003-04-06  Havoc Pennington  <hp@pobox.com>
8229
8230         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
8231         so it detects deadlocks and also we actually init threads when
8232         debugging.
8233
8234 2003-04-06  Havoc Pennington  <hp@pobox.com>
8235
8236         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8237         save the domain socket name, and unlink it when we disconnect the
8238         server. Means that at least when we exit normally, we won't leave
8239         a bunch of junk in /tmp
8240
8241         * dbus/dbus-transport-unix.c
8242         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
8243         memory management). (I was making a real change here but then
8244         didn't)
8245
8246 2003-04-06  Havoc Pennington  <hp@pobox.com>
8247
8248         * bus/bus.c (bus_context_new): fix wrong handling of
8249         server_data_slot_unref() in the error case.
8250
8251         * dbus/dbus-internals.h (_dbus_assert): change so it passes
8252         "(condition) != 0" to _dbus_real_assert so that
8253         "_dbus_assert (pointer)" doesn't cause a warning
8254
8255         * bus/main.c (main): accept --print-address option to print out
8256         the message bus address
8257
8258         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
8259
8260         * dbus/dbus-transport.c (_dbus_transport_open): special error for
8261         "tmpdir" option to unix: address on client side
8262
8263         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
8264         to unix: address
8265
8266         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
8267         we can use to create sockets in the test suite.
8268
8269         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
8270         cleanly. To be used for testing.
8271
8272         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
8273
8274         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
8275
8276         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8277         handle trying to call this when there's no servers active
8278
8279 2003-04-05  Havoc Pennington  <hp@pobox.com>
8280
8281         * NEWS: update
8282
8283         * configure.in: 0.8
8284
8285 2003-04-05  Havoc Pennington  <hp@pobox.com>
8286
8287         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
8288         crash on startup. Need to get "try starting the daemon"
8289         in the test suite I guess. ;-)
8290
8291         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
8292         tracked the number of open connections; it's better done in
8293         application-specific code as you want it to span all servers etc.
8294
8295 2003-04-05  Havoc Pennington  <hp@pobox.com>
8296
8297         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
8298         patch from Colin Walters
8299
8300 2003-04-05  Havoc Pennington  <hp@pobox.com>
8301
8302         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
8303         reality; in fact multiple mechanisms are allowed.
8304
8305         * dbus/dbus-internals.c (_dbus_real_assert)
8306         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
8307         _dbus_assert_not_reached() into functions, so that they don't show
8308         up in basic block counts for test coverage, and don't use up as
8309         much disk space. Does mean slower execution speed though, so
8310         assumes --disable-asserts is the normal production case.
8311
8312 2003-04-05  Havoc Pennington  <hp@pobox.com>
8313
8314         * test/Makefile.am (dist-hook): also dist *.in files
8315
8316         * NEWS: update
8317
8318         * configure.in: 0.7
8319
8320 2003-04-05  Havoc Pennington  <hp@pobox.com>
8321
8322         * dbus/dbus-string.c: docs warning
8323
8324         * dbus/dbus-spawn.c: missing docs
8325
8326         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
8327
8328 2003-04-05  Havoc Pennington  <hp@pobox.com>
8329
8330         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
8331         magic from GLib
8332
8333         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
8334         to -1 once we've reaped the babysitter
8335         (_dbus_babysitter_handle_watch): do as much work as we can, not
8336         just one go of it
8337
8338         * bus/activation.c: add code using DBusBabysitter so that we
8339         handle it when a service fails to start up properly.
8340         (bus_activation_service_created): don't remove the activation
8341         entries as we go, just let them get removed when we free the pending
8342         activation. Unref reply messages after sending them.
8343
8344 2003-04-05  Havoc Pennington  <hp@pobox.com>
8345
8346         * test/decode-gcov.c (main): print per-directory stats in the report
8347
8348         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
8349
8350 2003-04-05  Havoc Pennington  <hp@pobox.com>
8351
8352         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
8353
8354         * test/decode-gcov.c: hack up a little program to suck data
8355         out of gcov files. Yes this is sort of silly.
8356
8357         * configure.in: define something in config.h and do an
8358         AM_CONDITIONAL when gcov is enabled
8359
8360 2003-04-04  Havoc Pennington  <hp@redhat.com>
8361
8362         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
8363         return a "babysitter" object that is used to monitor the status of
8364         the spawned process and reap it when required.
8365
8366         * test/test-segfault.c, test/test-exit.c,
8367         test/test-sleep-forever.c: binaries that do various lame things,
8368         used in the test suite.
8369
8370         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
8371
8372 2003-04-03  Havoc Pennington  <hp@pobox.com>
8373
8374         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
8375         in preparation for modifying it, dbus-sysdeps is getting
8376         a bit unmanageable.
8377
8378 2003-04-03  Havoc Pennington  <hp@redhat.com>
8379
8380         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
8381         have multiple ones
8382
8383         * bus/*.[hc]: adapt to mainloop change
8384
8385 2003-04-03  Havoc Pennington  <hp@redhat.com>
8386
8387         * bus/activation.c (load_directory): fix up memleaks
8388         (bus_activation_entry_free): free the entry
8389
8390         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
8391         we get one from the message bus; fix memleaks.
8392
8393         * dbus/dbus-message.c (dbus_set_error_from_message): new function
8394
8395 2003-04-03  Havoc Pennington  <hp@pobox.com>
8396
8397         * bus/config-parser.c (bus_config_parser_unref): free
8398         list of mechanisms, bug discovered by test suite enhancements
8399         (putting system.conf and session.conf into suite)
8400
8401         * test/Makefile.am, test/test-service.c: add placeholder for a
8402         test service that we'll activate as part of test suite. Doesn't
8403         do anything yet.
8404
8405         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
8406         setting NULL value, and use system malloc not dbus_malloc()
8407         when we have unavoidable memleakage.
8408
8409         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
8410         didn't work, and support DBUS_BUS_ACTIVATION.
8411
8412         * bus/activation.c (child_setup): pass our well-known bus type to
8413         the child
8414
8415         * bus/config-parser.c: support <type> to specify well-known type
8416
8417         * doc/dbus-specification.sgml: document the env variables to
8418         locate well-known buses and find service activator
8419
8420 2003-04-02  Havoc Pennington  <hp@redhat.com>
8421
8422         * test/Makefile.am (all-local): add a rule to copy tests to
8423         builddir, so we can have generated tests. Use this to remove the
8424         silly hack for testing system.conf and session.conf. Will use this
8425         shortly to generate .service files pointing to test binaries.
8426
8427 2003-04-02  Havoc Pennington  <hp@redhat.com>
8428
8429         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
8430         current alloc and needed new length, not max of the doubled
8431         allocation and needed new length. Also, when building tests,
8432         don't do the double-allocation stuff, just realloc every time.
8433
8434 2003-04-02  Havoc Pennington  <hp@redhat.com>
8435
8436         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
8437         in error messages
8438         (_dbus_string_get_dirname): new
8439         (_dbus_sysdeps_test): new
8440         (_dbus_directory_open): include dirnames in error messages
8441
8442         * bus/config-parser.c: interpret <include> and <includedir> and
8443         <servicedir> relative to config file location if the given
8444         filename is not absolute.
8445
8446         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
8447
8448 2003-04-02  Havoc Pennington  <hp@redhat.com>
8449
8450         * bus/connection.c (bus_transaction_send_error_reply): set sender
8451         service for the error, and unref the reply on success
8452
8453         * bus/activation.c: convert to use BusTransaction so OOM can be
8454         handled correctly
8455         (bus_activation_service_created): set sender of the message
8456
8457 2003-04-01  Havoc Pennington  <hp@redhat.com>
8458
8459         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
8460         <includedir> (at least mostly)
8461
8462         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
8463         first, then the user ID
8464
8465 2003-04-01  Havoc Pennington  <hp@pobox.com>
8466
8467         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
8468         function
8469
8470         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
8471
8472         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
8473
8474         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
8475         socket 0777, and unlink any existing socket.
8476
8477         * bus/bus.c (bus_context_new): change our UID/GID and fork if
8478         the configuration file so specifies; set up auth mechanism
8479         restrictions
8480
8481         * bus/config-parser.c (bus_config_parser_content): add support
8482         for <fork> option and fill in code for <auth>
8483
8484         * bus/system.conf.in: add <fork/> to default configuration,
8485         and limit auth mechanisms to EXTERNAL
8486
8487         * doc/config-file.txt (Elements): add <fork>
8488
8489         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
8490         (_dbus_change_identity): new function
8491
8492 2003-03-31  Havoc Pennington  <hp@redhat.com>
8493
8494         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
8495         (_dbus_listen_unix_socket): fix off-by-one error in null
8496         termination spotted by Nalin
8497
8498 2003-03-31  Havoc Pennington  <hp@redhat.com>
8499
8500         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
8501         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
8502         having a real home directory available.
8503
8504 2003-03-31  Havoc Pennington  <hp@redhat.com>
8505
8506         * bus/Makefile.am (install-data-hook): create /var/run/dbus
8507
8508         * bus/messagebus.in: add init script for Red Hat /etc/init.d
8509
8510         * configure.in: add support for specifying a style of init script
8511         to install
8512
8513 2003-03-31  Havoc Pennington  <hp@redhat.com>
8514
8515         Fix some annoying DBusString API and fix all affected code.
8516
8517         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
8518         max_length argument
8519         (_dbus_string_get_data): change to return string instead of using
8520         an out param
8521         (_dbus_string_get_const_data): ditto
8522         (_dbus_string_get_data_len): ditto
8523         (_dbus_string_get_const_data_len): ditto
8524
8525 2003-03-31  Havoc Pennington  <hp@redhat.com>
8526
8527         * bus/main.c (main): fix up the command line arguments to be nicer
8528
8529 2003-03-31  Havoc Pennington  <hp@redhat.com>
8530
8531         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
8532         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
8533         final location that lands in the config file
8534
8535         * bus/config-loader-expat.c (bus_config_load): fix type of
8536         XML_Parser variable
8537
8538         * doc/TODO: remove TODO item for dbus_bus_get()
8539
8540         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
8541
8542 2003-03-31  Havoc Pennington  <hp@pobox.com>
8543
8544         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
8545         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
8546         argument since they are always client side
8547
8548         * dbus/dbus-server.c (dbus_server_get_address): new function
8549
8550         * bus/main.c (main): take the configuration file as an argument.
8551
8552         * test/data/valid-config-files/debug-allow-all.conf: new file to
8553         use with dispatch.c tests for example
8554
8555         * bus/test-main.c (main): require test data dir
8556
8557         * bus/bus.c (bus_context_new): change this to take a
8558         configuration file name as argument
8559
8560         * doc/config-file.txt (Elements): add <servicedir>
8561
8562         * bus/system.conf, bus/session.conf: new files
8563
8564         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
8565         well-known socket if none set
8566
8567         * configure.in: create system.conf and session.conf
8568
8569 2003-03-30  Havoc Pennington  <hp@pobox.com>
8570
8571         * bus/config-parser.c: hacking
8572
8573         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
8574         to shut down, since it could cause weirdness with the DBusList
8575         lock
8576
8577         * dbus/dbus-list.c (_dbus_list_test): add tests for the
8578         link-oriented stack routines
8579         (alloc_link): free the mempool if the first alloc from it fails
8580
8581         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
8582
8583         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
8584         from GLib
8585         (_dbus_string_skip_white): new
8586
8587         * doc/config-file.txt (Elements): add <includedir>
8588
8589 2003-03-28  Havoc Pennington  <hp@pobox.com>
8590
8591         * dbus/dbus-string.c (_dbus_string_copy_data_len)
8592         (_dbus_string_copy_data): new functions
8593
8594 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
8595
8596         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
8597         * dbus/dbus-bus.h:
8598         Add dbus_bus_get.
8599
8600         * dbus/dbus-memory.c:
8601         Fix a doc comment.
8602
8603 2003-03-28  Havoc Pennington  <hp@pobox.com>
8604
8605         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
8606         I think it may have just been superstition. Not sure.
8607
8608         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
8609         failures that were not being handled.
8610
8611         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
8612
8613         * dbus/dbus-memory.c: add ability to set number of mallocs in a
8614         row that will fail on out-of-memory.
8615
8616         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
8617         function for testing out-of-memory handling.
8618
8619         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
8620         allocation functions, they do map exactly to the expat ones.
8621
8622 2003-03-27  Havoc Pennington  <hp@redhat.com>
8623
8624         * bus/config-loader-libxml.c (bus_config_load): add another error
8625         check
8626
8627 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
8628
8629         * doc/TODO:
8630         Add note about automatic service activation.
8631
8632         * doc/dbus-specification.sgml:
8633         Rename the specification and clarify a few things.
8634
8635 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
8636
8637         * Doxyfile.in:
8638         * dbus/dbus-address.c:
8639         * dbus/dbus-dict.c:
8640         * dbus/dbus-marshal.c:
8641         * dbus/dbus-server-debug-pipe.c:
8642         * dbus/dbus-transport-unix.c:
8643         Fix documentation warnings.
8644
8645 2003-03-26  Havoc Pennington  <hp@pobox.com>
8646
8647         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
8648         after every test so it's quick and easy to see which leaked, and
8649         so we test multiple dbus_shutdown() calls
8650
8651         * configure.in: change configure.in XML stuff to also support
8652         expat
8653
8654         * config-loader-libxml.c: some hacking
8655
8656         * config-loader-expat.c: some hacking
8657
8658         * config-parser.c: some hacking, plus tests
8659
8660 2003-03-25  Havoc Pennington  <hp@redhat.com>
8661
8662         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
8663
8664         * configure.in: add --with-xml option to specify XML library,
8665         right now only libxml is supported.
8666
8667         * bus/config-loader-libxml.c, config-parser.c: sync some minor
8668         nonworking code between home and work, still just stubs
8669
8670 2003-03-24  Havoc Pennington  <hp@redhat.com>
8671
8672         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
8673         file
8674
8675         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
8676         NULL argument for "message" if the error is a well-known one,
8677         fill in a generic message in this case.
8678
8679         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
8680         favor of DBusError
8681
8682         * bus/test.c (bus_test_flush_bus): add
8683
8684         * bus/policy.c (bus_policy_test): test code stub
8685
8686 2003-03-24  Havoc Pennington  <hp@pobox.com>
8687
8688         * bus/connection.c (bus_connections_setup_connection): set up
8689         the "can this user connect" function, but it always returns
8690         TRUE until we have a config file parser so we can have a config
8691         file that allows connections.
8692
8693 2003-03-23  Havoc Pennington  <hp@pobox.com>
8694
8695         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
8696         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
8697         the mutex, so we can check for proper memory management
8698         and OOM handling.
8699
8700         * dbus/dbus-dataslot.c: remove the mutex from
8701         DBusDataSlotAllocator and lock it manually when using it,
8702         to simplify fitting it into the global slots framework.
8703
8704         * dbus/dbus-threads.c (init_static_locks): rework how we're
8705         handling global locks so they are easily shut down.
8706
8707         * bus/policy.c (bus_policy_append_rule): fix
8708
8709         * bus/test-main.c (main): check for memleaks
8710
8711         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
8712         test suite check for memleaks
8713
8714         * dbus/dbus-memory.c: add support in test mode for tracking
8715         number of outstanding blocks
8716
8717 2003-03-23  Havoc Pennington  <hp@pobox.com>
8718
8719         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
8720         policies code
8721
8722         * dbus/dbus-hash.h: add ULONG hash keys
8723
8724         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
8725         (_dbus_get_group_id): new function
8726
8727 2003-03-20  Havoc Pennington  <hp@redhat.com>
8728
8729         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
8730         new function
8731         (dbus_connection_get_unix_user): new function
8732
8733 2003-03-20  Havoc Pennington  <hp@pobox.com>
8734
8735         * bus/connection.c (bus_connection_send_oom_error): assert that
8736         message has a sender
8737         (connection_execute_transaction): ditto
8738         (bus_connection_preallocate_oom_error): fix to set the sender, and
8739         set recipient to the destination service, not the bus driver
8740
8741         * bus/policy.c: hacking
8742
8743         * dbus/dbus-message.c (dbus_message_service_is): new function
8744         (dbus_message_sender_is): new
8745
8746 2003-03-19  Havoc Pennington  <hp@redhat.com>
8747
8748         * bus/policy.c: start sketching code for policy restrictions on
8749         what connections can do.
8750
8751 2003-03-18  Havoc Pennington  <hp@redhat.com>
8752
8753         * doc/TODO: some notes on high-level todo items. Little nitpick
8754         stuff is all in @todo, so no need to add it here.
8755
8756         * doc/config-file.txt: some notes on how config file might look
8757
8758 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
8759
8760         * configure.in: 0.6
8761
8762         * NEWS: Update.
8763
8764 2003-03-17  Havoc Pennington  <hp@redhat.com>
8765
8766         * dbus/dbus-internals.h: add gcc attributes so that
8767         our printf-style functions warn on bad arguments to
8768         format
8769
8770         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
8771         format bug
8772
8773         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8774         printf format bug
8775
8776 2003-03-17  Havoc Pennington  <hp@redhat.com>
8777
8778         * bus/test-main.c (main): make it print something as it runs
8779         so make check doesn't look stuck
8780
8781         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
8782         from CVS, now obsolete
8783
8784 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
8785
8786         * bus/dispatch.c: (bus_dispatch):
8787         Refetch the service name since it may have been reallocated
8788         when dbus_message_set_sender was called.
8789
8790         * dbus/dbus-sysdeps.c: (_dbus_accept):
8791         Add address and address length variables and use them to stop
8792         valgrind from complaining.
8793
8794 2003-03-17  Havoc Pennington  <hp@pobox.com>
8795
8796         All tests pass, no memleaks, no valgrind complaints.
8797
8798         * bus/test.c: refcount handler_slot
8799
8800         * bus/connection.c (bus_connections_new): refcount
8801         connection_data_slot
8802
8803         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
8804         bytes so that auth scripts pass.
8805
8806         * bus/dispatch.c: init message_handler_slot so it gets allocated
8807         properly
8808
8809         * bus/dispatch.c (message_handler_slot_ref): fix memleak
8810
8811         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
8812         dealloc server_pipe_hash when no longer used for benefit of
8813         leak checking
8814
8815         * dbus/dbus-auth.c (process_command): memleak fix
8816
8817         * bus/dispatch.c (check_hello_message): memleak fix
8818
8819 2003-03-16  Havoc Pennington  <hp@pobox.com>
8820
8821         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
8822
8823 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
8824
8825         * bus/activation.c (bus_activation_activate_service): Append
8826         the pending activation entry to the list of pending activations.
8827
8828 2003-03-16  Havoc Pennington  <hp@pobox.com>
8829
8830         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
8831         connections
8832
8833         * dbus/dbus-address.c (create_entry): fix OOM handling when
8834         failing to alloc entry->method
8835
8836 2003-03-16  Havoc Pennington  <hp@pobox.com>
8837
8838         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
8839         the watch
8840
8841         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8842         add some missing dbus_set_result
8843
8844         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
8845         alloc the DBusMessageHandler
8846
8847         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
8848         the transport here, since we call this from the finalizer; it
8849         resulted in a double-finalize.
8850
8851         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
8852         where we tried to use transport->connection that was NULL,
8853         happened when transport was disconnected early on due to OOM
8854
8855         * bus/*.c: adapt to handle OOM for watches/timeouts
8856
8857         * dbus/dbus-transport-unix.c: port to handle OOM during
8858         watch handling
8859
8860         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
8861         reference to unused bytes instead of a copy
8862
8863         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
8864         out of memory
8865
8866         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
8867         FALSE on OOM
8868
8869         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
8870         of memory
8871
8872 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
8873
8874         * doc/dbus-specification.sgml:
8875         Document reply message for ActivateService.
8876
8877 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
8878
8879         * bus/activation.c: (bus_pending_activation_entry_free),
8880         (bus_pending_activation_free), (bus_activation_new),
8881         (bus_activation_unref), (bus_activation_service_created),
8882         (bus_activation_activate_service):
8883         * bus/activation.h:
8884         * bus/bus.c: (bus_context_new):
8885         * bus/desktop-file.c: (new_section):
8886         * bus/driver.c: (bus_driver_send_service_deleted),
8887         (bus_driver_handle_activate_service):
8888         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
8889         * bus/services.h:
8890         * dbus/dbus-connection.c:
8891         (dbus_connection_send_with_reply_and_block):
8892         * dbus/dbus-message.c: (dbus_message_append_args_valist):
8893         * dbus/dbus-protocol.h:
8894         Make activation work better. Now pending activations will be queued
8895         and the daemon won't try to activate services that are already registered.
8896
8897 2003-03-16  Havoc Pennington  <hp@pobox.com>
8898
8899         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
8900         connection data
8901
8902         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
8903         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
8904
8905 2003-03-16  Havoc Pennington  <hp@pobox.com>
8906
8907         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
8908         this. always run the test suite before commit...
8909
8910         * bus/*: adapt to DBusConnection API changes
8911
8912         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
8913         requires renaming stuff to avoid dbus_connection_dispatch name
8914         conflict.
8915
8916         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
8917         function
8918
8919         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8920         separate from _dbus_message_loader_return_buffer()
8921
8922         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
8923         this, because it's now always broken to use; the number of
8924         messages in queue vs. the number still buffered by the message
8925         loader is undefined/meaningless. Should use
8926         dbus_connection_get_dispatch_state().
8927         (dbus_connection_dispatch): rename from
8928         dbus_connection_dispatch_message
8929
8930 2003-03-16  Havoc Pennington  <hp@pobox.com>
8931
8932         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
8933         implementation
8934
8935 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
8936
8937         * dbus/dbus-connection.c:
8938         (dbus_connection_send_with_reply_and_block):
8939         Decrease connection->n_incoming when removing an entry
8940         from the list.
8941         * dbus/dbus-dict.c: (dbus_dict_entry_free),
8942         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
8943         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
8944         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
8945         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
8946         (dbus_dict_get_byte_array):
8947         Handle NULL arrays and strings. Also add support for byte arrays.
8948
8949         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
8950         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
8951         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
8952         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
8953         (_dbus_demarshal_dict), (demarshal_and_validate_len),
8954         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
8955         * dbus/dbus-marshal.h:
8956         Add support for marshalling and demarshalling empty arrays and strings.
8957
8958         * dbus/dbus-message.c: (dbus_message_append_args_valist),
8959         (dbus_message_append_string_array),
8960         (dbus_message_iter_get_boolean),
8961         (dbus_message_iter_get_boolean_array),
8962         (dbus_message_iter_get_int32_array),
8963         (dbus_message_iter_get_uint32_array),
8964         (dbus_message_iter_get_double_array),
8965         (dbus_message_iter_get_byte_array),
8966         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
8967         (check_message_handling):
8968         Add support for getting empty arrays and dicts.
8969
8970         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
8971         Don't do any validation at all for now, that's better than just checking
8972         for ASCII.
8973
8974         * test/data/valid-messages/emptiness.message:
8975         New test message with lots of empty arrays.
8976
8977 2003-03-16  Havoc Pennington  <hp@pobox.com>
8978
8979         * dbus/dbus-connection.c
8980         (_dbus_connection_queue_received_message_link): new function that
8981         can't fail due to OOM
8982
8983         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
8984         new function pops a message together with a list link
8985         containing it.
8986
8987         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
8988         message queuing functions to avoid needing to alloc memory
8989
8990 2003-03-16  Havoc Pennington  <hp@pobox.com>
8991
8992         Oops - test code was only testing failure of around 30 of the
8993         mallocs in the test path, but it turns out there are 500+
8994         mallocs. I believe this was due to misguided linking setup such
8995         that there was one copy of dbus_malloc etc. in the daemon and one
8996         in the shared lib, and only daemon mallocs were tested. In any
8997         case, the test case now tests all 500+ mallocs, and doesn't pass
8998         yet, though there are lots of fixes in this patch.
8999
9000         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9001         this so that it doesn't need to allocate memory, since it
9002         has no way of indicating failure due to OOM (and would be
9003         annoying if it did).
9004
9005         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
9006
9007         * bus/Makefile.am: rearrange to create two self-contained
9008         libraries, to avoid having libraries with overlapping symbols.
9009         that was resulting in weirdness, e.g. I'm pretty sure there
9010         were two copies of global static variables.
9011
9012         * dbus/dbus-internals.c: move the malloc debug stuff to
9013         dbus-memory.c
9014
9015         * dbus/dbus-list.c (free_link): free list mempool if it becomes
9016         empty.
9017
9018         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
9019
9020         * dbus/dbus-address.c (dbus_parse_address): free list nodes
9021         on failure.
9022
9023         * bus/dispatch.c (bus_dispatch_add_connection): free
9024         message_handler_slot when no longer using it, so
9025         memory leak checkers are happy for the test suite.
9026
9027         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
9028
9029         * bus/bus.c (new_connection_callback): disconnect in here if
9030         bus_connections_setup_connection fails.
9031
9032         * bus/connection.c (bus_connections_unref): fix to free the
9033         connections
9034         (bus_connections_setup_connection): if this fails, don't
9035         disconnect the connection, just be sure there are no side
9036         effects.
9037
9038         * dbus/dbus-string.c (undo_alignment): unbreak this
9039
9040         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
9041         leaking
9042         (_dbus_auth_new): fix the order in which we free strings
9043         on OOM failure
9044
9045         * bus/connection.c (bus_connection_disconnected): fix to
9046         not send ServiceDeleted multiple times in case of memory
9047         allocation failure
9048
9049         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
9050         get the base service name
9051         (dbus_bus_register_client): don't return base service name,
9052         instead store it on the DBusConnection and have an accessor
9053         function for it.
9054         (dbus_bus_register_client): rename dbus_bus_register()
9055
9056         * bus/dispatch.c (check_hello_message): verify that other
9057         connections on the bus also got the correct results, not
9058         just the one sending hello
9059
9060 2003-03-15  Havoc Pennington  <hp@pobox.com>
9061
9062         Make it pass the Hello handling test including all OOM codepaths.
9063         Now to do other messages...
9064
9065         * bus/services.c (bus_service_remove_owner): fix crash when
9066         removing owner from an empty list of owners
9067         (bus_registry_ensure): don't leave service in the list of
9068         a connection's owned services if we fail to put the service
9069         in the hash table.
9070
9071         * bus/connection.c (bus_connection_preallocate_oom_error): set
9072         error flag on the OOM error.
9073
9074         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9075         handle _dbus_transport_set_connection failure
9076
9077         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
9078         to create watches up front and simply enable/disable them as
9079         needed.
9080         (unix_connection_set): this can now fail on OOM
9081
9082         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
9083         of enabling/disabling a watch or timeout.
9084
9085         * bus/loop.c (bus_loop_iterate): don't touch disabled
9086         watches/timeouts
9087
9088         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
9089
9090 2003-03-15  Havoc Pennington  <hp@pobox.com>
9091
9092         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
9093         write useful test code, after all that futzing around ;-)
9094
9095         Test does not yet pass because we can't handle OOM in
9096         _dbus_transport_messages_pending (basically,
9097         dbus_connection_preallocate_send() does not prealloc the write
9098         watch). To fix this, I think we need to add new stuff to
9099         set_watch_functions, namely a SetEnabled function so we can alloc
9100         the watch earlier, then enable it later.
9101
9102         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
9103         dbus-memory.c to the convenience lib
9104
9105         * bus/test.c: rename some static functions to keep them clearly
9106         distinct from stuff in connection.c. Handle client disconnection.
9107
9108 2003-03-14  Havoc Pennington  <hp@pobox.com>
9109
9110         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
9111         transport, tests more of the real codepath. Set up clients
9112         with bus_setup_debug_client.
9113
9114         * bus/test.c (bus_setup_debug_client): function to set up debug
9115         "clients" on the main loop
9116
9117         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
9118         support
9119
9120         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
9121         server type
9122
9123         * dbus/dbus-server-debug.c: support a debug server based on pipes
9124
9125         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
9126         (_dbus_close): new function
9127
9128         * configure.in: check for socketpair
9129
9130 2003-03-14  Havoc Pennington  <hp@redhat.com>
9131
9132         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
9133         cheesy hack
9134
9135         * dbus/dbus-transport-debug.c: rework this a good bit to be
9136         less complicated. hopefully still works.
9137
9138         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
9139         manually
9140
9141         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
9142         after running it
9143
9144         * dbus/dbus-message.c (dbus_message_copy): rename from
9145         dbus_message_new_from_message, fix it up to copy
9146         all the message fields, add test case
9147
9148         * bus/dispatch.c (bus_dispatch_test): add some more test code,
9149         not quite passing yet
9150
9151 2003-03-14  Havoc Pennington  <hp@pobox.com>
9152
9153         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
9154         until no work remains" in test code. (the large diff here
9155         is just code movement, no actual changes)
9156
9157         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
9158         1, no point waiting around for test code.
9159         (_dbus_server_debug_accept_transport): unref the timeout
9160         after adding it (right?)
9161
9162         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
9163
9164 2003-03-13  Havoc Pennington  <hp@redhat.com>
9165
9166         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
9167         out of memory
9168
9169         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
9170         of memory
9171
9172         * dbus/dbus-connection.h: Make AddWatchFunction and
9173         AddTimeoutFunction return a bool so they can fail on out-of-memory
9174
9175         * bus/bus.c (bus_context_new): set up timeout handlers
9176
9177         * bus/connection.c (bus_connections_setup_connection): set up
9178         timeout handlers
9179
9180         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
9181         can fail
9182
9183         * bus/bus.c (bus_context_new): adapt to changes
9184
9185         * bus/connection.c: adapt to changes
9186
9187         * test/watch.c: adapt to DBusWatch changes
9188
9189         * bus/dispatch.c (bus_dispatch_test): started adding this but
9190         didn't finish
9191
9192 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
9193
9194         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
9195
9196 2003-03-13  Havoc Pennington  <hp@pobox.com>
9197
9198         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
9199         set up a test framework as for the library
9200
9201 2003-03-12  Havoc Pennington  <hp@pobox.com>
9202
9203         Throughout: purge global variables, introduce BusActivation,
9204         BusConnections, BusRegistry, etc. objects instead.
9205
9206         * bus/bus.h, bus/bus.c: introduce BusContext as a global
9207         message bus object
9208
9209         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
9210         going to redo this a bit differently I think
9211
9212 2003-03-12  Havoc Pennington  <hp@redhat.com>
9213
9214         Mega-patch that gets the message bus daemon initially handling
9215         out-of-memory. Work still needed. Also lots of random
9216         moving stuff to DBusError instead of ResultCode.
9217
9218         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
9219
9220         * dbus/dbus-connection.c
9221         (dbus_connection_send_with_reply_and_block): use DBusError
9222
9223         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
9224         DBusResultCode
9225
9226         * dbus/dbus-connection.c (dbus_connection_send): drop the result
9227         code here, as the only failure possible is OOM.
9228
9229         * bus/connection.c (bus_connection_disconnect):
9230         rename bus_connection_disconnected as it's a notification only
9231
9232         * bus/driver.c (bus_driver_handle_acquire_service): don't free
9233         "name" on get_args failure, should be done by get_args;
9234         don't disconnect client for bad args, just return an error.
9235         (bus_driver_handle_service_exists): ditto
9236
9237         * bus/services.c (bus_services_list): NULL-terminate returned array
9238
9239         * bus/driver.c (bus_driver_send_service_lost)
9240         (bus_driver_send_service_acquired): send messages from driver to a
9241         specific client to the client's unique name, not to the broadcast
9242         service.
9243
9244         * dbus/dbus-message.c (decode_header_data): reject messages that
9245         contain no name field
9246         (_dbus_message_get_client_serial): rename to
9247         dbus_message_get_serial and make public
9248         (_dbus_message_set_serial): rename from set_client_serial
9249         (_dbus_message_set_reply_serial): make public
9250         (_dbus_message_get_reply_serial): make public
9251
9252         * bus/connection.c (bus_connection_foreach): allow stopping
9253         iteration by returning FALSE from foreach function.
9254
9255         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
9256         (dbus_connection_free_preallocated_send)
9257         (dbus_connection_preallocate_send): new API for sending a message
9258         without possibility of malloc failure.
9259         (dbus_connection_send_message): rename to just
9260         dbus_connection_send (and same for whole function family)
9261
9262         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
9263
9264         * dbus/dbus-sysdeps.c (_dbus_exit): new function
9265
9266         * bus/activation.c: handle/return errors
9267
9268         * dbus/dbus-errors.h: add more DBUS_ERROR #define
9269
9270         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
9271         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
9272         (_dbus_result_from_errno): move to this file
9273
9274 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
9275
9276         * dbus/dbus-marshal.c:
9277         (_dbus_marshal_set_string):
9278         Take a length argument so we can marshal the correct string
9279         length.
9280
9281         (_dbus_marshal_dict), (_dbus_demarshal_dict),
9282         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
9283         (_dbus_marshal_test):
9284         * dbus/dbus-marshal.h:
9285         Add support for marshalling and demarshalling dicts.
9286
9287         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9288         Add support for TYPE DICT.
9289
9290         * dbus/dbus-message.c: (set_string_field):
9291         Adjust header padding.
9292
9293         (dbus_message_append_args_valist), (dbus_message_append_dict),
9294         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
9295         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
9296         (check_message_handling), (check_have_valid_message):
9297         * dbus/dbus-message.h:
9298         Add functions for setting and getting dicts.
9299
9300         * dbus/dbus-protocol.h:
9301         Add DBUS_TYPE_DICT.
9302
9303         * dbus/dbus.h:
9304         Add dbus-dict.h
9305
9306         * doc/dbus-specification.sgml:
9307         Add information about how dicts are marshalled.
9308
9309         * test/data/invalid-messages/dict-with-nil-value.message:
9310         * test/data/invalid-messages/too-short-dict.message:
9311         * test/data/valid-messages/dict-simple.message:
9312         * test/data/valid-messages/dict.message:
9313         Add sample messages containing dicts.
9314
9315 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
9316
9317         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
9318
9319 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
9320
9321         * dbus/Makefile.am:
9322         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9323         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
9324         (dbus_dict_set_int32), (dbus_dict_set_uint32),
9325         (dbus_dict_set_double), (dbus_dict_set_string),
9326         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9327         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9328         (dbus_dict_set_string_array), (_dbus_dict_test):
9329         * dbus/dbus-dict.h:
9330         Fix according to comments from Havoc.
9331
9332 2003-03-06  Michael Meeks  <michael@server.home>
9333
9334         * configure.in: if we don't have kde-config, disable have_qt.
9335
9336 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
9337
9338         * dbus/Makefile.am:
9339         Add dbus-dict.[ch]
9340
9341         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9342         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
9343         (dbus_dict_remove), (dbus_dict_get_value_type),
9344         (dbus_dict_get_keys), (dbus_dict_put_boolean),
9345         (dbus_dict_put_int32), (dbus_dict_put_uint32),
9346         (dbus_dict_put_double), (dbus_dict_put_string),
9347         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
9348         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
9349         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
9350         (dbus_dict_get_int32), (dbus_dict_get_uint32),
9351         (dbus_dict_get_double), (dbus_dict_get_string),
9352         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
9353         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
9354         (dbus_dict_get_string_array), (_dbus_dict_test):
9355         * dbus/dbus-dict.h:
9356         Add DBusDict implementation
9357
9358         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
9359         * dbus/dbus-test.h:
9360         Add _dbus_dict_test
9361
9362 2003-03-04  Havoc Pennington  <hp@pobox.com>
9363
9364         * test/data/auth/*: adapt to changes
9365
9366         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
9367         USERID_BASE64 and change USERNAME_BASE64 to put in username not
9368         userid
9369
9370         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
9371         more stuff from being in a context name, to make the protocol
9372         simpler to deal with
9373
9374         * dbus/dbus-errors.c (dbus_error_has_name): new function
9375         (dbus_error_is_set): new function
9376
9377         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
9378         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
9379
9380         * dbus/dbus-connection.c (dbus_connection_flush): also read
9381         messages during a flush operation
9382
9383         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
9384
9385 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
9386
9387         * configure.in: Check for gethostbyname on Solaris.
9388
9389         * dbus/dbus-transport.c: (_dbus_transport_open):
9390         Remove duplicate "tcp" entry.
9391
9392         * doc/dbus-specification.sgml:
9393         Clarify some things.
9394
9395 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
9396
9397         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
9398         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
9399         (_dbus_keyring_test):
9400         * dbus/dbus-md5.c: (_dbus_md5_compute):
9401         * dbus/dbus-sha.c: (_dbus_sha_compute):
9402         Plug memory leaks.
9403
9404 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
9405
9406         * README: Add some things.
9407
9408 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
9409
9410         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
9411         after case DBUS_TYPE_BOOELAN.
9412
9413 2003-03-02  Havoc Pennington  <hp@pobox.com>
9414
9415         * test/break-loader.c (randomly_set_extreme_ints): add test that
9416         sets really huge and small integers
9417
9418         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
9419         that length of boolean array fits in the string, and that
9420         string has room for boolean value in single-bool case.
9421
9422         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
9423         optional value to "ALIGN" command which is what to fill the
9424         alignment with.
9425
9426         * test/data/valid-messages/no-padding.message: add regression
9427         test for the message padding problem
9428
9429 2003-03-02  Havoc Pennington  <hp@pobox.com>
9430
9431         * dbus/dbus-message.c (decode_header_data): fix to always init
9432         message_padding, from Benjamin Dauvergne
9433
9434 2003-03-02  Havoc Pennington  <hp@pobox.com>
9435
9436         * configure.in: 0.5
9437
9438         * NEWS: Update.
9439
9440 2003-03-01  Joe Shaw  <joe@assbarn.com>
9441
9442         * configure.in: Check for "struct cmsgcred" and try to access its
9443         members for BSD-like unices.
9444
9445         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
9446         _dbus_read_credentials_unix_socket().
9447         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
9448         read() for reading the credential byte off the unix socket.  Use
9449         struct cmsgcred on systems that support it.
9450
9451 2003-02-27  Alexander Larsson  <alexl@redhat.com>
9452
9453         * glib/Makefile.am:
9454         * configure.in:
9455         Make gthreads-2.0 dependency optional. Don't build thread test if
9456         its not found.
9457
9458 2003-02-27  Havoc Pennington  <hp@pobox.com>
9459
9460         * dbus/dbus-connection.c
9461         (dbus_connection_send_message_with_reply_and_block): fix doh!
9462         doh! doh! bug that resulted in never removing a reply from the
9463         queue, no wonder we called get_reply_serial so much ;-)
9464
9465         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
9466         and client serial instead of demarshaling them every time
9467
9468 2003-02-27  Havoc Pennington  <hp@pobox.com>
9469
9470         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
9471         more inlined, using dbus-string-private.h, speeds things up
9472         substantially
9473
9474         * dbus/dbus-string.c (_dbus_string_free): apply align offset
9475         when freeing the string
9476         (_dbus_string_steal_data): fix for align offset
9477         (undo_alignment): new function
9478
9479 2003-02-26  Havoc Pennington  <hp@redhat.com>
9480
9481         All kinds of audit fixes from Owen, plus initial attempt to
9482         handle unaligned memory returned from malloc.
9483
9484         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
9485         leave room for align_offset and nul byte
9486         (fixup_alignment): function to track an align_offset and
9487         ensure real->str is aligned
9488         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
9489         to allow a nul byte plus align offset
9490         (_dbus_string_lock): fix overflow issue
9491         (_dbus_string_init_const_len): add assertions on sanity of len,
9492         assign allocated to be ALLOCATION_PADDING larger than len
9493         (set_length): fixup the overflow handling
9494         (_dbus_string_get_data_len): fix overflow in assertion
9495         (open_gap): detect overflow in size of gap to be opened
9496         (_dbus_string_lengthen): add overflow check
9497         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
9498         (_dbus_string_append): add overflow check
9499         (_dbus_string_append_unichar): overflow
9500         (_dbus_string_delete): fix overflow in assertion
9501         (_dbus_string_copy_len): overflow in assertion
9502         (_dbus_string_replace_len): overflows in assertions
9503         (_dbus_string_find): change to implement in terms of
9504         _dbus_string_find_to
9505         (_dbus_string_find_to): assorted fixage
9506         (_dbus_string_equal_c_str): assert c_str != NULL,
9507         fix logic so the function works
9508         (_dbus_string_ends_with_c_str): fix overflow thingy
9509         (_dbus_string_base64_encode): overflow fix
9510         (_dbus_string_validate_ascii): overflow
9511         (_dbus_string_validate_nul): overflow
9512
9513 2003-02-26  Havoc Pennington  <hp@redhat.com>
9514
9515         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
9516
9517 2003-02-26  Alexander Larsson  <alexl@redhat.com>
9518
9519         * configure.in:
9520         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
9521
9522         * dbus/dbus-connection.c:
9523         * dbus/dbus-connection.h:
9524         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
9525         Add dbus_connection_set_wakeup_main_function and use it when queueing
9526         incoming and outgoing messages.
9527
9528
9529         * dbus/dbus-dataslot.c:
9530         Threadsafe usage of DBusDataSlotAllocator
9531
9532         * dbus/dbus-message.c: (dbus_message_get_args_iter):
9533         dbus_new can fail.
9534
9535         * dbus/dbus-server-unix.c:
9536         Add todo comment
9537
9538         * glib/dbus-gmain.c:
9539         Implement the new wakeup functions for glib.
9540
9541         * glib/Makefile.am:
9542         * glib/test-thread-client.c:
9543         * glib/test-thread-server.c:
9544         * glib/test-thread.h:
9545         Initial cut at some thread test code. Not really done yet.
9546
9547 2003-02-26  Havoc Pennington  <hp@pobox.com>
9548
9549         * dbus/dbus-connection.c
9550         (dbus_connection_send_message_with_reply_and_block): fix crash
9551         where we ref'd the outgoing message instead of the returned reply
9552
9553         * dbus/dbus-transport-unix.c (do_authentication): check read watch
9554         at the end of this function, so if we didn't need to read for
9555         authentication, we reinstall it for receiving messages
9556
9557         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
9558         a NULL sender for peer-to-peer case
9559
9560         * dbus/dbus-transport-unix.c (check_read_watch): handle
9561         !authenticated case correctly
9562
9563         * glib/dbus-gmain.c: add support for DBusServer
9564
9565         * dbus/dbus-server.c: add data slot support
9566
9567         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
9568         return values and handle errors
9569
9570         * dbus/dbus-dataslot.c: factor out the data slot stuff from
9571         DBusConnection
9572
9573         * Doxyfile.in (INPUT): add glib subdir
9574
9575         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
9576         setup_with_g_main instead of hookup_with_g_main; write docs
9577
9578 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
9579
9580         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
9581         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9582         * dbus/dbus-message.c: (dbus_message_append_boolean),
9583         (dbus_message_append_boolean_array),
9584         (dbus_message_get_args_valist), (_dbus_message_test):
9585         * dbus/dbus-message.h:
9586         * doc/dbus-specification.sgml:
9587         Various fixes as pointed out by Havoc.
9588
9589         * test/data/invalid-messages/bad-boolean-array.message:
9590         * test/data/invalid-messages/bad-boolean.message:
9591         Add invalid boolean value test cases.
9592
9593 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
9594
9595         * dbus/dbus-internals.c: (_dbus_type_to_string):
9596         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
9597         (_dbus_marshal_validate_arg):
9598         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9599         * dbus/dbus-message.c: (dbus_message_append_args_valist),
9600         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
9601         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
9602         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
9603         (dbus_message_iter_get_double),
9604         (dbus_message_iter_get_boolean_array), (message_iter_test):
9605         * dbus/dbus-message.h:
9606         * dbus/dbus-protocol.h:
9607         * doc/dbus-specification.sgml:
9608         * test/data/valid-messages/lots-of-arguments.message:
9609         Add support for boolean and boolean array types.
9610
9611 2003-02-23  Havoc Pennington  <hp@pobox.com>
9612
9613         * dbus/dbus-keyring.c: finish most of this implementation and
9614         simple unit test
9615
9616         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
9617         these barf if the error isn't cleared to NULL
9618
9619         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
9620         (_dbus_create_directory): new function
9621
9622         * dbus/dbus-errors.c (dbus_set_error): fix warning
9623
9624         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
9625         (_dbus_string_hex_decode): new function
9626         (test_hex_roundtrip): test code
9627
9628         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
9629
9630         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
9631
9632         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
9633         the save-to-temp/rename trick to atomically write the new file
9634         (_dbus_string_parse_uint): new function
9635
9636 2003-02-22  Havoc Pennington  <hp@pobox.com>
9637
9638         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
9639
9640 2003-02-22  Havoc Pennington  <hp@pobox.com>
9641
9642         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
9643         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
9644
9645         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
9646
9647         * dbus/test/data/sha-1: add US government test suite for SHA-1
9648
9649 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9650
9651         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
9652         Make string arrays NULL-terminated.
9653
9654         * dbus/dbus-memory.c: (dbus_free_string_array):
9655         * dbus/dbus-memory.h:
9656         New function for freeing NULL-terminated string arrays.
9657
9658         * dbus/dbus-message-builder.c: (append_quoted_string),
9659         (_dbus_message_data_load):
9660         Add support for array types.
9661
9662         * dbus/dbus-message.c: (check_message_handling):
9663         Add more types as test cases.
9664
9665         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
9666         (_dbus_string_parse_double):
9667         Add the start offset to the end offset.
9668
9669         * test/data/valid-messages/lots-of-arguments.message:
9670         New test message with lots of arguments.
9671
9672 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9673
9674         * dbus/dbus-message.c: (dbus_message_append_nil),
9675         (dbus_message_append_int32), (dbus_message_append_uint32),
9676         (dbus_message_append_double), (dbus_message_append_string),
9677         (dbus_message_append_int32_array),
9678         (dbus_message_append_uint32_array),
9679         (dbus_message_append_double_array),
9680         (dbus_message_append_byte_array),
9681         (dbus_message_append_string_array):
9682         Fix all out-of-memory handling in these functions.
9683
9684 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9685
9686         * dbus/dbus-message.c: (dbus_message_append_nil):
9687         Fix a silly.
9688
9689 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9690
9691         * dbus/dbus-message.c: (dbus_message_append_args_valist),
9692         (dbus_message_append_nil), (dbus_message_append_int32_array),
9693         (dbus_message_append_uint32_array),
9694         (dbus_message_append_double_array),
9695         (dbus_message_append_byte_array),
9696         (dbus_message_append_string_array), (dbus_message_get_args_valist),
9697         (dbus_message_iter_get_int32_array),
9698         (dbus_message_iter_get_uint32_array),
9699         (dbus_message_iter_get_double_array),
9700         (dbus_message_iter_get_byte_array),
9701         (dbus_message_iter_get_string_array):
9702
9703         * dbus/dbus-message.h:
9704         Add functions for appending and getting arrays.
9705
9706 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
9707
9708         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
9709         element size at least 8 bytes, fixes mempool tests on
9710         64-bit machines.
9711
9712 2003-02-20  Alexander Larsson  <alexl@redhat.com>
9713
9714         * dbus/dbus-transport-unix.c (unix_do_iteration):
9715         Unlock the connection mutex during a blocking select call.
9716         Add todo about how we need a way to wake up the select.
9717
9718         * dbus/dbus-connection-internal.h:
9719         * dbus/dbus-connection.c:
9720         Add _dbus_connection_lock and _dbus_connection_unlock.
9721
9722 2003-02-19  Havoc Pennington  <hp@pobox.com>
9723
9724         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
9725         Doxyfile.in, not Doxyfile
9726
9727         * dbus/dbus-keyring.c: do some hacking on this
9728
9729         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
9730
9731         * dbus/dbus-errors.c (dbus_set_error_const): do not call
9732         dbus_error_init
9733         (dbus_set_error): remove dbus_error_init, check for message ==
9734         NULL *before* we sprintf into it, and add @todo about including
9735         system headers in this file
9736
9737         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
9738
9739         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
9740
9741         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
9742         get various bits of user information based on either username
9743         or user ID
9744         (_dbus_homedir_from_username): new function
9745
9746 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
9747
9748         * configure.in:
9749         Add check for nonposix getpwnam_r
9750
9751         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
9752         Align the pool element size to a sizeof (void *) boundary.
9753
9754         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
9755         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
9756         General Solaris fixes.
9757
9758         * test/data/valid-messages/simplest-manual.message:
9759         Explicitly state that we want little-endian packing.
9760
9761 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
9762
9763         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9764
9765         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
9766         Added to create a transport connecting using a tcp/ip socket.
9767
9768         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
9769         to a tcp socket at given host and port.
9770         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
9771         hostname and port.
9772
9773         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9774
9775         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
9776         Added to create a server listening on a TCP/IP socket.
9777
9778 2003-02-19  Havoc Pennington  <hp@pobox.com>
9779
9780         Throughout: mop up all the Doxygen warnings and undocumented
9781         stuff.
9782
9783         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
9784         to search any paths.
9785
9786         * dbus/dbus-threads.c: move global mutex initializers to
9787         dbus-internals.h, multiple prototypes was confusing doxygen
9788         besides being kind of ugly
9789
9790         * Doxyfile (PREDEFINED): have Doxygen define
9791         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
9792         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
9793         (do not abuse the feature! it's for stuff like the autogenerated
9794         macros in dbus-md5.c, not just for things you don't feel like
9795         documenting...)
9796
9797 2003-02-18  Havoc Pennington  <hp@pobox.com>
9798
9799         * dbus/dbus-string.c (_dbus_string_zero): new function
9800
9801         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
9802         wrap it in some dbus-friendly API
9803
9804         * dbus/dbus-types.h: add 16-bit types
9805
9806 2003-02-18  Joe Shaw  <joe@assbarn.com>
9807
9808         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
9809         credentials from our currently running process.
9810         (get_word): Fix a buglet where we were copying the entire length
9811         instead of relative to our position.
9812
9813         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
9814         keys on the stack... it's 640k of data.
9815
9816         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
9817         read the credentials byte off the socket, even if we don't have
9818         SO_PEERCRED.
9819         (_dbus_poll): Implement poll() using select() for systems which
9820         don't have it.
9821
9822         * glib/test-dbus-glib.c (main): Print out an error if no
9823         parameters are given.
9824
9825         * test/data/auth/fallback.auth-script: Added.  Tests that a client
9826         can fallback to a secondary auth mechanism if the first fails.
9827
9828 2003-02-18  Havoc Pennington  <hp@pobox.com>
9829
9830         * AUTHORS: add Alex
9831
9832 2003-02-17  Havoc Pennington  <hp@pobox.com>
9833
9834         * doc/dbus-specification.sgml: lots of cosmetic
9835         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
9836         env variable to DBUS_BUS_ADDRESS, s/client/application/,
9837         s/server/bus/ (except in authentication section). Add a section
9838         "Message Bus Message Routing"
9839
9840 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
9841
9842         Release 0.4
9843
9844         * NEWS: Update
9845
9846 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
9847
9848         * doc/dbus-specification.sgml:
9849         Specification updates.
9850
9851 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
9852
9853         * bus/activation.c: (bus_activation_init), (child_setup),
9854         (bus_activation_activate_service):
9855         * bus/activation.h:
9856         * bus/main.c: (main):
9857         Set DBUS_ADDRESS environment variable.
9858
9859         * dbus/dbus-errors.c: (dbus_set_error):
9860         Don't use va_copy since that's a C99 feature.
9861
9862         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
9863         (_dbus_spawn_async):
9864         * dbus/dbus-sysdeps.h:
9865         Add child_setup_func to _dbus_spawn_async.
9866
9867         * doc/dbus-specification.sgml:
9868         Update specification.
9869
9870         * test/spawn-test.c: (setup_func), (main):
9871         Fix test.
9872
9873 2003-02-17  Alexander Larsson  <alexl@redhat.com>
9874
9875         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
9876         Added todo.
9877
9878 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
9879
9880         * doc/.cvsignore:
9881         * doc/Makefile.am:
9882         * doc/dbus-test-plan.sgml:
9883         Add test plan document.
9884
9885         * test/Makefile.am:
9886         Fix distcheck.
9887
9888 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
9889
9890         * dbus/dbus-message.c: (decode_header_data),
9891         (_dbus_message_loader_return_buffer):
9892         Set the header padding amount when loading a message.
9893
9894 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
9895
9896         * bus/dispatch.c: (send_one_message):
9897         Only send broadcast messages to registered connections.
9898
9899         * dbus/dbus-message.c: (dbus_message_name_is):
9900         * dbus/dbus-message.h:
9901         New convenience function.
9902
9903         * dbus/dbus-transport-debug.c: (do_reading):
9904         Only dispatch one message per run.
9905
9906         * test/Makefile.am:
9907         * test/bus-test.c: (new_connection_callback), (die),
9908         (test_hello_client1_handler), (test_hello_client2_handler),
9909         (test_hello_replies), (main):
9910
9911         * test/bus-test-loop.[ch]:
9912         Add these.
9913
9914 2003-02-16  Havoc Pennington  <hp@pobox.com>
9915
9916         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9917         backward conditional
9918
9919 2003-02-16  Alexander Larsson  <alexl@redhat.com>
9920
9921         * dbus/dbus-connection.c:
9922         Implement sent_message_with_reply. (with_reply_and block is still
9923         busted).
9924         Made dispatch_message not lose message if OOM.
9925
9926         * dbus/dbus-errors.h:
9927         Add NoReply error (for reply timeouts).
9928
9929 2003-02-16  Alexander Larsson  <alexl@redhat.com>
9930
9931         * dbus/dbus-hash.c (_dbus_hash_table_unref):
9932         Actually free keys and values when destroying hashtable.
9933
9934 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
9935
9936         * dbus/dbus-auth.c: (client_try_next_mechanism):
9937         Plug a leak.
9938
9939         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
9940         Return TRUE if there's no thread implementation around.
9941
9942         * glib/dbus-gmain.c: (free_source),
9943         (dbus_connection_hookup_with_g_main):
9944         Make sure to remove the GSource when the connection is finalized.
9945
9946 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
9947
9948         * bus/dispatch.c: (bus_dispatch_message_handler):
9949         * dbus/dbus-errors.h:
9950         Return an error if someone tries to send a message to a service
9951         that doesn't exist.
9952
9953 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
9954
9955         * bus/activation.c: (load_directory), (bus_activation_init),
9956         (bus_activation_activate_service):
9957         * bus/activation.h:
9958         * bus/driver.c:
9959         (bus_driver_handle_activate_service), (bus_driver_handle_message):
9960         More work on the activation handling.
9961
9962         * dbus/dbus-errors.h:
9963         Add some error messages
9964
9965         * dbus/dbus-message.c: (dbus_message_new_error_reply):
9966         * dbus/dbus-message.h:
9967         New function that creates an error message.
9968
9969         * dbus/dbus-protocol.h:
9970         Add ACTIVATE_SERVER message.
9971
9972         * dbus/dbus-server-unix.c: (unix_handle_watch),
9973         (_dbus_server_new_for_domain_socket):
9974         Call _dbus_fd_set_close_on_exec.
9975
9976         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
9977         (_dbus_spawn_async), (_dbus_disable_sigpipe),
9978         (_dbus_fd_set_close_on_exec):
9979         * dbus/dbus-sysdeps.h:
9980         Add _dbus_fd_set_close_on exec function. Also add function that checks
9981         that all open fds are set to close-on-exec and warns otherwise.
9982
9983         * dbus/dbus-transport-unix.c:
9984         (_dbus_transport_new_for_domain_socket):
9985         Call _dbus_fd_set_close_on_exec.
9986
9987 2003-02-16  Havoc Pennington  <hp@pobox.com>
9988
9989         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
9990         allow people to avoid setting SIGPIPE to SIG_IGN
9991         (_dbus_connection_new_for_transport): disable SIGPIPE unless
9992         we've been asked not to
9993
9994 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
9995
9996         * dbus/dbus-list.c: (_dbus_list_append_link),
9997         (_dbus_list_prepend_link):
9998         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
9999         (dbus_realloc):
10000         Warning fixes.
10001
10002 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10003
10004         * bus/Makefile.am:
10005         * bus/activation.c: (bus_activation_entry_free),
10006         (add_desktop_file_entry), (load_directory), (bus_activation_init):
10007         * bus/activation.h:
10008         * bus/main.c: (main):
10009         Add simple activation support, doesn't work yet though.
10010
10011 2003-02-15   Zack Rusin  <zack@kde.org>
10012
10013         * qt/dbus-qthread.cpp:  small casting fix
10014
10015 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10016
10017         * dbus/dbus-errors.c: (dbus_set_error):
10018         * dbus/dbus-errors.h:
10019         Add a few errors and make dbus_set_error void.
10020
10021         * dbus/dbus-sysdeps.c:
10022         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
10023         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
10024         * dbus/dbus-sysdeps.h:
10025         Add _dbus_spawn_async.
10026
10027         * test/spawn-test.c: (main):
10028         Test for _dbus_spawn_async.
10029
10030 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
10031
10032         * dbus/dbus-internals.h:
10033         Fix build without tests.
10034
10035         * dbus/dbus-list.c: (alloc_link):
10036         Fix a segfault when a malloc fails.
10037
10038         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
10039         (dbus_malloc0), (dbus_realloc):
10040         Add support for malloc debugging.
10041
10042 2003-02-15  Alexander Larsson  <alexl@redhat.com>
10043
10044         * dbus/dbus-threads.c:
10045         * dbus/dbus-threads.h:
10046         Add condvars. Remove static mutext from API.
10047         Implement static mutexes by initializing them from threads_init.
10048
10049         * glib/dbus-gthread.c:
10050         * qt/dbus-qthread.cpp:
10051         Update with the thread api changes.
10052
10053
10054         * dbus/dbus-list.c:
10055         * dbus/dbus-list.h:
10056         Turn StaticMutex into normal mutex + init function.
10057         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
10058         _dbus_list_append_link, _dbus_list_prepend_link
10059
10060
10061         * dbus/dbus-sysdeps.c:
10062         * dbus/dbus-sysdeps.h:
10063         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
10064         _dbus_atomic_dec. Only slow fallback implementation at the moment.
10065
10066         * dbus/dbus-protocol.h:
10067         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
10068
10069         * dbus/dbus-message.c:
10070         Make ref/unref atomic.
10071         Fix some docs.
10072
10073         * dbus/dbus-connection-internal.h:
10074         * dbus/dbus-connection.c:
10075         * dbus/dbus-connection.h:
10076         Make threadsafe.
10077         Change _peek to _borrow,_return & _steal_borrowed.
10078         Change disconnect callback to event.
10079         Make dbus_connection_dispatch_messages reentrant.
10080
10081         * dbus/dbus-transport.c:
10082         Don't ref the connection on calls to the transport
10083         implementation.
10084
10085         * dbus/dbus-message-handler.c:
10086         Make threadsafe.
10087
10088         * glib/dbus-gmain.c:
10089         Don't use peek_message anymore
10090
10091         * test/Makefile.am:
10092         * test/debug-thread.c:
10093         * test/debug-thread.h:
10094         Simple thread implementation that asserts() on deadlocks in
10095         single-threaded code.
10096
10097         * test/bus-test.c:
10098         (main) Call debug_threads_init.
10099
10100         * test/watch.c:
10101         Use disconnect message instead of disconnect callback.
10102
10103         * bus/connection.c:
10104         * bus/connection.h:
10105         Don't call dbus_connection_set_disconnect_function. Instead export
10106         bus_connection_disconnect.
10107
10108         * bus/dispatch.c:
10109         Call bus_connection_disconnect when we get a disconnected message.
10110
10111 2003-02-15  Havoc Pennington  <hp@pobox.com>
10112
10113         * dbus/dbus-message.c (dbus_message_new): fool around with the
10114         docs
10115
10116 2003-02-14  Havoc Pennington  <hp@pobox.com>
10117
10118         * dbus/dbus-mempool.c: fail if the debug functions so indicate
10119
10120         * dbus/dbus-memory.c: fail if the debug functions indicate we
10121         should
10122
10123         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
10124         (_dbus_decrement_fail_alloc_counter): debug functions to
10125         simulate memory allocation failures
10126
10127 2003-02-14  Havoc Pennington  <hp@pobox.com>
10128
10129         * dbus/dbus-errors.h (struct DBusError): add a word of padding
10130         to DBusError
10131
10132 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10133
10134         * bus/driver.c: (bus_driver_handle_hello):
10135         * bus/driver.h:
10136         * bus/services.c: (bus_service_lookup):
10137         Reorder message sending so we get a more sane order.
10138
10139         * test/bus-test.c: (message_handler):
10140         Fix tyop.
10141
10142 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10143
10144         * bus/driver.c: (bus_driver_send_service_deleted),
10145         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10146         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10147         (bus_driver_send_welcome_message),
10148         (bus_driver_handle_list_services),
10149         (bus_driver_handle_acquire_service),
10150         (bus_driver_handle_service_exists):
10151         * dbus/dbus-bus.c: (dbus_bus_register_client),
10152         (dbus_bus_acquire_service), (dbus_bus_service_exists):
10153         * dbus/dbus-errors.c: (dbus_result_to_string):
10154         * dbus/dbus-errors.h:
10155         * dbus/dbus-message.c: (dbus_message_append_args),
10156         (dbus_message_append_args_valist), (dbus_message_get_args),
10157         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
10158         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
10159         (dbus_message_iter_get_byte_array),
10160         (dbus_message_iter_get_string_array), (message_iter_test),
10161         (check_message_handling), (_dbus_message_test):
10162         * dbus/dbus-message.h:
10163         * test/bus-test.c: (main):
10164         Change fields to arguments in messages, so that they won't be
10165         confused with header fields.
10166
10167         * glib/test-dbus-glib.c: (main):
10168         Remove append_fields from hello message.
10169
10170 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10171
10172         * dbus/dbus-errors.c:
10173         * dbus/dbus-message.c:
10174         * dbus/dbus-string.c:
10175         Documentation fixes.
10176
10177 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10178
10179         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
10180         (remove_timeout):
10181         Implement support for timeouts in dbus-glib.
10182
10183 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10184
10185         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10186         * dbus/dbus-message.c: (process_test_subdir):
10187         * test/break-loader.c: (find_breaks_based_on):
10188         Plug some memory leaks.
10189
10190 2003-02-13  Richard Hult  <rhult@codefactory.se>
10191
10192         * bus/main.c: Fix build.
10193
10194         * dbus/dbus-errors.h:
10195         * dbus/dbus-errors.c: Fix copyright for Anders.
10196
10197 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10198
10199         * bus/Makefile.am:
10200         Add utils.[ch]
10201
10202         * bus/connection.c: (bus_connection_foreach):
10203         Fix a warning.
10204
10205         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
10206         (unescape_string), (new_section), (parse_section_start),
10207         (parse_key_value), (report_error), (bus_desktop_file_load),
10208         (bus_desktop_file_get_string):
10209         * bus/desktop-file.h:
10210         Use DBusError for error reporting.
10211
10212         * bus/dispatch.c: (send_one_message),
10213         (bus_dispatch_message_handler):
10214         * bus/driver.c: (bus_driver_send_service_deleted),
10215         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10216         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10217         (bus_driver_send_welcome_message),
10218         (bus_driver_handle_list_services),
10219         (bus_driver_handle_acquire_service),
10220         (bus_driver_handle_service_exists):
10221         * bus/loop.c: (bus_loop_run):
10222         * bus/main.c:
10223         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
10224
10225         * bus/utils.c: (bus_wait_for_memory):
10226         * bus/utils.h:
10227         New files with general utility functions.
10228
10229         * dbus/dbus-internals.h:
10230         Remove _DBUS_HANDLE_OOM.
10231
10232 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10233
10234         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
10235         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
10236         * dbus/dbus-errors.h:
10237         Add DBusError structure.
10238
10239 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10240
10241         * test/data/valid-messages/standard-acquire-service.message:
10242         * test/data/valid-messages/standard-hello.message:
10243         * test/data/valid-messages/standard-list-services.message:
10244         * test/data/valid-messages/standard-service-exists.message:
10245         Add some standard messages.
10246
10247 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10248
10249         * bus/driver.c: (bus_driver_send_welcome_message),
10250         (bus_driver_handle_list_services),
10251         (bus_driver_handle_acquire_service),
10252         (bus_driver_handle_service_exists), (bus_driver_handle_message):
10253         Update for API changes in libdbus.
10254
10255         * dbus/dbus-message.c: (dbus_message_new_reply):
10256         * dbus/dbus-message.h:
10257         Remove the name argument. The spec states that replies shouldn't
10258         have a name.
10259
10260 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
10261
10262         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
10263         (report_error), (bus_desktop_file_load), (lookup_section),
10264         (lookup_line), (bus_desktop_file_get_raw),
10265         (bus_desktop_file_get_string):
10266         * bus/desktop-file.h:
10267         Some fixes, and new functions for getting a key value from a section.
10268
10269 2003-02-13  Havoc Pennington  <hp@pobox.com>
10270
10271         * test/data/auth/fail-after-n-attempts.auth-script: new test
10272
10273         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
10274         reject the client.
10275
10276 2003-02-13  Havoc Pennington  <hp@pobox.com>
10277
10278         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
10279         dbus_credentials_match were backward
10280
10281         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
10282         NO_CREDENTIALS and ROOT_CREDENTIALS
10283
10284         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
10285         into here. Never process more commands after we've reached an
10286         end state; store further data as unused bytes.
10287
10288         * test/data/auth/*: add more auth tests
10289
10290         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
10291         command to match exact string and EXPECT_UNUSED to match unused
10292         bytes
10293
10294         * test/Makefile.am (dist-hook): fix to dist all the test stuff
10295
10296 2003-02-12  Havoc Pennington  <hp@pobox.com>
10297
10298         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
10299         \r off of popped lines
10300
10301         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
10302         scripts
10303
10304         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
10305         SEND, append \r\n
10306
10307 2003-02-12  Havoc Pennington  <hp@pobox.com>
10308
10309         * dbus/Makefile.am: remove break-loader from the build, since it
10310         moved.
10311
10312         * configure.in: add --enable-gcov to turn on coverage profiling
10313         flags and disable optimization
10314
10315 2003-02-10  Havoc Pennington  <hp@pobox.com>
10316
10317         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
10318         initial cut at test framework for DBusAuth from laptop.
10319         Doesn't quite work yet but it compiles and I need to get
10320         it off the 266mhz laptop. ;-)
10321
10322         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
10323         fix a memleak in error case
10324
10325 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
10326
10327         * bus/Makefile.am:
10328         * bus/desktop-file.c:
10329         * bus/desktop-file.h:
10330         Add a desktop file parser.
10331
10332 2003-02-11  Zack Rusin  <zack@kde.org>
10333
10334         * qt/message.[h|cpp]: sample implementation
10335         of the KDE wrapper for DBusMessage
10336
10337 2003-02-09  Zack Rusin  <zack@kde.org>
10338
10339         * test/bus-test.c: make_it_compile
10340         * doc/dbus-specification.sgml: minimal semantic fix
10341
10342 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
10343
10344         Release 0.3
10345
10346         * NEWS: Update
10347
10348 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
10349
10350         * dbus/Makefile.am:
10351         * dbus/dbus-break-loader.c:
10352         * test/Makefile.am:
10353         * test/break-loader.c:
10354         Move dbus-break-loader to test/ and rename it to break-loader.
10355
10356 2003-02-02  Havoc Pennington  <hp@pobox.com>
10357
10358         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
10359         for code to manage cookies in your home directory
10360
10361         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
10362
10363         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
10364         to authenticate, then disconnect the client.
10365
10366 2003-02-03  Alexander Larsson  <alexl@redhat.com>
10367
10368         * dbus/dbus-message.c (dbus_message_append_fields):
10369         Correct docs.
10370
10371 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10372
10373         * doc/dbus-specification.sgml:
10374         Update address format section.
10375
10376 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10377
10378         * test/Makefile.am:
10379         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
10380         (message_handler), (new_connection_callback), (loop_quit),
10381         (loop_run), (main):
10382         Add bus test.
10383
10384 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10385
10386         * bus/driver.c: (bus_driver_handle_service_exists):
10387         Simplify the code a bit.
10388
10389         * dbus/dbus-bus.c: (dbus_bus_service_exists):
10390         Fix a silly.
10391
10392 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10393
10394         * bus/Makefile.am:
10395         Add libdbus-daemon.la and link to it.
10396
10397 2003-02-01  James Willcox  <jwillcox@gnome.org>
10398
10399         * bus/driver.c: (bus_driver_handle_own_service):
10400         Actually include the service reply code in the message.
10401
10402 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10403
10404         * bus/driver.c: (bus_driver_handle_service_exists):
10405         Don't unref the incoming message.
10406
10407 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10408
10409         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
10410
10411 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
10412
10413         * dbus/dbus-server.c: (dbus_server_listen):
10414         * dbus/dbus-transport.c: (_dbus_transport_open):
10415         ifdef out the calls to the debug transport and server.
10416
10417 2003-02-02  Alexander Larsson  <alexl@redhat.com>
10418
10419         * dbus/dbus-watch.c (dbus_watch_get_flags):
10420         Add note in the docs that ERROR or HANGUP won't be returned
10421         and are assumed always on.
10422
10423         * glib/dbus-gmain.c (add_watch):
10424         Always add IO_ERR | IO_HUP
10425
10426         * dbus/dbus-message.h:
10427         Add semicolon after dbus_message_iter_get_string_array().
10428         Makes qt code build again
10429
10430 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
10431
10432         * bus/driver.c: (create_unique_client_name),
10433         (bus_driver_handle_hello):
10434         Don't take a name, just use a numeric id to identify
10435         each client.
10436
10437         * dbus/Makefile.am:
10438         * dbus/dbus-bus.c: (dbus_bus_register_client),
10439         (dbus_bus_acquire_service), (dbus_bus_service_exists):
10440         * dbus/dbus-bus.h:
10441         Add new convenience functions for communicating with the bus.
10442
10443         * dbus/dbus-message.h:
10444
10445         * dbus/dbus-protocol.h:
10446         Fix a typo.
10447
10448 2003-02-01  Alexander Larsson  <alexl@redhat.com>
10449
10450         * dbus/dbus-message.c (dbus_message_append_fields):
10451         Add some more doc comments.
10452
10453 2003-02-01  Havoc Pennington  <hp@pobox.com>
10454
10455         * dbus/dbus-break-loader.c (randomly_modify_length): change
10456         a 4-byte value in the message as if it were a length
10457
10458         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
10459         execute bit on saved files
10460
10461 2003-02-01  Havoc Pennington  <hp@pobox.com>
10462
10463         * dbus/dbus-break-loader.c (main): new program to find messages
10464         that break the loader.
10465
10466         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
10467         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
10468
10469         * dbus/dbus-string.c (_dbus_string_set_byte): new
10470
10471 2003-01-31  Havoc Pennington  <hp@pobox.com>
10472
10473         * dbus/dbus-message.c: refactor the test code to be more general,
10474         in preparation for writing a "randomly permute test cases to
10475         try to break the loader" program.
10476
10477 2003-01-31  Havoc Pennington  <hp@pobox.com>
10478
10479         * doc/dbus-specification.sgml: work on the specification
10480
10481         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
10482         the protocol version of the message.
10483
10484         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
10485         no longer specifies that.
10486         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
10487         1/2/3/4)
10488
10489         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
10490         "break" for DBUS_TYPE_NIL, remove @todo
10491
10492 2003-01-31  Havoc Pennington  <hp@pobox.com>
10493
10494         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
10495         just set_is_error/get_is_error as this is a commonly-used
10496         function, and write docs.
10497
10498 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
10499
10500         * dbus/dbus-address.c: (dbus_address_entry_free):
10501         Free key and value lists.
10502
10503         * dbus/dbus-internals.c: (_dbus_type_to_string):
10504         Add the types we didn't have.
10505
10506         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10507         (_dbus_marshal_validate_arg):
10508         Add NIL types.
10509
10510         * dbus/dbus-message.c: (dbus_message_set_sender):
10511         Remove todo about being able to set sender to NULL.
10512
10513         (dbus_message_set_is_error_reply),
10514         (dbus_message_get_is_error_reply):
10515         * dbus/dbus-message.h:
10516         New functions.
10517
10518         * dbus/dbus-protocol.h:
10519         Add error reply flag.
10520
10521         * test/data/valid-messages/opposite-endian.message:
10522         Add NIL type to test.
10523
10524 2003-01-31  Havoc Pennington  <hp@pobox.com>
10525
10526         * doc/dbus-specification.sgml: fully specify the header.  Add
10527         flags and major protocol version, and change header/body len to
10528         unsigned.
10529
10530         * dbus/dbus-message-builder.c (append_saved_length): append length
10531         as uint32
10532
10533         * dbus/dbus-message.c (dbus_message_create_header): change header
10534         length and body length to unsigned. Add the new fields from the
10535         spec
10536         (_dbus_message_loader_return_buffer): unsigned header/body len
10537
10538 2003-01-30  Havoc Pennington  <hp@pobox.com>
10539
10540         * dbus/dbus-auth.c: rework to use only REJECTED, no
10541         MECHANISMS
10542
10543         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
10544         use REJECTED, suggested by Mark McLoughlin
10545
10546 2003-01-30  Havoc Pennington  <hp@pobox.com>
10547
10548         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
10549         a better way to report errors here. e.g.  "unix address lacks
10550         path" or something. also "no such file" when the path doesn't
10551         exist, etc.
10552
10553         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
10554         leaking list nodes
10555         (dbus_parse_address): add @todo about documenting address format,
10556         and allowing , and ; to be escaped
10557
10558 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
10559
10560         * dbus/Makefile.am:
10561         Add dbus-address.[ch]
10562
10563         * dbus/dbus-address.c: (dbus_address_entry_free),
10564         (dbus_address_entries_free), (create_entry),
10565         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
10566         (dbus_parse_address), (_dbus_address_test):
10567         * dbus/dbus-address.h:
10568         New files for dealing with address parsing.
10569
10570         * dbus/dbus-connection.c:
10571         Document timeout functions.
10572
10573         * dbus/dbus-message.c:
10574         Document dbus_message_new_from_message.
10575
10576         * dbus/dbus-server-debug.c:
10577         Document.
10578
10579         * dbus/dbus-server.c: (dbus_server_listen):
10580         Parse address and use correct server implementation.
10581
10582         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
10583         * dbus/dbus-string.h:
10584         New function with test.
10585
10586         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
10587         * dbus/dbus-test.h:
10588         Add address tests.
10589
10590         * dbus/dbus-transport-debug.c:
10591         Document.
10592
10593         * dbus/dbus-transport.c: (_dbus_transport_open):
10594         Parse address and use correct transport implementation.
10595
10596 2003-01-30  Havoc Pennington  <hp@pobox.com>
10597
10598         * dbus/dbus-message.c: use message->byte_order instead of
10599         DBUS_COMPILER_BYTE_ORDER throughout.
10600         (dbus_message_create_header): pad header to align the
10601         start of the body of the message to 8-byte boundary
10602
10603         * dbus/dbus-marshal.h: make all the demarshalers take const
10604         DBusString arguments.
10605
10606         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
10607         validate message args here, so we don't have to do slow validation
10608         later, and so we catch bad messages as they are incoming. Also add
10609         better checks on header_len and body_len. Also fill in
10610         message->byte_order
10611
10612         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
10613         implemented properly)
10614         (_dbus_string_validate_nul): new function to check all-nul
10615
10616         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
10617         get_arg_end_pos and remove all validation
10618         (_dbus_marshal_validate_arg): actually do validation here.
10619
10620 2003-01-29  Havoc Pennington  <hp@pobox.com>
10621
10622         * dbus/dbus-message.c (check_message_handling): fix assertion
10623         failure on set_client_serial
10624
10625 2003-01-28  Havoc Pennington  <hp@pobox.com>
10626
10627         * dbus/dbus-server-debug.c: Add doc section comments
10628
10629         * dbus/dbus-transport-debug.c: add doc section comments
10630
10631 2003-01-28  Havoc Pennington  <hp@redhat.com>
10632
10633         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
10634         the reverse order from how I had it
10635         (_dbus_string_base64_encode): reverse encoding order. I was
10636         basically byteswapping everything during encoding.
10637
10638 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
10639
10640         * dbus/dbus-connection-internal.h:
10641         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
10642         (_dbus_connection_remove_timeout):
10643         Add functions for adding and removing timeouts.
10644
10645         * dbus/dbus-message.c: (dbus_message_new_from_message):
10646         Add new function that takes a message and creates an exact
10647         copy of it, but with the refcount set to 1.
10648         (check_message_handling):
10649         Fix build error.
10650
10651         * dbus/dbus-server-protected.h:
10652         * dbus/dbus-server.c: (_dbus_server_init_base),
10653         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
10654         (dbus_server_set_timeout_functions):
10655         (_dbus_server_remove_timeout):
10656         New functions so that a server can add and remove timeouts.
10657
10658         (dbus_server_listen):
10659         Add commented out call to dbus_server_debug_new.
10660
10661         * dbus/dbus-timeout.c: (_dbus_timeout_new):
10662         Actually set the handler, doh.
10663
10664         * dbus/dbus-transport.c: (_dbus_transport_open):
10665         Add commented out call to dbus_transport_debug_client_new.
10666
10667         * dbus/Makefile.am:
10668         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
10669
10670 2003-01-28  Havoc Pennington  <hp@pobox.com>
10671
10672         * dbus/dbus-message.c (check_message_handling): function to check
10673         on the loaded message, iterates over it etc.
10674
10675 2003-01-28  Havoc Pennington  <hp@pobox.com>
10676
10677         * test/Makefile.am (dist-hook): fix make distdir
10678
10679         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
10680
10681 2003-01-27  Havoc Pennington  <hp@pobox.com>
10682
10683         * dbus/dbus-mempool.c (time_for_size): replace printf with
10684         _dbus_verbose
10685
10686         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
10687         empty lines; fix the SAVE_LENGTH stuff to be
10688         START_LENGTH/END_LENGTH so it actually works; couple other
10689         bugfixes
10690
10691         * test/Makefile.am (dist-hook): add dist-hook for .message files
10692
10693         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
10694         can be constant or locked.
10695         (_dbus_string_free): allow freeing a const string as
10696         documented/intended
10697
10698         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
10699
10700         * dbus/dbus-test-main.c (main): take an argument which is the
10701         directory containing test data
10702
10703         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
10704         argument to this and load all the messages in test/data/
10705         checking that they can be loaded or not loaded as appropriate.
10706
10707 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
10708
10709         * bus/dispatch.c: (bus_dispatch_message_handler):
10710         Dispatch messages sent to services.
10711
10712         * bus/driver.c: (bus_driver_send_service_deleted),
10713         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10714         (bus_driver_send_service_acquired):
10715         Add helper functions for sending service related messages.
10716
10717         (bus_driver_send_welcome_message):
10718         Send HELLO_REPLY instead of WELCOME.
10719
10720         (bus_driver_handle_list_services):
10721         Send LIST_SERVICES_REPLY instead of SERVICES.
10722
10723         (bus_driver_handle_own_service),
10724         (bus_driver_handle_service_exists):
10725         New message handlers.
10726
10727         (bus_driver_handle_message):
10728         Invoke new message handlers.
10729
10730         (bus_driver_remove_connection):
10731         Don't remove any services here since that's done automatically
10732         by bus_service_remove_owner now.
10733
10734         * bus/driver.h:
10735         New function signatures.
10736
10737         * bus/services.c: (bus_service_add_owner):
10738         Send ServiceAcquired message if we're the only primary owner.
10739
10740         (bus_service_remove_owner):
10741         Send ServiceAcquired/ServiceLost messages.
10742
10743         (bus_service_set_prohibit_replacement),
10744         (bus_service_get_prohibit_replacement):
10745         Functions for setting prohibit replacement.
10746
10747         (bus_service_has_owner):
10748         New function that checks if a connection is in the owner queue of
10749         a certain service.
10750
10751         * bus/services.h:
10752         Add new function signatures.
10753
10754         * dbus/dbus-list.c: (_dbus_list_test):
10755         Add tests for _dbus_list_remove_last and traversing the list backwards.
10756
10757         * dbus/dbus-list.h:
10758         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
10759         go any further, so return NULL then.
10760
10761         * dbus/dbus-protocol.h:
10762         Add new messages, service flags and service replies.
10763
10764 2003-01-26  Havoc Pennington  <hp@pobox.com>
10765
10766         * dbus/dbus-message-builder.c: implement, completely untested.
10767
10768         * test/data/*: add data to be used in testing.
10769         ".message" files are our simple loadable text format.
10770         ".message-raw" will be binary dumps of messages.
10771
10772         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
10773
10774 2003-01-26  Havoc Pennington  <hp@pobox.com>
10775
10776         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
10777
10778         * dbus/dbus-errors.c (dbus_result_to_string): add
10779         file errors
10780
10781         * dbus/dbus-message-builder.c: new file, will contain code to load
10782         up messages from files. Not implemented yet.
10783
10784 2003-01-26  Havoc Pennington  <hp@pobox.com>
10785
10786         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
10787         the sender by setting to NULL
10788
10789 2003-01-26  Havoc Pennington  <hp@pobox.com>
10790
10791         The unit tests pass, but otherwise untested.  If it breaks, the
10792         tests should have been better. ;-)
10793
10794         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
10795         the connection.
10796
10797         * dbus/dbus-message.c: redo everything so we maintain
10798         message->header as the only copy of the various fields.
10799         This avoids the possibility of out-of-memory in some cases,
10800         for example dbus_message_lock() can't run out of memory anymore,
10801         and avoids extra copying. Figured I may as well go ahead and do
10802         this since it was busted for dbus_message_lock to not return
10803         failure on OOM, and dbus_message_write_header was totally
10804         unchecked for OOM. Also fixed some random other bugs.
10805
10806         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
10807         that strings are nul-terminated. Also, end_pos can be equal
10808         to string length just not greater than, I think.
10809         (_dbus_marshal_set_int32): new function
10810         (_dbus_marshal_set_uint32): new function
10811         (_dbus_marshal_set_string): new function
10812
10813         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
10814         a warning, init timeout_list to NULL
10815         (dbus_connection_send_message): don't use uninitialized variable
10816         "serial"
10817
10818         * dbus/dbus-string.c (_dbus_string_replace_len): new function
10819
10820 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
10821
10822         * bus/driver.c: (bus_driver_handle_hello),
10823         (bus_driver_send_welcome_message):
10824         Plug leaks
10825
10826 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
10827
10828         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
10829         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
10830         (dbus_connection_unref):
10831         * dbus/dbus-marshal.c: (_dbus_marshal_test):
10832         * dbus/dbus-message.c: (dbus_message_unref),
10833         Plug memory leaks.
10834
10835         (dbus_message_get_fields):
10836         Remove debugging printout.
10837
10838         (_dbus_message_loader_return_buffer):
10839         Don't store the header string.
10840
10841         (_dbus_message_test):
10842         Plug leaks.
10843
10844 2003-01-26  Richard Hult  <rhult@codefactory.se>
10845
10846         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
10847         the file descriptor list, since it can change under us.
10848
10849 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10850
10851         * glib/dbus-gmain.c: (dbus_connection_prepare),
10852         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
10853         (remove_watch), (dbus_connection_hookup_with_g_main):
10854         Rewrite the glib handling to use its own GSource instead of a
10855         GIOChannel so we can catch messages put in the queue while waiting
10856         for a reply.
10857
10858 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10859
10860         * bus/Makefile.am:
10861         * bus/connection.c: (connection_disconnect_handler),
10862         (connection_watch_callback), (bus_connection_setup):
10863         * bus/dispatch.c: (send_one_message),
10864         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
10865         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
10866         * bus/dispatch.h:
10867         * bus/driver.c: (bus_driver_send_service_deleted),
10868         (bus_driver_send_service_created), (bus_driver_handle_hello),
10869         (bus_driver_send_welcome_message),
10870         (bus_driver_handle_list_services), (bus_driver_remove_connection),
10871         (bus_driver_handle_message):
10872         * bus/driver.h:
10873         Refactor code, put the message dispatching in its own file. Use
10874         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
10875         is disconnected.
10876
10877 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10878
10879         * dbus/dbus-internals.h:
10880         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
10881
10882         * dbus/dbus-message.c: (dbus_message_get_sender):
10883         * dbus/dbus-message.h:
10884         Implement dbus_message_get_sender.
10885
10886         * dbus/dbus-protocol.h:
10887         Add message and service defines.
10888
10889 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10890
10891         * dbus/dbus-connection.c: (dbus_connection_send_message):
10892         * dbus/dbus-message-internal.h:
10893         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
10894         (dbus_message_write_header):
10895         Remove _dbus_messag_unlock and don't set the client serial on a
10896         message if one already exists.
10897
10898 2003-01-24  Havoc Pennington  <hp@pobox.com>
10899
10900         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
10901         list_pool
10902
10903         * bus/driver.c (bus_driver_handle_list_services): fix a leak
10904         on OOM
10905
10906 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10907
10908         * dbus/dbus-list.c: (alloc_link), (free_link):
10909         Use a memory pool for the links.
10910
10911 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10912
10913         * bus/connection.c: (bus_connection_foreach):
10914         * bus/connection.h:
10915         Add new bus_connection_foreach function.
10916
10917         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
10918         Add function that broadcasts a message to all clients.
10919
10920         (bus_driver_send_service_created), (bus_driver_handle_hello),
10921         (bus_driver_send_welcome_message),
10922         (bus_driver_handle_list_services), (bus_driver_message_handler):
10923         Implement functions that take care of listing services, and notifying
10924         clients when new services are created.
10925
10926         * bus/services.c: (bus_services_list):
10927         * bus/services.h:
10928         Add new function that returns an array of strings with the currently
10929         registered services.
10930
10931         * glib/dbus-glib.h:
10932         * glib/dbus-gmain.c:
10933         Update copyright year.
10934
10935 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
10936
10937         * dbus/dbus-connection.c: (dbus_connection_send_message):
10938         Unlock the message in case it was sent earlier.
10939
10940         (dbus_connection_send_message_with_reply_and_block):
10941         Remove the reply message from the list.
10942
10943         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10944         Set array_len and new_pos correctly.
10945
10946         (_dbus_marshal_test):
10947         Remove debug output.
10948
10949         * dbus/dbus-message-internal.h:
10950         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
10951         New function that returns the reply serial.
10952
10953         (_dbus_message_unlock):
10954         New function that unlocks a message and resets its header.
10955
10956         (dbus_message_append_string_array),
10957         (dbus_message_get_fields_valist),
10958         (dbus_message_iter_get_field_type),
10959         (dbus_message_iter_get_string_array),
10960         (dbus_message_get_fields),
10961         (dbus_message_append_fields_valist):
10962         Handle string arrays.
10963
10964         (dbus_message_set_sender):
10965         Make this function public since the bus daemon needs it.
10966
10967         (decode_header_data):
10968         Set the reply serial to -1 initially.
10969
10970         * dbus/dbus-message.h:
10971         Add dbus_message_set_sender.
10972
10973 2003-01-24  Havoc Pennington  <hp@pobox.com>
10974
10975         * doc/dbus-specification.sgml: add some stuff
10976
10977 2003-01-22  Havoc Pennington  <hp@pobox.com>
10978
10979         * doc/dbus-specification.sgml: Start to document the protocol.
10980
10981 2003-01-22  Havoc Pennington  <hp@pobox.com>
10982
10983         * dbus/dbus-connection.c
10984         (dbus_connection_send_message_with_reply_and_block): add some @todo
10985
10986         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
10987
10988 2003-01-21  Havoc Pennington  <hp@pobox.com>
10989
10990         (patch untested because can't compile)
10991
10992         * bus/driver.c (create_unique_client_name): make this function
10993         never recycle client names. Also, caller should initialize
10994         the DBusString.
10995
10996         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
10997
10998 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
10999
11000         * dbus/dbus-marshal.c: (_dbus_marshal_double),
11001         (_dbus_marshal_int32), (_dbus_marshal_uint32),
11002         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
11003         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
11004         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11005         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11006         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
11007         * dbus/dbus-marshal.h:
11008         * dbus/dbus-protocol.h:
11009         Add support for marshalling and demarshalling integer, double
11010         and string arrays.
11011
11012 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
11013
11014         * bus/Makefile.am:
11015         Add driver.[ch]
11016
11017         * bus/connection.c: (connection_disconnect_handler):
11018         Remove the connection from the bus driver's list.
11019
11020         (connection_watch_callback): Dispatch messages.
11021
11022         (free_connection_data): Free connection name.
11023
11024         (bus_connection_setup): Add connection to the bus driver's list.
11025         (bus_connection_remove_owned_service):
11026         (bus_connection_set_name), (bus_connection_get_name):
11027         Add functions for setting and getting the connection's name.
11028
11029         * bus/connection.h:
11030         Add function headers.
11031
11032         * bus/driver.c: (create_unique_client_name),
11033         (bus_driver_handle_hello_message),
11034         (bus_driver_send_welcome_message), (bus_driver_message_handler),
11035         (bus_driver_add_connection), (bus_driver_remove_connection):
11036         * bus/driver.h:
11037         * bus/main.c:
11038         * bus/services.c: (bus_service_free):
11039         * bus/services.h:
11040         New file that handles communication and registreation with the bus
11041         itself.
11042
11043 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
11044
11045         * dbus/dbus-connection.c: (dbus_connection_send_message):
11046         Add a new client_serial parameter.
11047
11048         (dbus_connection_send_message_with_reply):
11049         Remove a @todo since we've implemented the blocking function.
11050
11051         (dbus_connection_send_message_with_reply_and_block):
11052         New function that sends a message and waits for a reply and
11053         then returns the reply.
11054
11055         * dbus/dbus-connection.h:
11056         Add new functions.
11057
11058         * dbus/dbus-errors.c: (dbus_result_to_string):
11059         * dbus/dbus-errors.h:
11060         Add new DBUS_RESULT.
11061
11062         * dbus/dbus-message-internal.h:
11063         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
11064         (_dbus_message_set_sender), (dbus_message_write_header),
11065         (dbus_message_new_reply), (decode_header_data),
11066         (_dbus_message_loader_return_buffer), (_dbus_message_test):
11067         * dbus/dbus-message.h:
11068         Add new functions that set the reply serial and sender.
11069         Also marshal and demarshal them correctly and add test.
11070
11071         * dbus/dbus-protocol.h:
11072         Add new DBUS_MESSAGE_TYPE_SENDER.
11073
11074         * glib/dbus-glib.h:
11075         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
11076         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
11077         (dbus_connection_hookup_with_g_main):
11078         * glib/test-dbus-glib.c: (main):
11079         Rewrite to use GIOChannel and remove the GSource crack.
11080
11081         * test/echo-client.c: (main):
11082         * test/watch.c: (check_messages):
11083         Update for changed APIs
11084
11085 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
11086
11087         * dbus/Makefile.am: Add dbus-timeout.[cħ]
11088
11089         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
11090         Create a DBusTimeoutList.
11091         (dbus_connection_set_timeout_functions): Add new function to
11092         set timeout callbacks
11093
11094         * dbus/dbus-connection.h: Add public DBusTimeout API.
11095
11096         * dbus/dbus-message.c: (dbus_message_get_service):
11097         * dbus/dbus-message.h:  New function.
11098
11099         * dbus/dbus-server.c: Fix small doc typo.
11100
11101         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
11102
11103 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
11104
11105         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
11106         of the string, just as long as specified.
11107
11108 2003-01-19  Havoc Pennington  <hp@pobox.com>
11109
11110         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
11111         new function
11112
11113         * dbus/dbus-server.c (dbus_server_set_max_connections)
11114         (dbus_server_get_max_connections, dbus_server_get_n_connections):
11115         keep track of current number of connections, and add API for
11116         setting a max (but haven't implemented enforcing the max yet)
11117
11118 2003-01-18  Havoc Pennington  <hp@pobox.com>
11119
11120         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
11121         reading/writing if read_watch != NULL or write_watch != NULL.
11122
11123         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
11124         the message loader code to actually load message->header and
11125         message->body into the newly-created message.
11126
11127         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
11128         in OOM case
11129
11130         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
11131         (dbus_connection_get_max_message_size)
11132         (dbus_connection_set_max_live_messages_size)
11133         (dbus_connection_get_max_live_messages_size): implement some
11134         resource limitation functions
11135
11136         * dbus/dbus-resources.c: new file implementing some of the
11137         resource limits stuff
11138
11139         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
11140         missing docs, add @todo to handle OOM etc.
11141
11142         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
11143         docs
11144
11145 2003-01-18  Havoc Pennington  <hp@pobox.com>
11146
11147         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
11148         connection if it hasn't been already.
11149
11150         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
11151         replace with DisconnectFunction.
11152
11153 2003-01-18  Havoc Pennington  <hp@pobox.com>
11154
11155         Building --disable-verbose-mode --disable-asserts --disable-tests
11156         cuts the library from 112K to 45K or so
11157
11158         * configure.in: check for varargs macro support,
11159         add --enable-verbose-mode, --enable-asserts.
11160
11161         * dbus/dbus-internals.h (_dbus_assert): support
11162         DBUS_DISABLE_ASSERT
11163         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
11164
11165 2003-01-18  Havoc Pennington  <hp@pobox.com>
11166
11167         * dbus/dbus-test.c: include config.h so that tests actually run
11168
11169         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
11170         so the failure mode when that assumption fails will be plenty
11171         obvious.
11172
11173 2003-01-18  Havoc Pennington  <hp@pobox.com>
11174
11175         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
11176
11177         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
11178         the distribution
11179
11180         * test/Makefile.am: don't use special variable "TESTS" for echo-*
11181         since we don't want to use those in make check
11182
11183 2003-01-15  Havoc Pennington  <hp@redhat.com>
11184
11185         Release 0.2
11186
11187         * NEWS: update
11188
11189 2003-01-15  Havoc Pennington  <hp@redhat.com>
11190
11191         * test/Makefile.am: fix so that test source code ends up in the
11192         distribution on make distcheck
11193
11194 2003-01-15  Havoc Pennington  <hp@redhat.com>
11195
11196         Release 0.1.
11197
11198         * NEWS: update
11199
11200 2003-01-15  Havoc Pennington  <hp@redhat.com>
11201
11202         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
11203         fix build when --disable-tests
11204
11205         * Makefile.am (EXTRA_DIST): put HACKING in here
11206
11207         * HACKING: document procedure for making a tarball release.
11208
11209 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
11210
11211         * bus/connection.c: (connection_error_handler),
11212         (bus_connection_setup):
11213         * bus/main.c: (main):
11214         Make sure that the DBusConnectionData struct is NULLed
11215         out to prevent a segfault.
11216
11217         * dbus/dbus-errors.c: (dbus_result_to_string):
11218         * dbus/dbus-errors.h:
11219         * dbus/dbus-message.c: (dbus_message_get_fields),
11220         (dbus_message_get_fields_valist), (_dbus_message_test):
11221         * dbus/dbus-message.h:
11222         Make dbus_message_get_fields return a result code so we can
11223         track invalid fields as well as oom.
11224
11225 2003-01-11  Havoc Pennington  <hp@pobox.com>
11226
11227         * configure.in: change --enable-test/--enable-ansi action-if-given
11228         to enable_foo=$enableval instead of enable_foo=yes
11229
11230 2003-01-08  Havoc Pennington  <hp@pobox.com>
11231
11232         * dbus/dbus-string.c (_dbus_string_align_length): new function
11233
11234         * dbus/dbus-test-main.c: move main() for test app here
11235         * dbus/dbus-test.c
11236         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
11237         symbol to run tests, because dbus-test isn't in the main
11238         library
11239
11240         Code review nitpicks.
11241
11242         * dbus/dbus-message.c (dbus_message_write_header): add newlines
11243         for people with narrow emacs ;-). Assert client_serial was filled
11244         in. Assert message->name != NULL.
11245         (dbus_message_append_fields): have "first_field_type" arg separate
11246         from va list, needed for C++ binding that also uses varargs IIRC
11247         and helps with type safety
11248         (dbus_message_new): add @todo about using DBusString to store
11249         service/name internally
11250         (dbus_message_new): don't leak ->service and ->name on OOM later
11251         in the function
11252         (dbus_message_unref): free the service name
11253         (dbus_message_get_fields): same change to varargs
11254         i.e. first_field_type
11255         (_dbus_message_loader_return_buffer): assert that the message data
11256         is aligned (if not it's a bug in our code). Put in verbose griping
11257         about why we set corrupted = TRUE.
11258         (decode_header_data): add FIXME that char* is evil.  Was going to
11259         add FIXME about evil locale-specific string.h strncmp, but just
11260         switched to wacky string-as-uint32 optimization. Move check for
11261         "no room for field name" above get_const_data_len() to avoid
11262         assertion failure in get_const_data_len if we have trailing 2
11263         bytes or the like. Check for service and name fields being
11264         provided twice. Don't leak service/name on error. Require field
11265         names to be aligned to 4 bytes.
11266
11267         * dbus/dbus-marshal.c: move byte swap stuff to header
11268         (_dbus_pack_int32): uscore-prefix
11269         (_dbus_unpack_int32): uscore-prefix
11270         (_dbus_unpack_uint32): export
11271         (_dbus_demarshal_string): add @todo complaining about use of
11272         memcpy()
11273         (_dbus_marshal_get_field_end_pos): add @todo about bad error
11274         handling allowing corrupt data to go unchecked
11275
11276 2003-01-08  Havoc Pennington  <hp@redhat.com>
11277
11278         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
11279         to the select() as needed for authentication. (should be using
11280         _dbus_poll() not select, but for another day)
11281
11282         * dbus/dbus.h: include dbus/dbus-protocol.h
11283
11284 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
11285
11286         * dbus/Makefile.am (dbusinclude_HEADERS): Install
11287         dbus-connection.h
11288
11289 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
11290
11291         * dbus/dbus-internals.c: (_dbus_type_to_string):
11292         New function that returns a string describing a type.
11293
11294         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
11295         * dbus/dbus-marshal.h:
11296         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
11297         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
11298         (dbus_message_iter_get_byte_array):
11299         * dbus/dbus-message.h:
11300         Add new convenience functions for appending and getting message fields.
11301         Also add demarshalling routines for byte arrays.
11302
11303 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
11304
11305         * dbus/dbus-connection-internal.h:
11306         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11307         (_dbus_connection_get_next_client_serial),
11308         (dbus_connection_send_message):
11309         * dbus/dbus-internals.h:
11310         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
11311         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
11312         (_dbus_marshal_uint32), (_dbus_demarshal_double),
11313         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
11314         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
11315         (_dbus_verbose_bytes), (_dbus_marshal_test):
11316         * dbus/dbus-marshal.h:
11317         * dbus/dbus-message-internal.h:
11318         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
11319         (dbus_message_write_header), (_dbus_message_lock),
11320         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
11321         (dbus_message_get_name), (dbus_message_append_int32),
11322         (dbus_message_append_uint32), (dbus_message_append_double),
11323         (dbus_message_append_string), (dbus_message_append_byte_array),
11324         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
11325         (dbus_message_iter_unref), (dbus_message_iter_has_next),
11326         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
11327         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
11328         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
11329         (decode_header_data), (_dbus_message_loader_return_buffer),
11330         (message_iter_test), (_dbus_message_test):
11331         * dbus/dbus-message.h:
11332         * dbus/dbus-protocol.h:
11333         * dbus/dbus-test.c: (main):
11334         * dbus/dbus-test.h:
11335         * glib/test-dbus-glib.c: (message_handler), (main):
11336         * test/echo-client.c: (main):
11337         * test/watch.c: (check_messages):
11338         Make messages sendable and receivable for real.
11339
11340 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
11341
11342         * dbus/dbus-marshal.c: (_dbus_marshal_double),
11343         (_dbus_marshal_string), (_dbus_marshal_byte_array):
11344         * dbus/dbus-message.c: (dbus_message_append_int32),
11345         (dbus_message_append_uint32), (dbus_message_append_double),
11346         (dbus_message_append_string), (dbus_message_append_byte_array):
11347         Handle OOM restoration.
11348
11349 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
11350
11351         * dbus/dbus-marshal.c: (_dbus_marshal_string),
11352         (_dbus_demarshal_string), (_dbus_marshal_test):
11353         * dbus/dbus-marshal.h:
11354         * dbus/dbus-message.c: (dbus_message_get_name),
11355         Document these functions.
11356
11357         (dbus_message_append_int32), (dbus_message_append_uint32),
11358         (dbus_message_append_double), (dbus_message_append_string),
11359         (dbus_message_append_byte_array):
11360         * dbus/dbus-message.h:
11361         Add functions for adding message fields of different types.
11362
11363         * dbus/dbus-protocol.h:
11364         Add the different types.
11365
11366 2003-01-05  Havoc Pennington  <hp@pobox.com>
11367
11368         * bus/connection.c: implement routines for handling connections,
11369         first thing is keeping a list of owned services on each connection
11370         and setting up watches etc.
11371
11372         * bus/services.c: implement a mapping from service names to lists
11373         of connections
11374
11375         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
11376
11377         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
11378         to use static mutexes for global data
11379
11380         * dbus/dbus-connection.c (dbus_connection_set_data): add new
11381         collection of functions to set/get application-specific data
11382         on the DBusConnection.
11383
11384 2003-01-04  Havoc Pennington  <hp@pobox.com>
11385
11386         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
11387         (_dbus_poll): new function
11388
11389         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
11390         copied from GLib
11391
11392         * bus/loop.c: initial code for the daemon main loop
11393
11394 2003-01-04  Havoc Pennington  <hp@pobox.com>
11395
11396         * test/watch.c (error_handler): make it safe if the error handler
11397         is called multiple times (if we s/error handler/disconnect
11398         handler/ we should just guarantee it's called only once)
11399
11400         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
11401         error handler on disconnect (it's quite possible we should
11402         just change the error handler to a "disconnect handler," I'm
11403         not sure we have any other meaningful errors)
11404
11405         * configure.in: check for getpwnam_r
11406
11407         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
11408         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
11409         mechanism as in SASL spec, using socket credentials
11410
11411         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
11412         (_dbus_send_credentials_unix_socket): new function
11413
11414         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
11415         dbus_accept()
11416         (_dbus_write): only check errno if <0 returned
11417         (_dbus_write_two): ditto
11418
11419 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
11420
11421         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
11422         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
11423         (_dbus_marshal_test):
11424         * dbus/dbus-marshal.h:
11425         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
11426         to _dbus_marshal_utf8_string. Also fix some tests.
11427
11428 2002-12-28  Harri Porten  <porten@kde.org>
11429
11430         * configure.in: added check for C++ compiler and a very cheesy
11431         check for the Qt integration
11432
11433         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
11434
11435         * qt/Makefile.am: added
11436
11437         * qt/.cvsignore: added
11438
11439         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
11440         latter, added #ifdef QT_THREAD_SUPPORT guard.
11441
11442         * dbus/Makefile.am: added missing headers for make dist
11443
11444 2002-12-28  Kristian Rietveld  <kris@gtk.org>
11445
11446         * dbus/Makefile.am: fixup export-symbols-regex.
11447
11448 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
11449
11450         * acinclude.m4: Add this file and put the
11451         PKG_CHECK_MODULE macro in it.
11452
11453 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
11454
11455         * dbus/dbus-marshal.c: (_dbus_marshal_string),
11456         (_dbus_demarshal_double), (_dbus_demarshal_int32),
11457         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11458         (_dbus_marshal_test):
11459         Make the demarshalling routines align the pos argument.
11460         Add string marshalling tests and fix the obvious bugs
11461         discovered.
11462
11463 2002-12-26  Havoc Pennington  <hp@pobox.com>
11464
11465         * dbus/dbus-auth.c: fixes fixes fixes
11466
11467         * dbus/dbus-transport-unix.c: wire up support for
11468         encoding/decoding data on the wire
11469
11470         * dbus/dbus-auth.c (_dbus_auth_encode_data)
11471         (_dbus_auth_decode_data): append to target string
11472         instead of nuking it.
11473
11474 2002-12-26  Havoc Pennington  <hp@pobox.com>
11475
11476         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
11477         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
11478         doh
11479
11480         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
11481         avoid swap_bytes() overhead (ignoring possible assembly stuff for
11482         now). Main point is because I wanted unpack_uint32 to implement
11483         _dbus_verbose_bytes
11484         (_dbus_verbose_bytes): new function
11485
11486         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
11487
11488         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
11489         mechanism to handle a corrupt message stream
11490         (_dbus_message_loader_new): fix preallocation to only prealloc,
11491         not prelengthen
11492
11493         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
11494         (_dbus_string_test): enhance tests for copy/move and fix the
11495         functions
11496
11497         * dbus/dbus-transport-unix.c: Hold references in more places to
11498         avoid reentrancy problems
11499
11500         * dbus/dbus-transport.c: ditto
11501
11502         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
11503         leak reference count in no-message case
11504
11505         * test/watch.c (do_mainloop): handle adding/removing watches
11506         during iteration over the watches. Also, ref the connection/server
11507         stored on a watch, so we don't try to mangle a destroyed one.
11508
11509         * dbus/dbus-transport-unix.c (do_authentication): perform
11510         authentication
11511
11512         * dbus/dbus-auth.c (get_state): add a state
11513         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
11514         (_dbus_auth_get_unused_bytes): append the unused bytes
11515         to the passed in string, rather than prepend
11516
11517         * dbus/dbus-transport.c (_dbus_transport_init_base): create
11518         the auth conversation DBusAuth
11519
11520         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
11521         (_dbus_transport_new_for_domain_socket): when creating a
11522         transport, pass in whether it's a client-side or server-side
11523         transport so we know which DBusAuth to create
11524
11525 2002-12-03  Havoc Pennington  <hp@pobox.com>
11526
11527         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
11528         _after_ finalizing the derived members
11529         (unix_connection_set): unref watch if we fail to add it
11530
11531         * dbus/dbus-connection.c (dbus_connection_unref): delete the
11532         transport first, so that the connection owned by the
11533         transport will be valid as the transport finalizes.
11534
11535         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
11536         if necessary, and remove watches from the connection.
11537
11538         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
11539
11540 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
11541
11542         * dbus/dbus-marshal.c: (_dbus_marshal_string),
11543         (_dbus_demarshal_double), (_dbus_demarshal_int32),
11544         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11545         (_dbus_marshal_test):
11546         * dbus/dbus-marshal.h:
11547         Add string marshal functions and have the demarshal functions
11548         return the new position.
11549
11550 2002-12-25  Havoc Pennington  <hp@pobox.com>
11551
11552         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
11553         it is a simple protocol that just maps directly to SASL.
11554
11555         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
11556         initial implementation, not actually used yet.
11557
11558         * dbus/dbus-string.c (_dbus_string_find): new function
11559         (_dbus_string_equal): new function
11560         (_dbus_string_base64_encode): new function
11561         (_dbus_string_base64_decode): new function
11562
11563 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
11564
11565         * dbus/Makefile.am:
11566         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
11567         (_dbus_marshal_int32), (_dbus_marshal_uint32),
11568         (_dbus_demarshal_double), (_dbus_demarshal_int32),
11569         (_dbus_demarshal_uint32), (_dbus_marshal_test):
11570         * dbus/dbus-marshal.h:
11571         * dbus/dbus-protocol.h:
11572         * dbus/dbus-test.c: (main):
11573         * dbus/dbus-test.h:
11574         Add un-optimized marshalling/demarshalling routines.
11575
11576 2002-12-25  Harri Porten  <porten@kde.org>
11577
11578         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
11579
11580 2002-12-24  Zack Rusin  <zack@kde.org>
11581
11582         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
11583         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
11584         main loop stuff
11585
11586 2002-12-24  Havoc Pennington  <hp@pobox.com>
11587
11588         * glib/dbus-gthread.c: fix include
11589
11590         * glib/dbus-glib.h: rename DBusMessageHandler for now.
11591         I think glib API needs to change, though, as you don't
11592         want to use DBusMessageFunction, you want to use the
11593         DBusMessageHandler object. Probably
11594         dbus_connection_open_with_g_main_loop()
11595         and dbus_connection_setup_g_main_loop() or something like that
11596         (but think of better names...) that just create a connection
11597         that has watch/timeout functions etc. already set up.
11598
11599         * dbus/dbus-connection.c
11600         (dbus_connection_send_message_with_reply): new function just to
11601         show how the message handler helps us deal with replies.
11602
11603         * dbus/dbus-list.c (_dbus_list_remove_last): new function
11604
11605         * dbus/dbus-string.c (_dbus_string_test): free a string that
11606         wasn't
11607
11608         * dbus/dbus-hash.c: use memory pools for the hash entries
11609         (rebuild_table): be more paranoid about overflow, and
11610         shrink table when we can
11611         (_dbus_hash_test): reduce number of sprintfs and write
11612         valid C89. Add tests for case where we grow and then
11613         shrink the hash table.
11614
11615         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
11616
11617         * dbus/dbus-connection.c (dbus_connection_register_handler)
11618         (dbus_connection_unregister_handler): new functions
11619
11620         * dbus/dbus-message.c (dbus_message_get_name): new
11621
11622         * dbus/dbus-list.c: fix docs typo
11623
11624         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
11625         an object representing a handler for messages.
11626
11627 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
11628
11629         * glib/dbus-glib.h:
11630         * glib/dbus-gthread.c: (dbus_gthread_init):
11631         Don't use the gdbus prefix for public functions.
11632
11633 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
11634
11635         * Makefile.am:
11636         * configure.in:
11637         Add GLib checks and fixup .pc files
11638
11639         * glib/Makefile.am:
11640         * glib/dbus-glib.h:
11641         * glib/dbus-gmain.c: (gdbus_connection_prepare),
11642         (gdbus_connection_check), (gdbus_connection_dispatch),
11643         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
11644         (dbus_connection_gsource_new):
11645         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
11646         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
11647         * glib/test-dbus-glib.c: (message_handler), (main):
11648         Add GLib support.
11649
11650 2002-12-15  Harri Porten  <porten@kde.org>
11651
11652         * autogen.sh: check for libtoolize before attempting to use it
11653
11654         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
11655         struct.
11656
11657         * .cvsignore: ignore more stamp files
11658
11659         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
11660
11661         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
11662         without make install.
11663
11664 2002-12-15  Havoc Pennington  <hp@pobox.com>
11665
11666         * dbus/dbus-threads.c: add thread stubs that a higher library
11667         layer can fill in. e.g. the GLib wrapper might fill them in with
11668         GThread stuff. We still need to use this thread API to
11669         thread-safe-ize the library.
11670
11671 2002-12-12  Havoc Pennington  <hp@pobox.com>
11672
11673         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
11674         below new interfaces and include fewer system headers.
11675
11676         * dbus/dbus-sysdeps.c (_dbus_read): new function
11677         (_dbus_write): new function
11678         (_dbus_write_two): new function
11679         (_dbus_connect_unix_socket): new function
11680         (_dbus_listen_unix_socket): new function
11681
11682         * dbus/dbus-message-internal.h: change interfaces to use
11683         DBusString
11684
11685 2002-12-11  Havoc Pennington  <hp@pobox.com>
11686
11687         * dbus/dbus-types.h: add dbus_unichar
11688
11689         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
11690
11691         * dbus/dbus-connection.c (dbus_connection_send_message): return
11692         TRUE on success
11693
11694         * dbus/dbus-transport.c: include dbus-watch.h
11695
11696         * dbus/dbus-connection.c: include dbus-message-internal.h
11697
11698         * HACKING: add file with coding guidelines stuff.
11699
11700         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
11701         handling here, for security purposes (as in vsftpd). Not actually
11702         using this class yet.
11703
11704         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
11705         system/libc usage here, as in vsftpd, for ease of auditing (and
11706         should also simplify portability). Haven't actually moved all the
11707         system/libc usage into here yet.
11708
11709 2002-11-25  Havoc Pennington  <hp@pobox.com>
11710
11711         * dbus/dbus-internals.c (_dbus_verbose): fix to not
11712         always print the first verbose message.
11713
11714 2002-11-24  Havoc Pennington  <hp@pobox.com>
11715
11716         * test/echo-client.c, test/echo-server.c: cheesy test
11717         clients.
11718
11719         * configure.in (AC_CHECK_FUNCS): check for writev
11720
11721         * dbus/dbus-message.c (_dbus_message_get_network_data): new
11722         function
11723
11724         * dbus/dbus-list.c (_dbus_list_foreach): new function
11725
11726         * dbus/dbus-internals.c (_dbus_verbose): new function
11727
11728         * dbus/dbus-server.c, dbus/dbus-server.h: public object
11729         representing a server that listens for connections.
11730
11731         * dbus/.cvsignore: create
11732
11733         * dbus/dbus-errors.h, dbus/dbus-errors.c:
11734         public API for reporting errors
11735
11736         * dbus/dbus-connection.h, dbus/dbus-connection.c:
11737         public object representing a connection that
11738         sends/receives messages. (Same object used for
11739         both client and server.)
11740
11741         * dbus/dbus-transport.h, dbus/dbus-transport.c:
11742         Basic abstraction for different kinds of stream
11743         that we might read/write messages from.
11744
11745 2002-11-23  Havoc Pennington  <hp@pobox.com>
11746
11747         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
11748         _DBUS_INT_MAX
11749
11750         * dbus/dbus-test.c (main): add list test, and include
11751         dbus-test.h as intended
11752
11753         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
11754         (_dbus_hash_table_remove_int): return value indicates
11755         whether the entry existed to remove
11756
11757         * dbus/dbus-list.c: add linked list utility class,
11758         with docs and tests
11759
11760         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
11761         array sometimes.
11762
11763 2002-11-23  Havoc Pennington  <hp@pobox.com>
11764
11765         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
11766         DBUS_END_DECLS to nothing, that should fix this once and for all
11767
11768         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
11769
11770         * dbus/dbus-message.c, dbus/dbus-hash.c:
11771         add some missing @brief
11772
11773 2002-11-23  Havoc Pennington  <hp@pobox.com>
11774
11775         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
11776         to avoid confusing Doxygen
11777
11778         * dbus/dbus-hash.c: @} not }@
11779
11780         * dbus/dbus-message.c (struct DBusMessage): split out
11781         internals docs
11782
11783 2002-11-23  Havoc Pennington  <hp@pobox.com>
11784
11785         * configure.in: pile on more warning flags if using gcc
11786
11787         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
11788         to document static functions
11789
11790         * configure.in: add summary to end of configure so it
11791         looks nice and attractive
11792
11793         * dbus/dbus-hash.c: finish implementation and write unit
11794         tests and docs
11795
11796         * configure.in: add --enable-tests to enable unit tests
11797
11798         * dbus/dbus-test.c: test program to run unit tests
11799         for all files in dbus/*, initially runs a test for
11800         dbus-hash.c
11801
11802         * dbus/dbus-internals.h: file to hold some internal utility stuff
11803
11804 2002-11-22  Havoc Pennington  <hp@redhat.com>
11805
11806         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
11807         "ported" away from Tcl
11808
11809         * dbus/dbus-types.h: header for types such as dbus_bool_t
11810
11811 2002-11-22  Havoc Pennington  <hp@redhat.com>
11812
11813         * dbus/dbus.h: fixups for doc warnings
11814
11815         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
11816         macros
11817         (QUIET): make it quiet so we can see warnings
11818
11819         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
11820
11821 2002-11-22  Havoc Pennington  <hp@redhat.com>
11822
11823         * Makefile.am: include "Doxyfile" target in all-local
11824
11825         * configure.in: generate the Doxyfile
11826
11827         * Doxyfile.in: move Doxyfile here, so we can use
11828         configure to generate a Doxyfile with the right
11829         version number etc.
11830
11831 2002-11-22  Havoc Pennington  <hp@redhat.com>
11832
11833         * dbus/dbus-message.c: move inline docs into .c file
11834
11835         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
11836         so all docs are under doc/
11837         (MAN_EXTENSION): generate man pages. Use extension
11838         ".3dbus" which matches ".3qt" on my system,
11839         I guess this is OK, I don't know really.
11840         (FILE_PATTERNS): look for .c files not .h, makes sense
11841         for plain C I think
11842
11843 2002-11-22  Havoc Pennington  <hp@pobox.com>
11844
11845         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
11846         because any app can be a server, and any app can be a client,
11847         the bus is a special kind of server.
11848
11849 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
11850
11851         * Doxyfile : adding. Still needs Makefile rules to be generated
11852         automatically (just run "doxygen" in the toplevel dir for now to
11853         generate docs)
11854
11855         * dbus/dbus-message.h : Adding sample docs (javadoc since
11856         resembles gtk-doc a little more)
11857
11858         * dbus/dbus.h : Adding sample docs
11859
11860 2002-11-21  Havoc Pennington  <hp@redhat.com>
11861
11862         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
11863         so we can allow ourselves to include files directly,
11864         instead of having to use dbus.h
11865
11866         * dbus/dbus.h: fill in
11867
11868         * dbus/dbus-message.h: sketch out a sample header file.
11869         Include griping if you include it directly instead of
11870         via dbus.h
11871
11872         * dbus/dbus-macros.h: new file with macros for extern "C",
11873         TRUE/FALSE, NULL, etc.
11874
11875         * doc/file-boilerplate.c: put include guards in here
11876
11877 2002-11-21  Havoc Pennington  <hp@redhat.com>
11878
11879         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
11880
11881         * COPYING: include the GPL as well, and license code
11882         under both AFL and GPL.
11883
11884 2002-11-21  Havoc Pennington  <hp@redhat.com>
11885
11886         * acconfig.h: get rid of this
11887
11888         * autogen.sh (run_configure): add --no-configure option
11889
11890         * configure.in: remove AC_ARG_PROGRAM to make
11891         autoconf complain less. add AC_PREREQ.
11892         add AC_DEFINE third arg.
11893
11894 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
11895
11896         * doc/Makefile.am:
11897         Fix references so we can distcheck.
11898
11899 2002-11-21  Havoc Pennington  <hp@redhat.com>
11900
11901         * Initial module creation
11902