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