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