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