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