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