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