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