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