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